https://github.com/torvalds/linux
Revision 2dc91abe03d8ce6dd7f9251faffafca5f6b9e85d authored by Nick Piggin on 17 August 2010, 18:37:37 UTC, committed by Al Viro on 18 August 2010, 12:35:48 UTC
lglock: introduce special lglock and brlock spin locks

This patch introduces "local-global" locks (lglocks). These can be used to:

- Provide fast exclusive access to per-CPU data, with exclusive access to
  another CPU's data allowed but possibly subject to contention, and to provide
  very slow exclusive access to all per-CPU data.
- Or to provide very fast and scalable read serialisation, and to provide
  very slow exclusive serialisation of data (not necessarily per-CPU data).

Brlocks are also implemented as a short-hand notation for the latter use
case.

Thanks to Paul for local/global naming convention.

Cc: linux-kernel@vger.kernel.org
Cc: Al Viro <viro@ZenIV.linux.org.uk>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Signed-off-by: Nick Piggin <npiggin@kernel.dk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
1 parent d996b62
History
Tip revision: 2dc91abe03d8ce6dd7f9251faffafca5f6b9e85d authored by Nick Piggin on 17 August 2010, 18:37:37 UTC
lglock: introduce special lglock and brlock spin locks
Tip revision: 2dc91ab
File Mode Size
basic
coccinelle
dtc
genksyms
kconfig
ksymoops
mod
package
rt-tester
selinux
tracing
.gitignore -rw-r--r-- 75 bytes
Kbuild.include -rw-r--r-- 9.5 KB
Lindent -rwxr-xr-x 460 bytes
Makefile -rw-r--r-- 934 bytes
Makefile.build -rw-r--r-- 12.1 KB
Makefile.clean -rw-r--r-- 3.2 KB
Makefile.fwinst -rw-r--r-- 2.0 KB
Makefile.headersinst -rw-r--r-- 3.2 KB
Makefile.help -rw-r--r-- 68 bytes
Makefile.host -rw-r--r-- 6.5 KB
Makefile.lib -rw-r--r-- 9.1 KB
Makefile.modbuiltin -rw-r--r-- 1.8 KB
Makefile.modinst -rw-r--r-- 1.0 KB
Makefile.modpost -rw-r--r-- 5.1 KB
bin2c.c -rw-r--r-- 702 bytes
bloat-o-meter -rwxr-xr-x 1.7 KB
bootgraph.pl -rw-r--r-- 5.6 KB
checkincludes.pl -rwxr-xr-x 1.8 KB
checkkconfigsymbols.sh -rwxr-xr-x 1.8 KB
checkpatch.pl -rwxr-xr-x 75.5 KB
checkstack.pl -rwxr-xr-x 5.2 KB
checksyscalls.sh -rwxr-xr-x 5.5 KB
checkversion.pl -rwxr-xr-x 1.8 KB
cleanfile -rwxr-xr-x 3.4 KB
cleanpatch -rwxr-xr-x 5.0 KB
coccicheck -rwxr-xr-x 2.0 KB
config -rwxr-xr-x 2.6 KB
conmakehash.c -rw-r--r-- 6.0 KB
decodecode -rwxr-xr-x 1.9 KB
diffconfig -rwxr-xr-x 3.6 KB
export_report.pl -rw-r--r-- 4.2 KB
extract-ikconfig -rwxr-xr-x 1.3 KB
gcc-version.sh -rw-r--r-- 819 bytes
gcc-x86_32-has-stack-protector.sh -rw-r--r-- 183 bytes
gcc-x86_64-has-stack-protector.sh -rw-r--r-- 199 bytes
gen_initramfs_list.sh -rw-r--r-- 7.1 KB
get_maintainer.pl -rwxr-xr-x 34.3 KB
gfp-translate -rw-r--r-- 1.5 KB
headerdep.pl -rwxr-xr-x 3.5 KB
headers.sh -rwxr-xr-x 512 bytes
headers_check.pl -rw-r--r-- 2.7 KB
headers_install.pl -rw-r--r-- 1.5 KB
kallsyms.c -rw-r--r-- 15.2 KB
kernel-doc -rwxr-xr-x 61.1 KB
makelst -rwxr-xr-x 773 bytes
markup_oops.pl -rw-r--r-- 8.1 KB
mkcompile_h -rwxr-xr-x 2.5 KB
mkmakefile -rw-r--r-- 1.1 KB
mksysmap -rw-r--r-- 1.3 KB
mkuboot.sh -rwxr-xr-x 379 bytes
mkversion -rw-r--r-- 74 bytes
module-common.lds -rw-r--r-- 210 bytes
namespace.pl -rwxr-xr-x 13.0 KB
patch-kernel -rwxr-xr-x 9.8 KB
pnmtologo.c -rw-r--r-- 11.7 KB
profile2linkerlist.pl -rw-r--r-- 375 bytes
recordmcount.pl -rwxr-xr-x 17.0 KB
setlocalversion -rwxr-xr-x 3.6 KB
show_delta -rwxr-xr-x 3.0 KB
tags.sh -rwxr-xr-x 4.6 KB
unifdef.c -rw-r--r-- 31.6 KB
ver_linux -rwxr-xr-x 3.1 KB

back to top