Re: locking/spinlock/debug: Remove spinlock lockup detection code

From: Geert Uytterhoeven
Date: Tue Aug 29 2017 - 09:07:17 EST


Hi Greg,

On Mon, Feb 20, 2017 at 10:48 PM, Linux Kernel Mailing List
<linux-kernel@xxxxxxxxxxxxxxx> wrote:
> Web: https://git.kernel.org/torvalds/c/bc88c10d7e6900916f5e1ba3829d66a9de92b633
> Commit: bc88c10d7e6900916f5e1ba3829d66a9de92b633
> Parent: f9af456a61ecfbef8233c5046a9e347c9b98ba05
> Refname: refs/heads/master
> Author: Waiman Long <longman@xxxxxxxxxx>
> AuthorDate: Wed Feb 8 14:46:48 2017 -0500
> Committer: Ingo Molnar <mingo@xxxxxxxxxx>
> CommitDate: Fri Feb 10 09:09:49 2017 +0100
>
> locking/spinlock/debug: Remove spinlock lockup detection code
>
> The current spinlock lockup detection code can sometimes produce false
> positives because of the unfairness of the locking algorithm itself.
>
> So the lockup detection code is now removed. Instead, we are relying
> on the NMI watchdog to detect potential lockup. We won't have lockup
> detection if the watchdog isn't running.
>
> The commented-out read-write lock lockup detection code are also
> removed.
>
> Signed-off-by: Waiman Long <longman@xxxxxxxxxx>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Sasha Levin <sasha.levin@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Link: http://lkml.kernel.org/r/1486583208-11038-1-git-send-email-longman@xxxxxxxxxx
> Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>

Can you please backport this commit to v4.9.x and/or ltsi?

It fixes the following issue in 4.9.40-ltsi on r8a7740/armadillo:

BUG: spinlock lockup suspected on CPU#0, swapper/1
lock: lcdc0_device+0xa0/0x258, .magic: 00000000, .owner:
<none>/-1, .owner_cpu: 0
CPU: 0 PID: 1 Comm: swapper Not tainted
4.9.40-ltsi-armadillo-00939-gfc8b396897fd0712 #36
Hardware name: Generic R8A7740 (Flattened Device Tree)
[<c010d068>] (unwind_backtrace) from [<c010ab54>] (show_stack+0x10/0x14)
[<c010ab54>] (show_stack) from [<c014fe9c>] (do_raw_spin_lock+0xd4/0x118)
[<c014fe9c>] (do_raw_spin_lock) from [<c0357000>]
(dev_pm_get_subsys_data+0x2c/0x9c)
[<c0357000>] (dev_pm_get_subsys_data) from [<c0360978>]
(genpd_add_device+0x38/0x1b4)
[<c0360978>] (genpd_add_device) from [<c0360b74>]
(of_genpd_add_device+0x38/0x50)
[<c0360b74>] (of_genpd_add_device) from [<c0818ef8>]
(board_staging_register_device+0xb0/0xe8)
[<c0818ef8>] (board_staging_register_device) from [<c0818f54>]
(board_staging_register_devices+0x24/0x2c)
[<c0818f54>] (board_staging_register_devices) from [<c0818f88>]
(runtime_board_check+0x2c/0x40)
[<c0818f88>] (runtime_board_check) from [<c01016dc>]
(do_one_initcall+0xac/0x154)
[<c01016dc>] (do_one_initcall) from [<c0800ce8>]
(kernel_init_freeable+0x104/0x1c4)
[<c0800ce8>] (kernel_init_freeable) from [<c0522150>]
(kernel_init+0x8/0x10c)
[<c0522150>] (kernel_init) from [<c0106db0>] (ret_from_fork+0x14/0x24)

Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds