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

[Xen-devel] Re: [PATCH] Fix memory order issue inside pv spinlock



On 09/09/09 18:41, Yang, Xiaowei wrote:
> Jeremy Fitzhardinge wrote:
>
>> On 09/09/09 09:30, Yang, Xiaowei wrote:
>>> Jeremy Fitzhardinge wrote:
>>>> On 09/07/09 00:40, Yang, Xiaowei wrote:
>>>>> barrier() can't prevent reads after it not being reordered with older
>>>>> writes to different locates before it. Because of it, I can't
>>>>> bring up
>>>>>> 4 HVM guests on one SMP machine. Use mb() instead.
>>>> Which read is happening too early?  Is it "xl->spinners"?  How does
>>>> it fail?
>>> Yes. If read of xl->spinners happens earlier than write 0 to xl->lock,
>>> notifications to wake up other spinners can be omitted incorrectly,
>>> resulting in others polling indefinitely (because of poll evtchn not
>>> pending) with the lock is uncontended.
>>
>> OK.  And the CPU only guarantees that, without explicit barriers,
>> write-read ordering is only maintained between accesses to the same
>> memory location, not separate locations?
>>
>
> Exactly! For more details please refer to Chapter 8.2 of Intel SDM 3A.

Thanks.  I just submitted both fixes to upstream.

    J

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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