Re: [PATCH] Fix data race in mark_rt_mutex_waiters

From: Alan Stern
Date: Mon Jan 23 2023 - 12:36:03 EST


On Mon, Jan 23, 2023 at 08:40:14AM -0800, Paul E. McKenney wrote:
> In the case, the value read is passed into cmpxchg_relaxed(), which
> checks the value against memory. In this case, as Arjan noted, the only
> compiler-and-silicon difference between data_race() and READ_ONCE()
> is that use of data_race() might allow the compiler to do things like
> tear the load, thus forcing the occasional spurious cmpxchg_relaxed()
> failure.

Is it possible in theory for a torn load to cause a spurious
cmpxchg_relaxed() success? Or would that not matter here?

Alan