Gleb Natapov wrote:
On Tue, May 18, 2010 at 05:08:29PM +0800, Liu, Jinsong wrote:
Hi, Kevin, Gleb, Avi, and Yunhong
I have updated vcpu hotplug seabios infrastructure, as attached. Please kindly review it, thanks!
This patch is to support KVM vcpu hotplug feature. It ported from KVM bochs bios, and update some points to KVM seabios:
- build ssdt with 15/255 processor obj, which separately support
Win2000 and other oses; 2. build madt accordingly, protect it as 'E820_NVS', and keep madt checksum and lapic flag correctly when cpu hotplug; 3. define Processor under _SB instead of _PR, so that it works better with latest linux like 2.6.32 later; 4. for Processor _MAT method, explicitly transfer it 'ToBuffer' so that os will not confused with 'Integer' which will result in parse failure; 5. for Processor _STA method, use 0x0 instead of 0x9 for cpu hot-remove, which matchs better with ACPI 4.0 spec, and works better with latest linux; 6. add Processor _EJ0 method, so that 'eject' appear under linux /sys, and triggered by uevent to make cpu hot-remove;
Have you tested this patch with Windows 2008 datacenter edition? If yes were you able to insert vcpus so that Windows notice? (You need to test it with datacenter edition since others don't support cpu hot plug and cpu hot remove isn't supported by any Windows).
Thanks Gleb for quick response :)
Currently we didn't test it with Windows 2008 datacenter.
However, similar patch we also used for Xen (now already in Xen upstream). At Xen side, our QA team has tested with Windows 2008 datacenter. For vcpu hot-add, it worked well, the new CPUs can be found on both device manager and task manager. For vcpu hot-remove, as you said, it cannot work since cpu hot-remove is not supported by any Windows yet.
At KVM side, we test the patch with linux 2.6.32, vcpu hot-add and hot-remove both worked well. If you need, we can co-work with our QA to test our KVM patch with Windows 2008 datacenter.
Thanks, Jinsong