All of lore.kernel.org
 help / color / mirror / Atom feed
* [tip:locking/core] locking/atomics: Update comment about READ_ONCE() and structures
       [not found] <1453757600-11441-1-git-send-email-konrad.wilk@oracle.com>
@ 2016-02-09 16:09 ` tip-bot for Konrad Rzeszutek Wilk
  0 siblings, 0 replies; only message in thread
From: tip-bot for Konrad Rzeszutek Wilk @ 2016-02-09 16:09 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: sasha.levin, mingo, luto, tglx, konrad.wilk, torvalds,
	borntraeger, linux-kernel, hpa, bp, peterz, paulmck

Commit-ID:  fed0764fafd8e2e629a033c0f7df4106b0dcb7f0
Gitweb:     http://git.kernel.org/tip/fed0764fafd8e2e629a033c0f7df4106b0dcb7f0
Author:     Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
AuthorDate: Mon, 25 Jan 2016 16:33:20 -0500
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Tue, 9 Feb 2016 14:50:16 +0100

locking/atomics: Update comment about READ_ONCE() and structures

The comment is out of data. Also point out the performance drawback
of the barrier();__builtin_memcpy(); barrier() followed by another
copy from stack (__u) to lvalue;

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sasha Levin <sasha.levin@oracle.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1453757600-11441-1-git-send-email-konrad.wilk@oracle.com
[ Made it a bit more readable. ]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 include/linux/compiler.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index 00b042c..4291592 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -263,8 +263,9 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
  * In contrast to ACCESS_ONCE these two macros will also work on aggregate
  * data types like structs or unions. If the size of the accessed data
  * type exceeds the word size of the machine (e.g., 32 bits or 64 bits)
- * READ_ONCE() and WRITE_ONCE()  will fall back to memcpy and print a
- * compile-time warning.
+ * READ_ONCE() and WRITE_ONCE() will fall back to memcpy(). There's at
+ * least two memcpy()s: one for the __builtin_memcpy() and then one for
+ * the macro doing the copy of variable - '__u' allocated on the stack.
  *
  * Their two major use cases are: (1) Mediating communication between
  * process-level code and irq/NMI handlers, all running on the same CPU,

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-02-09 16:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1453757600-11441-1-git-send-email-konrad.wilk@oracle.com>
2016-02-09 16:09 ` [tip:locking/core] locking/atomics: Update comment about READ_ONCE() and structures tip-bot for Konrad Rzeszutek Wilk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.