
On Wed, 2015-01-21 at 09:49 +0100, Peter Krempa wrote:
On Wed, Jan 21, 2015 at 16:00:52 +0800, Zhu Guihua wrote:
If you apply the folowing patchset [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, 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, and now only supports one cpu driver which is 'qemu64-x86_64-cpu'.
The cpu device's xml like this: <cpu driver='qemu64-x86_64-cpu' apic_id='3'>
Libvirt already implements vCPU hotplug and unplug via virDomainSetVcpusFlags() API and implements this API also for the qemu driver. Granted that the existing code uses older comands but that can be tweaked to support the new stuff too.
Now Libvirt only supported vCPU hotplug by qemu command 'cpu-add', but vCPU hot-unplug has not been implemented for qemu driver.
Additionally the new <cpu> subelement of <devices> doesn't seem necessary:
- There's only one model that can be plugged
there are more model will be plugged in next version.
- Configuring the APIC id doesn't make much sense for users
I agree. I will not consider the APIC id in future.
- nothing else can be configured
Yes, only cpu model shoud be configured.
I have following questions though:
Is there a difference in specifying the cpu via the -device option and via the legacy -cpu argument?
Of course, -device has more functions than -cpu.
Is there a plan to have more than one cpu "model" that can be plugged?
Yes, all x86 cpu model will be supported. This is an RFC patchset, so the feature is realized in a simple way.
Can more than one cpu model be plugged to the same VM at the same time?
Yes, it can.
In general I don't think it's necessary to add the new device type and we should rather improve the existing API to support the new device type.
I think it's necessary to support more cpu model. When user hotplug a cpu, it is essential to point the cpu model. And I think improve the existing API would change too much. The feature is implemented by command 'device_add', so I think it should also keep consistent with the other devices' hotplug. Regards, Zhu
More comments will be inline in the patches.
Peter