On Wed, May 25, 2011 at 7:36 AM, Andrew Haley <a...@redhat.com> wrote:
> On 05/25/2011 01:34 PM, H.J. Lu wrote:
>> On Wed, May 25, 2011 at 3:26 AM, Andrew Haley <a...@redhat.com> wrote:
>>> On 05/24/2011 07:28 PM, H.J. Lu wrote:
>>>
>>>> This patch implements pause intrinsic suggested by Andi.  OK
>>>> for trunk?
>>>
>>> What does "full memory barrier" here mean?
>>>
>>> +@table @code
>>> +@item void __builtin_ia32_pause (void)
>>> +Generates the @code{pause} machine instruction with full memory barrier.
>>> +@end table
>>>
>>> There a memory clobber, but no barrier instruction AFAICS.  The
>>> doc needs to explain it a bit better.
>>
>> There are read/load memory barrier, write/store memory barrier and 
>> full/general
>> memory barrier.  You can find them at
>>
>> http://www.kernel.org/doc/Documentation/memory-barriers.txt
>>
>> Should I include a pointer to it?
>
> No.  I know perfectly well what memory barriers are.  I'm not asking
> what "full memory barrier" means.
>
> What barrier instruction(s) does __builtin_ia32_pause() generate?
> All I see in the patch is "rep; nop".  Is that really a full memory
> barrier?
>

It is a full memory barrier in the sense that compiler won't move
load/store across it.  It is intended for kernel.

-- 
H.J.

Reply via email to