refcount_t: Add ACQUIRE ordering on success for dec(sub)_and_test() variants
authorElena Reshetova <elena.reshetova@intel.com>
Wed, 30 Jan 2019 11:18:51 +0000 (13:18 +0200)
committerIngo Molnar <mingo@kernel.org>
Mon, 4 Feb 2019 08:03:31 +0000 (09:03 +0100)
commit47b8f3ab9c49daa824af848f9e02889662d8638f
treebd42ab897748eafaacdc5d0bb97256a678cee3d5
parent412f34a82ccf7dd52f6b197f6450a33f03342523
refcount_t: Add ACQUIRE ordering on success for dec(sub)_and_test() variants

This adds an smp_acquire__after_ctrl_dep() barrier on successful
decrease of refcounter value from 1 to 0 for refcount_dec(sub)_and_test
variants and therefore gives stronger memory ordering guarantees than
prior versions of these functions.

Co-developed-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Elena Reshetova <elena.reshetova@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Andrea Parri <andrea.parri@amarulasolutions.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Cc: dvyukov@google.com
Cc: keescook@chromium.org
Cc: stern@rowland.harvard.edu
Link: https://lkml.kernel.org/r/1548847131-27854-2-git-send-email-elena.reshetova@intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Documentation/core-api/refcount-vs-atomic.rst
arch/x86/include/asm/refcount.h
lib/refcount.c