On Thu, Jul 21, 2011 at 01:42:08PM +0200, Jan Kiszka wrote: > On 2011-07-21 13:33, Gleb Natapov wrote: > > On Thu, Jul 21, 2011 at 01:06:41PM +0200, Vasilis Liaskovitis wrote: > >> Hi, > >> > >> On Wed, Jul 20, 2011 at 10:35 AM, Gleb Natapov <gleb@xxxxxxxxxx> wrote: > >>> On Tue, Jul 19, 2011 at 07:40:55PM +0200, Vasilis Liaskovitis wrote: > >>>> Hello, > >>>> > >>>> I have encountered a problem trying to hotplug a CPU in my x86_64 guest setup. > >>>> > >>> You do everything right. It's qemu who is buggy. Since qemu need a patch > >>> for cpu hotplug to not crash it nobody tests it, so code bit rots. > >> > >> thanks for your reply. > >> > >> As I mentioned in the original email, onlining a hotplugged-cpu with > >> qemu-kvm/master results in: > >> > >>>> echo 1 > /sys/devices/system/cpu/cpu1/online > >>>> bash: echo: write error: Input/output error > >>>> > >>>> in the guest, dmesg reports: > >>>> > >>>> [ 2325.376355] Booting Node 0 Processor 1 APIC 0x1 > >>>> [ 2325.376357] smpboot cpu 1: start_ip = 9a000 > >>>> [ 2330.821306] CPU1: Not responding. > >> > >> I tried to git-bisect between qemu-kvm-0.13.0 (last known version > >> where cpu hotplug works correctly > >> for me) and qemu-kvm/master. > >> > >> More precisely: To enable cpu-hotplug at each bisect stage, I apply > >> this patch derived from: > >> http://lists.gnu.org/archive/html/qemu-devel/2010-08/msg00850.html > >> > >> diff --git a/hw/qdev.c b/hw/qdev.c > >> index 1aa1ea0..aed48ce 100644 > >> --- a/hw/qdev.c > >> +++ b/hw/qdev.c > >> @@ -327,6 +327,7 @@ BusState *sysbus_get_default(void) > >> if (!main_system_bus) { > >> main_system_bus = qbus_create(&system_bus_info, NULL, > >> "main-system-bus"); > >> + main_system_bus->allow_hotplug = 1; > >> } > >> return main_system_bus; > >> } > >> > >> and test cpu hotplug functionality. > >> The commit that appears to break CPU hotplug is: > >> > > Thank you for going through the pain of bisecting it! Bisects that > > require patch to be applied between each step are especially annoying. > > > >> commit f4de8c1451f2265148ff4d895a27e21c0a8788aa > >> Author: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> > >> Date: Mon Feb 21 12:28:07 2011 +0100 > >> qemu-kvm: Mark VCPU state dirty on creation > >> > > Jan can you look at this please? > > I can't promise to do debugging myself. > > Also, as I never succeeded in getting anything working with CPU hotplug, > even back in the days it was supposed to work, I'm a bit clueless /wrt > to the right test cases. > CPU hotplug for Linux suppose to be easy (with allow_hotplug patch applied). But we have two bugs currently. One is that ACPI interrupt is not send when cpu is onlined (at least this appears to be the case). I will look at that one. Another is that after new cpu is detected it can't be onlined. After fixing the first bug the test should look like this: 1. start vm with -smp 1,macpus=2 2. wait for it to boot 3. do "cpu 1 online" in monitor. 4. do "echo 1 > /sys/devices/system/cpu/cpu1/online" If step 4 should succeed. It fails now. -- Gleb. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html