[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 08/15] migration: Allow "device add" options to only
From: |
Dr. David Alan Gilbert (git) |
Subject: |
[Qemu-devel] [PULL 08/15] migration: Allow "device add" options to only add migratable devices |
Date: |
Tue, 24 Jan 2017 18:47:35 +0000 |
From: Ashijeet Acharya <address@hidden>
Introduce checks for the unmigratable flag in the VMStateDescription
structs of respective devices when user attempts to add them. If the
"--only-migratable" was specified, all unmigratable devices will
rightly fail to add. This feature is made compatible for both "-device"
and "-usbdevice" command line options and covers their hmp and qmp
counterparts as well.
Signed-off-by: Ashijeet Acharya <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
---
hw/usb/bus.c | 19 +++++++++++++++++++
qdev-monitor.c | 9 +++++++++
2 files changed, 28 insertions(+)
diff --git a/hw/usb/bus.c b/hw/usb/bus.c
index 25913ad..1dcc35c 100644
--- a/hw/usb/bus.c
+++ b/hw/usb/bus.c
@@ -8,6 +8,7 @@
#include "monitor/monitor.h"
#include "trace.h"
#include "qemu/cutils.h"
+#include "migration/migration.h"
static void usb_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent);
@@ -686,6 +687,8 @@ USBDevice *usbdevice_create(const char *cmdline)
const char *params;
int len;
USBDevice *dev;
+ ObjectClass *klass;
+ DeviceClass *dc;
params = strchr(cmdline,':');
if (params) {
@@ -720,6 +723,22 @@ USBDevice *usbdevice_create(const char *cmdline)
return NULL;
}
+ klass = object_class_by_name(f->name);
+ if (klass == NULL) {
+ error_report("Device '%s' not found", f->name);
+ return NULL;
+ }
+
+ dc = DEVICE_CLASS(klass);
+
+ if (only_migratable) {
+ if (dc->vmsd->unmigratable) {
+ error_report("Device %s is not migratable, but --only-migratable "
+ "was specified", f->name);
+ return NULL;
+ }
+ }
+
if (f->usbdevice_init) {
dev = f->usbdevice_init(bus, params);
} else {
diff --git a/qdev-monitor.c b/qdev-monitor.c
index c73410c..81d01df 100644
--- a/qdev-monitor.c
+++ b/qdev-monitor.c
@@ -29,6 +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
@@ -577,6 +578,14 @@ DeviceState *qdev_device_add(QemuOpts *opts, Error **errp)
return NULL;
}
+ if (only_migratable) {
+ if (dc->vmsd->unmigratable) {
+ error_setg(errp, "Device %s is not migratable, but "
+ "--only-migratable was specified", driver);
+ return NULL;
+ }
+ }
+
/* find bus */
path = qemu_opt_get(opts, "bus");
if (path != NULL) {
--
2.9.3
- [Qemu-devel] [PULL 13/15] PCI/migration merge vmstate_pci_device and vmstate_pcie_device, (continued)
- [Qemu-devel] [PULL 13/15] PCI/migration merge vmstate_pci_device and vmstate_pcie_device, Dr. David Alan Gilbert (git), 2017/01/24
- [Qemu-devel] [PULL 09/15] migration: disallow migrate_add_blocker during migration, Dr. David Alan Gilbert (git), 2017/01/24
- [Qemu-devel] [PULL 02/15] migration: extend VMStateInfo, Dr. David Alan Gilbert (git), 2017/01/24
- Re: [Qemu-devel] [PULL 02/15] migration: extend VMStateInfo, Fam Zheng, 2017/01/25
- Re: [Qemu-devel] [PULL 02/15] migration: extend VMStateInfo, Dr. David Alan Gilbert, 2017/01/25
- Re: [Qemu-devel] [PULL 02/15] migration: extend VMStateInfo, Cornelia Huck, 2017/01/25
- Re: [Qemu-devel] [PULL 02/15] migration: extend VMStateInfo, Fam Zheng, 2017/01/25
- Re: [Qemu-devel] [PULL 02/15] migration: extend VMStateInfo, Cornelia Huck, 2017/01/25
- Re: [Qemu-devel] [PULL 02/15] migration: extend VMStateInfo, Dr. David Alan Gilbert, 2017/01/25
- [Qemu-devel] [PULL 03/15] migration: migrate QTAILQ, Dr. David Alan Gilbert (git), 2017/01/24
- [Qemu-devel] [PULL 08/15] migration: Allow "device add" options to only add migratable devices,
Dr. David Alan Gilbert (git) <=
- [Qemu-devel] [PULL 11/15] migration: re-active images while migration been canceled after inactive them, Dr. David Alan Gilbert (git), 2017/01/24
- [Qemu-devel] [PULL 14/15] migration: transform remaining DPRINTF into trace_, Dr. David Alan Gilbert (git), 2017/01/24
- [Qemu-devel] [PULL 15/15] migration/tracing: Add tracing on save, Dr. David Alan Gilbert (git), 2017/01/24
- Re: [Qemu-devel] [PULL 00/15] migration queue, Peter Maydell, 2017/01/25