aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/local_ops.txt
diff options
context:
space:
mode:
authorLi Zefan <lizf@cn.fujitsu.com>2008-01-17 18:21:20 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-01-17 18:38:59 -0500
commit34aebfd3bdc93c0c5614f1f61e43b6ddc4be52ae (patch)
treeed8f9df6c17883382584b8df5587fd28eb39c53e /Documentation/local_ops.txt
parent545c4423335469de06af7f7c95e97c1122c1c818 (diff)
Revert "local_t Documentation update"
This reverts commit e1265205c0ee3919c3f2c750662630154c8faab2. It's a duplicate commit of commit 74beb9db77930be476b267ec8518a642f39a04bf, resulting in a duplicate section. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Acked-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation/local_ops.txt')
-rw-r--r--Documentation/local_ops.txt23
1 files changed, 0 insertions, 23 deletions
diff --git a/Documentation/local_ops.txt b/Documentation/local_ops.txt
index 1a45f11e645e..4269a1105b37 100644
--- a/Documentation/local_ops.txt
+++ b/Documentation/local_ops.txt
@@ -68,29 +68,6 @@ typedef struct { atomic_long_t a; } local_t;
68 variable can be read when reading some _other_ cpu's variables. 68 variable can be read when reading some _other_ cpu's variables.
69 69
70 70
71* Rules to follow when using local atomic operations
72
73- Variables touched by local ops must be per cpu variables.
74- _Only_ the CPU owner of these variables must write to them.
75- This CPU can use local ops from any context (process, irq, softirq, nmi, ...)
76 to update its local_t variables.
77- Preemption (or interrupts) must be disabled when using local ops in
78 process context to make sure the process won't be migrated to a
79 different CPU between getting the per-cpu variable and doing the
80 actual local op.
81- When using local ops in interrupt context, no special care must be
82 taken on a mainline kernel, since they will run on the local CPU with
83 preemption already disabled. I suggest, however, to explicitly
84 disable preemption anyway to make sure it will still work correctly on
85 -rt kernels.
86- Reading the local cpu variable will provide the current copy of the
87 variable.
88- Reads of these variables can be done from any CPU, because updates to
89 "long", aligned, variables are always atomic. Since no memory
90 synchronization is done by the writer CPU, an outdated copy of the
91 variable can be read when reading some _other_ cpu's variables.
92
93
94* How to use local atomic operations 71* How to use local atomic operations
95 72
96#include <linux/percpu.h> 73#include <linux/percpu.h>