|
|
|
|
|
|
|
|
|
|
xen-devel
[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
|
|
|
|
|