diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2011-10-09 22:13:11 (GMT) |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2011-12-11 18:31:40 (GMT) |
commit | 0c53dd8b31404c1d7fd15be8f065ebaec615a562 (patch) | |
tree | a12d5ced107fed7a6cdc3a82525d328de9b9d9f3 /Documentation/RCU | |
parent | a7b152d5342c06e81ab0cf7d18345f69fa7e56b5 (diff) | |
download | linux-0c53dd8b31404c1d7fd15be8f065ebaec615a562.tar.xz |
rcu: Introduce raw SRCU read-side primitives
The RCU implementations, including SRCU, are designed to be used in a
lock-like fashion, so that the read-side lock and unlock primitives must
execute in the same context for any given read-side critical section.
This constraint is enforced by lockdep-RCU. However, there is a need
to enter an SRCU read-side critical section within the context of an
exception and then exit in the context of the task that encountered the
exception. The cost of this capability is that the read-side operations
incur the overhead of disabling interrupts.
Note that although the current implementation allows a given read-side
critical section to be entered by one task and then exited by another, all
known possible implementations that allow this have scalability problems.
Therefore, a given read-side critical section must be exited by the same
task that entered it, though perhaps from an interrupt or exception
handler running within that task's context. But if you are thinking
in terms of interrupt handlers, make sure that you have considered the
possibility of threaded interrupt handlers.
Credit goes to Peter Zijlstra for suggesting use of the existing _raw
suffix to indicate disabling lockdep over the earlier "bulkref" names.
Requested-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Diffstat (limited to 'Documentation/RCU')
0 files changed, 0 insertions, 0 deletions