From: Peter Zijlstra Date: Fri, 24 May 2019 11:52:31 +0000 (+0200) Subject: Documentation/atomic_t.txt: Clarify pure non-rmw usage X-Git-Tag: v5.3-rc1~203^2~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fff9b6c7d26943a8eb32b58364b7ec6b9369746a;p=thirdparty%2Fkernel%2Flinux.git Documentation/atomic_t.txt: Clarify pure non-rmw usage Clarify that pure non-RMW usage of atomic_t is pointless, there is nothing 'magical' about atomic_set() / atomic_read(). This is something that seems to confuse people, because I happen upon it semi-regularly. Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Greg Kroah-Hartman Acked-by: Will Deacon Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190524115231.GN2623@hirez.programming.kicks-ass.net Signed-off-by: Ingo Molnar --- diff --git a/Documentation/atomic_t.txt b/Documentation/atomic_t.txt index dca3fb0554db4..89eae7f6b3601 100644 --- a/Documentation/atomic_t.txt +++ b/Documentation/atomic_t.txt @@ -81,9 +81,11 @@ Non-RMW ops: The non-RMW ops are (typically) regular LOADs and STOREs and are canonically implemented using READ_ONCE(), WRITE_ONCE(), smp_load_acquire() and -smp_store_release() respectively. +smp_store_release() respectively. Therefore, if you find yourself only using +the Non-RMW operations of atomic_t, you do not in fact need atomic_t at all +and are doing it wrong. -The one detail to this is that atomic_set{}() should be observable to the RMW +A subtle detail of atomic_set{}() is that it should be observable to the RMW ops. That is: C atomic-set