aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2011-11-02 20:24:16 -0400
committerSteven Rostedt <rostedt@goodmis.org>2011-11-07 11:01:46 -0500
commite5e78d08f3ab3094783b8df08a5b6d1d1a56a58f (patch)
tree524c4faf387d4ac1dc46b23015a9d8fc4823ab88 /kernel/trace
parenttracing: update Documentation on max preds limit (diff)
downloadlinux-dev-e5e78d08f3ab3094783b8df08a5b6d1d1a56a58f.tar.xz
linux-dev-e5e78d08f3ab3094783b8df08a5b6d1d1a56a58f.zip
lockdep: Show subclass in pretty print of lockdep output
The pretty print of the lockdep debug splat uses just the lock name to show how the locking scenario happens. But when it comes to nesting locks, the output becomes confusing which takes away the point of the pretty printing of the lock scenario. Without displaying the subclass info, we get the following output: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(slock-AF_INET); lock(slock-AF_INET); lock(slock-AF_INET); lock(slock-AF_INET); *** DEADLOCK *** The above looks more of a A->A locking bug than a A->B B->A. By adding the subclass to the output, we can see what really happened: other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(slock-AF_INET); lock(slock-AF_INET/1); lock(slock-AF_INET); lock(slock-AF_INET/1); *** DEADLOCK *** This bug was discovered while tracking down a real bug caught by lockdep. Link: http://lkml.kernel.org/r/20111025202049.GB25043@hostway.ca Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Reported-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Simon Kirby <sim@hostway.ca> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace')
0 files changed, 0 insertions, 0 deletions