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
Documentation
arch
bench
scripts
util
.gitignore -rw-r--r-- 249 bytes
CREDITS -rw-r--r-- 603 bytes
MANIFEST -rw-r--r-- 267 bytes
Makefile -rw-r--r-- 38.8 KB
builtin-annotate.c -rw-r--r-- 10.7 KB
builtin-bench.c -rw-r--r-- 4.8 KB
builtin-buildid-cache.c -rw-r--r-- 3.1 KB
builtin-buildid-list.c -rw-r--r-- 1.5 KB
builtin-diff.c -rw-r--r-- 6.0 KB
builtin-help.c -rw-r--r-- 11.2 KB
builtin-inject.c -rw-r--r-- 4.7 KB
builtin-kmem.c -rw-r--r-- 17.3 KB
builtin-kvm.c -rw-r--r-- 3.6 KB
builtin-list.c -rw-r--r-- 437 bytes
builtin-lock.c -rw-r--r-- 22.7 KB
builtin-probe.c -rw-r--r-- 7.1 KB
builtin-record.c -rw-r--r-- 21.8 KB
builtin-report.c -rw-r--r-- 14.1 KB
builtin-sched.c -rw-r--r-- 43.6 KB
builtin-stat.c -rw-r--r-- 15.0 KB
builtin-test.c -rw-r--r-- 7.0 KB
builtin-timechart.c -rw-r--r-- 21.2 KB
builtin-top.c -rw-r--r-- 34.6 KB
builtin-trace.c -rw-r--r-- 15.5 KB
builtin.h -rw-r--r-- 1.9 KB
command-list.txt -rw-r--r-- 778 bytes
design.txt -rw-r--r-- 17.3 KB
feature-tests.mak -rw-r--r-- 1.6 KB
perf-archive.sh -rw-r--r-- 1.2 KB
perf.c -rw-r--r-- 12.0 KB
perf.h -rw-r--r-- 3.3 KB

back to top