Re: 2.6.35-rc1 regression with pvclock and smp guests

Andre Przywara
2010-07-26T08:48:21Z

Avi Kivity wrote:
> On 07/22/2010 03:53 PM, Andre Przywara wrote:
>> Hi,
>>
>> I found a regression with pvclock and SMP KVM _guests_.
>> PVCLOCK enabled guest kernels boot with qemu-kvm.git and with smp=1,
>> but with smp=2 halt at:
>>
>> Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
>> (last line shown)
>>
>> I bisected this down to:
>> commit 489fb490dbf8dab0249ad82b56688ae3842a79e8
>> Author: Glauber Costa <glommer@redhat.com>
>> Date: Tue May 11 12:17:40 2010 -0400
>>
>> x86, paravirt: Add a global synchronization point for pvclock
>>
>> One commit before works, smp=1 always works, disabling PVCLOCK works.
>> Using qemu-kvm-0.12.4 works, too.
>> Having PVCLOCK enabled and with smp=2 the kernel halts without any
>> further message.
>> This is still the case with the lastest tip.
>> Even pinning both VCPU threads to the same host core show the bug.
>> The bug triggers on all hosts I tested, an single socket quadcore
>> Athlon, a dual socket dualcore K8-Opteron and a quad socket 12core
>> Opteron.
>>
>> Please note that this is the guest kernel, the host kernel does not
>> matter.
>>
>> I have no idea (and don't feel like ;-) debugging this, so I hope
>> someone will find and fix the bug.
>
>
> Does this go away with CONFIG_DEBUG_RODATA=n? If so, it's a known bug
> in the atomic_*() clobber lists.
>
Unfortunately the bug persists even with CONFIG_DEBUG_RODATA disabled.
The debug options I had enabled now are:
CONFIG_DEBUG_DEVRES=y
CONFIG_DEBUG_FS=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_BOOT_PARAMS=y

I even disabled all kernel debug options, that does not help, too.

Regards,
Andre.

--
Andre Przywara
AMD-Operating System Research Center (OSRC), Dresden, Germany
Tel: +49 351 448-3567-12