Re: [lttng-dev] [PATCH 04/11] urcu/arch/generic: Use atomic builtins if configured

Mathieu Desnoyers via lttng-dev <[email protected]>
Newsgroups org.lttng.lists.lttng-dev
Message-ID <[email protected]>
On 6/21/23 20:53, Olivier Dion wrote:
> On Wed, 21 Jun 2023, "Paul E. McKenney" <[email protected]> wrote:
>> On Mon, May 15, 2023 at 04:17:11PM -0400, Olivier Dion wrote:
>>>   #ifndef cmm_mb
>>>   #define cmm_mb()    __sync_synchronize()
>>
>> Just out of curiosity, why not also implement cmm_mb() in terms of
>> __atomic_thread_fence(__ATOMIC_SEQ_CST)?  (Or is that a later patch?)
> 
> IIRC, Mathieu and I agree that the definition of a thread fence -- acts
> as a synchronization fence between threads -- is too weak for what we
> want here.  For example, with I/O devices.
> 
> Although __sync_synchronize() is probably an alias for a SEQ_CST thread
> fence, its definition -- issues a full memory barrier -- is stronger.
> 
> We do not want to rely on this assumption (alias) and prefer to rely on
> the documented definition instead.
> 

We should document this rationale with a new comment near the #define,
in case anyone mistakenly decides to use a thread fence there to make it
similar to the rest of the code in the future.

Thanks,

Mathieu


-- 
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com

_______________________________________________
lttng-dev mailing list
[email protected]
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.