On 1/24/2023 5:04 PM, Waiman Long wrote:
On 1/24/23 10:52, Peter Zijlstra wrote:
On Tue, Jan 24, 2023 at 10:42:24AM -0500, Waiman Long wrote:
I would suggest to do it as suggested by PeterZ. Instead of set_bit(),
however, it is probably better to use atomic_long_or() like
atomic_long_or_relaxed(RT_MUTEX_HAS_WAITERS, (atomic_long_t
*)&lock->owner)
That function doesn't exist, atomic_long_or() is implicitly relaxed for
not returning a value.
You are right. atomic_long_or() doesn't have variants like some others.
Cheers,
Longman
When you say "replace the whole of that function", do you mean "barrier
included"? I argue in the other email that I think this should not
affect correctness (at least not obviously), but removing the barrier is
doing more than just fixing the data race as this patch suggests.
Hernan