[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] migration: Disable hotplug/unplug during mi
From: |
Juan Quintela |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] migration: Disable hotplug/unplug during migration |
Date: |
Fri, 24 Mar 2017 10:50:57 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) |
Thomas Huth <address@hidden> wrote:
> On 23.03.2017 21:50, Juan Quintela wrote:
>> Until we have reviewed what can/can't be hotplug during migration,
>> disable it. We can enable it later for the things that we know that
>> work. For instance, memory hotplug during postcopy don't work
>> currently.
>>
>> Signed-off-by: Juan Quintela <address@hidden>
>> ---
>> hw/core/qdev.c | 5 +++++
>> qdev-monitor.c | 7 ++++++-
>> 2 files changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/core/qdev.c b/hw/core/qdev.c
>> index 1e7fb33..8c4a3f3 100644
>> --- a/hw/core/qdev.c
>> +++ b/hw/core/qdev.c
>> @@ -277,6 +277,11 @@ void qdev_unplug(DeviceState *dev, Error **errp)
>> HotplugHandler *hotplug_ctrl;
>> HotplugHandlerClass *hdc;
>>
>> + if (!migration_is_idle()) {
>> + error_setg(errp, "device_add not allowed while migrating");
>> + return;
>> + }
>> +
>> if (dev->parent_bus && !qbus_is_hotpluggable(dev->parent_bus)) {
>> error_setg(errp, QERR_BUS_NO_HOTPLUG, dev->parent_bus->name);
>> return;
>> diff --git a/qdev-monitor.c b/qdev-monitor.c
>> index 5f2fcdf..e0622b4 100644
>> --- a/qdev-monitor.c
>> +++ b/qdev-monitor.c
>> @@ -29,7 +29,7 @@
>> #include "qemu/error-report.h"
>> #include "qemu/help_option.h"
>> #include "sysemu/block-backend.h"
>> -
>> +#include "migration/migration.h"
>> /*
>> * Aliases were a bad idea from the start. Let's keep them
>> * from spreading further.
>
> Maybe better keep an empty line between the include statement and the
> comment?
Oops, sure.
>
> Thomas
>
>
>> @@ -566,6 +566,11 @@ DeviceState *qdev_device_add(QemuOpts *opts, Error
>> **errp)
>> BusState *bus = NULL;
>> Error *err = NULL;
>>
>> + if (!migration_is_idle()) {
>> + error_setg(errp, "device_add not allowed while migrating");
>> + return NULL;
>> + }
>> +
>> driver = qemu_opt_get(opts, "driver");
>> if (!driver) {
>> error_setg(errp, QERR_MISSING_PARAMETER, "driver");
>>