Re: [Xen-devel] [PATCH] xen: disable PV spinlocks on HVM

From: Stefan Bader
Date: Wed Sep 07 2011 - 16:22:28 EST


On 06.09.2011 10:02, Konrad Rzeszutek Wilk wrote:
> On Tue, Sep 06, 2011 at 05:41:47PM +0100, stefano.stabellini@xxxxxxxxxxxxx wrote:
>> From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
>>
>> PV spinlocks cannot possibly work with the current code because they are
>> enabled after pvops patching has already been done, and because PV
>> spinlocks use a different data structure than native spinlocks so we
>> cannot switch between them dynamically. A spinlock that has been taken
>> once by the native code (__ticket_spin_lock) cannot be taken by
>> __xen_spin_lock even after it has been released.
>
> Let me stick it on my 3.1-rc5 bug-fix list and add stable@xxxxxxxxxx to it.
>
> Stefan, if you have some time this week, and can test it - I can also
> stick 'Tested-by' if you would like.
>
> Thinking to send the patches on Friday.
>
>>
>> Reported-by: Stefan Bader <stefan.bader@xxxxxxxxxxxxx>
>> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
>> ---
>> arch/x86/xen/smp.c | 1 -
>> 1 files changed, 0 insertions(+), 1 deletions(-)
>>
>> diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
>> index e79dbb9..51339b4 100644
>> --- a/arch/x86/xen/smp.c
>> +++ b/arch/x86/xen/smp.c
>> @@ -522,7 +522,6 @@ static void __init xen_hvm_smp_prepare_cpus(unsigned int max_cpus)
>> WARN_ON(xen_smp_intr_init(0));
>>
>> xen_init_lock_cpu(0);
>> - xen_init_spinlocks();
>> }
>>
>> static int __cpuinit xen_hvm_cpu_up(unsigned int cpu)
>> --
>> 1.7.2.3
>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel

Ok, tried with a kernel that only disables the init call and it does work the same.

That said, something still is not completely right with the NIC device
interrupts. Setup looks good and pings work. But doing any larger trnasfers
seems to loose interrupts, resulting in tx queue being full and getting timeouts...

-Stefan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/