]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commitc209560faddbef2c2e22b382b730ffcdffaf0d6d
tree1712fcb512310a80a7d2c7f92b30ce91750efaf1
parentad16a136f13d26fdbc575185448e75b8b25472a8
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]