Revert "local_t Documentation update"
This reverts commite1265205c0
. It's a duplicate commit of commit74beb9db77
, 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>
This commit is contained in:
parent
545c442333
commit
34aebfd3bd
1 changed files with 0 additions and 23 deletions
|
@ -45,29 +45,6 @@ long fails. The definition looks like :
|
|||
typedef struct { atomic_long_t a; } local_t;
|
||||
|
||||
|
||||
* Rules to follow when using local atomic operations
|
||||
|
||||
- Variables touched by local ops must be per cpu variables.
|
||||
- _Only_ the CPU owner of these variables must write to them.
|
||||
- This CPU can use local ops from any context (process, irq, softirq, nmi, ...)
|
||||
to update its local_t variables.
|
||||
- Preemption (or interrupts) must be disabled when using local ops in
|
||||
process context to make sure the process won't be migrated to a
|
||||
different CPU between getting the per-cpu variable and doing the
|
||||
actual local op.
|
||||
- When using local ops in interrupt context, no special care must be
|
||||
taken on a mainline kernel, since they will run on the local CPU with
|
||||
preemption already disabled. I suggest, however, to explicitly
|
||||
disable preemption anyway to make sure it will still work correctly on
|
||||
-rt kernels.
|
||||
- Reading the local cpu variable will provide the current copy of the
|
||||
variable.
|
||||
- Reads of these variables can be done from any CPU, because updates to
|
||||
"long", aligned, variables are always atomic. Since no memory
|
||||
synchronization is done by the writer CPU, an outdated copy of the
|
||||
variable can be read when reading some _other_ cpu's variables.
|
||||
|
||||
|
||||
* Rules to follow when using local atomic operations
|
||||
|
||||
- Variables touched by local ops must be per cpu variables.
|
||||
|
|
Loading…
Reference in a new issue