lglock: introduce special lglock and brlock spin locks
authorNick Piggin <npiggin@kernel.dk>
Tue, 17 Aug 2010 18:37:37 +0000 (04:37 +1000)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 18 Aug 2010 12:35:48 +0000 (08:35 -0400)
commit2dc91abe03d8ce6dd7f9251faffafca5f6b9e85d
tree1712fcb512310a80a7d2c7f92b30ce91750efaf1
parentd996b62a8df1d935b01319bf8defb95b5709f7b8
lglock: introduce special lglock and brlock spin locks

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>
include/linux/lglock.h [new file with mode: 0644]