linux/Documentation/core-api
Elena Reshetova 47b8f3ab9c 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>
2019-02-04 09:03:31 +01:00
..
assoc_array.rst Documentation: Use "while" instead of "whilst" 2018-11-20 09:30:43 -07:00
atomic_ops.rst locking/atomics/Documentation: Describe atomic_set() as a write operation 2018-07-17 09:30:31 +02:00
boot-time-mm.rst docs/boot-time-mm: remove bootmem documentation 2018-10-31 08:54:16 -07:00
cachetlb.rst docs: core-api: add cachetlb documentation 2018-05-08 10:02:34 -06:00
circular-buffers.rst docs: core-api: add circular-buffers documentation 2018-05-08 10:07:06 -06:00
conf.py docs: Add more manuals to the PDF build 2016-11-16 16:07:02 -07:00
cpu_hotplug.rst Documentation: Update CPU hotplug and move it to core-api 2017-01-13 10:32:32 -07:00
debug-objects.rst doc: debugobjects: actually pull in the kerneldoc comments 2016-11-29 14:44:14 -07:00
errseq.rst errseq: Add to documentation tree 2018-01-01 12:40:27 -07:00
flexible-arrays.rst Documentation: Add flexible-arrays.rst to the documentation tree 2017-03-29 14:50:21 -06:00
genalloc.rst doc: Add documentation for the genalloc subsystem 2017-08-30 16:49:04 -06:00
genericirq.rst genericirq.rst: Remove :c:func:... in code blocks 2017-12-02 08:41:46 -07:00
gfp_mask-from-fs-io.rst docs: core-api/gfp_mask-from-fs-io: add a label for cross-referencing 2018-09-20 11:02:32 -06:00
idr.rst idr: Change documentation license 2018-10-15 16:31:29 -04:00
index.rst Merge branch 'xarray' of git://git.infradead.org/users/willy/linux-dax 2018-10-28 11:35:40 -07:00
kernel-api.rst Docs/kernel-api.rst: Remove blk-tag.c reference 2019-01-03 09:18:27 -07:00
librs.rst docs-rst: convert librs book to ReST 2017-05-16 08:44:16 -03:00
local_ops.rst timer: Remove init_timer() interface 2017-11-21 15:57:09 -08:00
memory-allocation.rst Link the memory allocation guide from the MM docs 2018-11-20 09:17:40 -07:00
memory-hotplug.rst docs/core-api: memory-hotplug: add some details about locking internals 2018-10-12 11:14:19 -06:00
mm-api.rst docs/mm-api: link slab_common.c to "The Slab Cache" section 2018-12-20 08:33:21 -07:00
printk-formats.rst lib/vsprintf: Print time and date in human readable format via %pt 2018-12-10 22:39:34 +01:00
refcount-vs-atomic.rst refcount_t: Add ACQUIRE ordering on success for dec(sub)_and_test() variants 2019-02-04 09:03:31 +01:00
timekeeping.rst Documentation: document ktime_get_*() APIs 2018-07-23 09:16:56 -06:00
tracepoint.rst doc: Sphinxify the tracepoint docbook 2016-11-29 14:44:23 -07:00
workqueue.rst Documentation: core-api: minor workqueue.rst cleanups 2017-09-18 17:29:27 -07:00
xarray.rst XArray: Honour reserved entries in xa_insert 2019-01-06 22:12:58 -05:00