
Hi all, Any comments about this series? I'm not sure whether this series' method to support cpu hotplug in libvirt is reasonable, so could anyone give more suggestions about this function? Thanks. Regards, Zhu On Wed, 2015-02-04 at 17:18 +0800, Zhu Guihua wrote:
If you apply the folowing patchset in order [PATCH v3 0/7] cpu: add device_add foo-x86_64-cpu support https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg01552.html, [PATCH v2 0/5] Common unplug and unplug request cb for memory and CPU hot-unplug https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg03929.html and [PATCH v2 00/11] cpu: add i386 cpu hot remove support https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg01557.html, qemu can support hotplug and hot-unplug cpu device.
So this patch series will make libvirt support hotplug and hot-unplug cpu device for qemu driver.
This patch series add a new API to support cpu hot-plug/unplug, and leave the existing API by invoking qemu command 'cpu-add' as a legacy.
This patch series realize cpu hot-plug/unplug by libvirt command 'attach-device' and 'detach-device', and invoke qemu command 'device_add' and 'device_del' to support this feature.
v2: - update cpu device's definition, and cpu's apic_id is hidded to users. - add check for compatibility between host cpu and hot added cpu - add a capability for *-x86_64-cpu
Zhu Guihua (12): domain_conf: add support for cpu device configuration in XML domain_conf: introduce cpu def helpers domain_conf: introduce cpu device hotplug helpers qemu_driver: implement cpu device hotplug on config level qemu_command: introduce a func for cpu device alias assignment domain_conf: allocate cpu's apic id dynamically qemu: add a capability for x86_64-cpu qemu: introduce qemuBuildCPUDeviceStr qemu: implement cpu device hotplug on live level qemu: implement cpu device hotunplug on live level qemu_monitor_json: sort JSON array of cpu info qemu_driver: detect threads corresponding to Vcpus
docs/formatdomain.html.in | 28 ++++ docs/schemas/domaincommon.rng | 3 + src/conf/domain_conf.c | 189 +++++++++++++++++++++++++- src/conf/domain_conf.h | 33 +++++ src/libvirt_private.syms | 6 + src/qemu/qemu_capabilities.c | 3 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 120 +++++++++++++++++ src/qemu/qemu_command.h | 10 ++ src/qemu/qemu_driver.c | 299 ++++++++++++++++++++++++------------------ src/qemu/qemu_driver.h | 8 ++ src/qemu/qemu_hotplug.c | 140 ++++++++++++++++++++ src/qemu/qemu_hotplug.h | 12 ++ src/qemu/qemu_monitor_json.c | 31 ++++- src/util/virbitmap.c | 2 +- src/util/virbitmap.h | 2 + 16 files changed, 753 insertions(+), 134 deletions(-)