linux/include
Paul E. McKenney 0c53dd8b31 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>
2011-12-11 10:31:40 -08:00
..
acpi Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2011-11-07 10:13:52 -08:00
asm-generic asm-generic/unistd.h: support new process_vm_{readv,write} syscalls 2011-12-03 15:31:48 -05:00
crypto crypto: Add a report function pointer to crypto_type 2011-10-21 14:24:03 +02:00
drm drm/radeon/kms: add some new pci ids 2011-12-01 16:34:15 +00:00
keys
linux rcu: Introduce raw SRCU read-side primitives 2011-12-11 10:31:40 -08:00
math-emu
media Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
misc [media] altera-stapl: it is time to move out from staging 2011-09-23 15:00:57 -03:00
mtd mtd: kill old field for `struct mtd_info_user' 2011-09-11 15:57:44 +03:00
net sch_red: fix red_calc_qavg_from_idle_time 2011-11-30 23:27:22 -05:00
pcmcia pcmcia: add PCMCIA_DEVICE_MANF_CARD_PROD_ID3 2011-08-08 16:04:11 -04:00
rdma Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2011-11-01 10:51:38 -07:00
rxrpc
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2011-10-28 16:44:18 -07:00
sound Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
target target: remove the unused se_dev_list 2011-12-06 06:00:57 +00:00
trace rcu: Add failure tracing to rcutorture 2011-12-11 10:31:26 -08:00
video ARM: OMAP: HWMOD: Unify DSS resets for OMAPs 2011-11-08 03:16:13 -07:00
xen xen: Remove hanging references to CONFIG_XEN_PLATFORM_PCI 2011-11-16 12:13:42 -05:00
Kbuild