[libvirt] [RFC PATCH v2 04/12] qemu_driver: implement cpu device hotplug on config level

Zhu Guihua zhugh.fnst at cn.fujitsu.com
Wed Feb 4 09:18:22 UTC 2015


The config level requires an insert or remove from domain definition
structure.

Signed-off-by: Zhu Guihua <zhugh.fnst at cn.fujitsu.com>
---
 src/qemu/qemu_driver.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 31c7655..4ec3b3c 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7326,6 +7326,11 @@ qemuDomainAttachDeviceConfig(virQEMUCapsPtr qemuCaps,
         break;
 
     case VIR_DOMAIN_DEVICE_CPU:
+        if (virDomainCPUInsert(vmdef, dev->data.cpu) < 0)
+            return -1;
+        dev->data.cpu = NULL;
+        break;
+
     case VIR_DOMAIN_DEVICE_INPUT:
     case VIR_DOMAIN_DEVICE_SOUND:
     case VIR_DOMAIN_DEVICE_VIDEO:
@@ -7362,6 +7367,7 @@ qemuDomainDetachDeviceConfig(virDomainDefPtr vmdef,
     virDomainControllerDefPtr cont, det_cont;
     virDomainChrDefPtr chr;
     virDomainFSDefPtr fs;
+    virDomainCPUDefPtr cpu;
     int idx;
 
     switch ((virDomainDeviceType) dev->type) {
@@ -7443,6 +7449,14 @@ qemuDomainDetachDeviceConfig(virDomainDefPtr vmdef,
         break;
 
     case VIR_DOMAIN_DEVICE_CPU:
+        if (!(cpu = virDomainCPURemove(vmdef, dev->data.cpu)))
+            return -1;
+
+        virDomainCPUDefFree(cpu);
+        virDomainCPUDefFree(dev->data.cpu);
+        dev->data.cpu = NULL;
+        break;
+
     case VIR_DOMAIN_DEVICE_INPUT:
     case VIR_DOMAIN_DEVICE_SOUND:
     case VIR_DOMAIN_DEVICE_VIDEO:
-- 
1.9.3




More information about the libvir-list mailing list