Re: [lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-19 Thread Mathieu Desnoyers via lttng-dev
- On Apr 19, 2021, at 11:41 AM, Duncan Sands baldr...@free.fr wrote: > Hi Mathieu, > > On 4/19/21 5:31 PM, Mathieu Desnoyers wrote: >> - On Apr 19, 2021, at 5:41 AM, Duncan Sands baldr...@free.fr wrote: >> >> >>> Quick question: should we use __atomic_load() or

Re: [lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-19 Thread Duncan Sands via lttng-dev
Hi Mathieu, On 4/19/21 5:31 PM, Mathieu Desnoyers wrote: - On Apr 19, 2021, at 5:41 AM, Duncan Sands baldr...@free.fr wrote: Quick question: should we use __atomic_load() or atomic_load_explicit() (C) and (std::atomic<__typeof__(x)>)(x)).load() (C++) ? If both are available, is there

Re: [lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-19 Thread Mathieu Desnoyers via lttng-dev
- On Apr 19, 2021, at 5:41 AM, Duncan Sands baldr...@free.fr wrote: > >> Quick question: should we use __atomic_load() or atomic_load_explicit() (C) >> and >> (std::atomic<__typeof__(x)>)(x)).load() (C++) ? > > If both are available, is there any advantage to using the C++ version when >

Re: [lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-16 Thread Mathieu Desnoyers via lttng-dev
- On Apr 16, 2021, at 11:22 AM, lttng-dev lttng-dev@lists.lttng.org wrote: > Hi Mathieu, > Hi Duncan, > On 4/16/21 4:52 PM, Mathieu Desnoyers via lttng-dev wrote: >> Hi Paul, Will, Peter, >> >> I noticed in this discussion https://lkml.org/lkml/2021/4/16/118 that LTO >> is able to break

Re: [lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-16 Thread Paul E. McKenney via lttng-dev
On Fri, Apr 16, 2021 at 03:30:53PM -0400, Mathieu Desnoyers wrote: > - On Apr 16, 2021, at 3:02 PM, paulmck paul...@kernel.org wrote: > [...] > > > > If it can be done reasonably, I suggest also having some way for the > > person building userspace RCU to say "I know what I am doing, so do >

Re: [lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-16 Thread Mathieu Desnoyers via lttng-dev
- On Apr 16, 2021, at 3:02 PM, paulmck paul...@kernel.org wrote: [...] > > If it can be done reasonably, I suggest also having some way for the > person building userspace RCU to say "I know what I am doing, so do > it with volatile rather than memory_order_consume." Like so ? #define

Re: [lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-16 Thread Paul E. McKenney via lttng-dev
On Fri, Apr 16, 2021 at 02:40:08PM -0400, Mathieu Desnoyers wrote: > - On Apr 16, 2021, at 12:01 PM, paulmck paul...@kernel.org wrote: > > > On Fri, Apr 16, 2021 at 05:17:11PM +0200, Peter Zijlstra wrote: > >> On Fri, Apr 16, 2021 at 10:52:16AM -0400, Mathieu Desnoyers wrote: > >> > Hi Paul,

Re: [lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-16 Thread Mathieu Desnoyers via lttng-dev
- On Apr 16, 2021, at 12:01 PM, paulmck paul...@kernel.org wrote: > On Fri, Apr 16, 2021 at 05:17:11PM +0200, Peter Zijlstra wrote: >> On Fri, Apr 16, 2021 at 10:52:16AM -0400, Mathieu Desnoyers wrote: >> > Hi Paul, Will, Peter, >> > >> > I noticed in this discussion

Re: [lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-16 Thread Paul E. McKenney via lttng-dev
On Fri, Apr 16, 2021 at 05:17:11PM +0200, Peter Zijlstra wrote: > On Fri, Apr 16, 2021 at 10:52:16AM -0400, Mathieu Desnoyers wrote: > > Hi Paul, Will, Peter, > > > > I noticed in this discussion https://lkml.org/lkml/2021/4/16/118 that LTO > > is able to break rcu_dereference. This seems to be

Re: [lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-16 Thread Peter Zijlstra via lttng-dev
On Fri, Apr 16, 2021 at 10:52:16AM -0400, Mathieu Desnoyers wrote: > Hi Paul, Will, Peter, > > I noticed in this discussion https://lkml.org/lkml/2021/4/16/118 that LTO > is able to break rcu_dereference. This seems to be taken care of by > arch/arm64/include/asm/rwonce.h on arm64 in the Linux

Re: [lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-16 Thread Duncan Sands via lttng-dev
Hi Mathieu, On 4/16/21 4:52 PM, Mathieu Desnoyers via lttng-dev wrote: Hi Paul, Will, Peter, I noticed in this discussion https://lkml.org/lkml/2021/4/16/118 that LTO is able to break rcu_dereference. This seems to be taken care of by arch/arm64/include/asm/rwonce.h on arm64 in the Linux

[lttng-dev] liburcu: LTO breaking rcu_dereference on arm64 and possibly other architectures ?

2021-04-16 Thread Mathieu Desnoyers via lttng-dev
Hi Paul, Will, Peter, I noticed in this discussion https://lkml.org/lkml/2021/4/16/118 that LTO is able to break rcu_dereference. This seems to be taken care of by arch/arm64/include/asm/rwonce.h on arm64 in the Linux kernel tree. In the liburcu user-space library, we have this comment near