[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Strange PVM spinlock case revisited



On 13.02.2013 12:31, Stefan Bader wrote:

> I will try to think of some better way. Not sure the thinking is realistic but
> maybe that could happen:
> 
> xen_spin_lock_slow(a)
>   ...
>   enables irq and upcalls are pending
>     upcall processing wants lock b
>     xen_spin_lock_slow(b)
>                     --- just before replacing lock_spinners ---
>                                                    xen_spin_unlock_slow(a)
>                                                    finds other vcpu, triggers
>                                                      IRQ
>     lock b is top spinner
>     going into poll_irq
>     poll_irq returns
>     lock a gets restored
>     so maybe no spinners on b
>     dropping out to xen_spin_lock
>                                                   unlock of b not finding any
>                                                   spinners
>     lock b acquired
> 
> That way the irq for lock a maybe get lost...

Darn, maybe not since the pending status is not cleared when leaving
xen_spin_lock_slow. So I assume the interrupted lock does at least one cycle out
of slow and back...


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.