Re: [PATCH tip/core/rcu 2/3] srcu: Force full grace-period ordering
flat view
From: Paul E. McKenney <hidden>
Date: 2017-01-24 02:45:38
Also in:
lkml
On Mon, Jan 23, 2017 at 07:12:03PM +1100, Michael Ellerman wrote:
"Paul E. McKenney" [off-list ref] writes:quoted
On Sat, Jan 14, 2017 at 11:54:17AM -0800, Paul E. McKenney wrote:quoted
On Sat, Jan 14, 2017 at 10:35:50AM +0100, Ingo Molnar wrote:quoted
* Paul E. McKenney [off-list ref] wrote:[ . . . ]quoted
quoted
quoted
+ */ +#ifdef CONFIG_PPC +#define smp_mb__after_unlock_lock() smp_mb() /* Full ordering for lock. */ +#else /* #ifdef CONFIG_PPC */ +#define smp_mb__after_unlock_lock() do { } while (0) +#endif /* #else #ifdef CONFIG_PPC */Yeah, so I realize that this was pre-existing code, but putting CONFIG_$ARCH #ifdefs into generic headers is generally frowned upon. The canonical approach would be either to define a helper Kconfig variable that can be set by PPC (but other architectures don't need to set it), or to expose a suitable macro (function) for architectures to define in their barrier.h arch header file.Very well, I will add a separate commit for this. 4.11 OK?Does the patch below seem reasonable? Thanx, Paul ------------------------------------------------------------------------ commit 271c0601237c41a279f975563e13837bace0df03 Author: Paul E. McKenney [off-list ref] Date: Sat Jan 14 13:32:50 2017 -0800 rcu: Make arch select smp_mb__after_unlock_lock() strength The definition of smp_mb__after_unlock_lock() is currently smp_mb() for CONFIG_PPC and a no-op otherwise. It would be better to instead provide an architecture-selectable Kconfig option, and select the strength of smp_mb__after_unlock_lock() based on that option. This commit therefore creates CONFIG_ARCH_WEAK_RELACQ, has PPC select it, and bases the definition of smp_mb__after_unlock_lock() on this new CONFIG_ARCH_WEAK_RELACQ Kconfig option. Reported-by: Ingo Molnar [off-list ref] Signed-off-by: Paul E. McKenney [off-list ref] Cc: Peter Zijlstra [off-list ref] Cc: Will Deacon [off-list ref] Cc: Boqun Feng [off-list ref] Cc: Benjamin Herrenschmidt [off-list ref] Cc: Paul Mackerras [off-list ref] Cc: Michael Ellerman [off-list ref] Cc: [off-list ref]Personally I'd call it ARCH_WEAK_RELEASE_ACQUIRE, which is longer but clearer I think. But it's not a big deal, so which ever you prefer.
ARCH_WEAK_RELEASE_ACQUIRE it is!
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Applied, thank you! Thanx, Paul