This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix x86 atomic_fetch_xor_release.


On 10/18/2016 07:02 AM, Torvald Riegel wrote:
> On Mon, 2016-10-17 at 23:18 -0400, Carlos O'Donell wrote:
>> Torvald,
>>
>> No code uses atomic_fetch_xor_release except for the upcoming conditional
>> variable rewrite. Therefore there is no user visible bug here.
>>
>> The use of atomic_compare_and_exchange_bool_rel is removed (since it doesn't
>> exist anymore), and is replaced by atomic_compare_exchange_weak_release.
>>
>> We use weak_release because it provides better performance in the loop
>> (the weak semantic) and because the xor is release MO (the release semantic).
>>
>> We don't reload expected in the loop because atomic_compare_and_exchange_weak_release
>> does this for us as part of the CAS failure.
>>
>> It is otherwise a fairly plain conversion that fixes building the new condvar
>> for 32-bit x86.
>>
>> I have pushed the new condvar into Fedora Rawhide for testing.
>>
>> OK to checkin?
> 
> OK.
> 

Checked in. Verified it fixes everything with the other dependent
patches applied.

-- 
Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]