This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Synchronizing auxiliary mutex data
On Jun 20 2017, Torvald Riegel <triegel@redhat.com> wrote:
> On Tue, 2017-06-20 at 15:55 +0200, Andreas Schwab wrote:
>> On Jun 20 2017, Torvald Riegel <triegel@redhat.com> wrote:
>>
>> > On Tue, 2017-06-20 at 15:40 +0200, Andreas Schwab wrote:
>> >> On Jun 20 2017, Torvald Riegel <triegel@redhat.com> wrote:
>> >>
>> >> > I described exactly that above. It is guaranteed for the code above by
>> >> > the memory model. Implementations of the memory model (so in our case,
>> >> > the compiler and the HW) have to ensure that. For example, in the x86
>> >> > memory model, acquire and release MO are implicit, so because the
>> >> > compiler is not allowed to reorder in this case, the HW ensures that
>> >> > lock()'s write to owner happens after unlock's write to owner.
>> >>
>> >> What about the read in the locking thread?
>> >
>> > I have answered that in my previous emails.
>>
>> What does prevent the cpu from loading it from its cache?
>
> The correct implementation of the memory model does that.
That's not a useful answer.
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."