Skip to content
  • Vegard Nossum's avatar
    locking/hung_task: Show all locks · b2d4c2ed
    Vegard Nossum authored
    
    
    When we get a hung task it can often be valuable to see _all_ the held
    locks on the system (in case we are being blocked on trying to acquire
    one), e.g. with this patch we can immediately see where the problem is
    below:
    
        INFO: task trinity-c3:14933 blocked for more than 120 seconds.
    	  Not tainted 4.8.0-rc1+ #135
        "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
        trinity-c3      D ffff88010c16fc88     0 14933      1 0x00080004
         ffff88010c16fc88 000000003b9aca00 0000000000000000 0000000000000296
         00000000776cdf88 ffff88011a520ae0 ffff88011a520b08 ffff88011a520198
         ffffffff867d7f00 ffff88011942c080 ffff880116841580 ffff88010c168000
        Call Trace:
         [<ffffffff845e9d37>] schedule+0x77/0x230
         [<ffffffff833cb8b9>] __lock_sock+0x129/0x250
         [<ffffffff833cb790>] ? __sk_destruct+0x450/0x450
         [<ffffffff81408ac0>] ? wake_bit_function+0x2e0/0x2e0
         [<ffffffff833d832b>] lock_sock_nested+0xeb/0x120
         [<ffffffff83bad815>] irda_setsockopt+0x65/0xb40
         [<ffffffff833c6c09>] SyS_setsockopt+0x139/0x230
         [<ffffffff833c6ad0>] ? SyS_recv+0x20/0x20
         [<ffffffff81004660>] ? trace_event_raw_event_sys_enter+0xb90/0xb90
         [<ffffffff823c7023>] ? __this_cpu_preempt_check+0x13/0x20
         [<ffffffff8162ee60>] ? __context_tracking_exit.part.3+0x30/0x1b0
         [<ffffffff833c6ad0>] ? SyS_recv+0x20/0x20
         [<ffffffff81007bd3>] do_syscall_64+0x1b3/0x4b0
         [<ffffffff845f84aa>] entry_SYSCALL64_slow_path+0x25/0x25
    
        Showing all locks held in the system:
        2 locks held by khungtaskd/563:
         #0:  (rcu_read_lock){......}, at: [<ffffffff81534ce6>] watchdog+0x106/0x910
         #1:  (tasklist_lock){......}, at: [<ffffffff8141b3c4>] debug_show_all_locks+0x74/0x360
        1 lock held by trinity-c0/19280:
         #0:  (sk_lock-AF_IRDA){......}, at: [<ffffffff83bab7c6>] irda_accept+0x176/0x10f0
        1 lock held by trinity-c0/12865:
         #0:  (sk_lock-AF_IRDA){......}, at: [<ffffffff83bab7c6>] irda_accept+0x176/0x10f0
    
    Signed-off-by: default avatarVegard Nossum <vegard.nossum@oracle.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mandeep Singh Baines <msb@chromium.org>
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/1471538460-7505-1-git-send-email-vegard.nossum@oracle.com
    
    
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    b2d4c2ed