diff options
author | Maarten Lankhorst <maarten.lankhorst@canonical.com> | 2013-06-24 10:30:04 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-06-26 12:10:56 +0200 |
commit | 040a0a37100563754bb1fee6ff6427420bcfa609 (patch) | |
tree | 153e76b27ef95f57ad2055d42b8bb07cb1f8d493 /lib/debug_locks.c | |
parent | a41b56efa70e060f650aeb54740aaf52044a1ead (diff) | |
download | linux-040a0a37100563754bb1fee6ff6427420bcfa609.tar.gz linux-040a0a37100563754bb1fee6ff6427420bcfa609.tar.bz2 linux-040a0a37100563754bb1fee6ff6427420bcfa609.zip |
mutex: Add support for wound/wait style locks
Wound/wait mutexes are used when other multiple lock
acquisitions of a similar type can be done in an arbitrary
order. The deadlock handling used here is called wait/wound in
the RDBMS literature: The older tasks waits until it can acquire
the contended lock. The younger tasks needs to back off and drop
all the locks it is currently holding, i.e. the younger task is
wounded.
For full documentation please read Documentation/ww-mutex-design.txt.
References: https://lwn.net/Articles/548909/
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Rob Clark <robdclark@gmail.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: dri-devel@lists.freedesktop.org
Cc: linaro-mm-sig@lists.linaro.org
Cc: rostedt@goodmis.org
Cc: daniel@ffwll.ch
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/51C8038C.9000106@canonical.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'lib/debug_locks.c')
-rw-r--r-- | lib/debug_locks.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/debug_locks.c b/lib/debug_locks.c index f2fa60c59343..96c4c633d95e 100644 --- a/lib/debug_locks.c +++ b/lib/debug_locks.c @@ -30,6 +30,7 @@ EXPORT_SYMBOL_GPL(debug_locks); * a locking bug is detected. */ int debug_locks_silent; +EXPORT_SYMBOL_GPL(debug_locks_silent); /* * Generic 'turn off all lock debugging' function: @@ -44,3 +45,4 @@ int debug_locks_off(void) } return 0; } +EXPORT_SYMBOL_GPL(debug_locks_off); |