Hi All,

I have enabled lock debugging  and it is showing "possible recursive locking 
detected "with the patch ("8234f6734c5d74ac794e5517437f51c57d65f865"   
PM-runtime: Switch autosuspend over to using hrtimers)

root@salvator-x:~# echo  e60f0000.timer > 
/sys/devices/system/clocksource/clocksource0/current_clocksource
[   67.995854]
[   67.997354] ============================================
[   68.002663] WARNING: possible recursive locking detected
[   68.007974] 5.0.0-rc3-next-20190125-00005-g382822b #31 Not tainted
[   68.014150] --------------------------------------------
[   68.019459] migration/0/11 is trying to acquire lock:
[   68.024509] 0000000065de5fdf (tk_core.seq){----}, at: rpm_resume+0x5f0/0x7a8
[   68.031570]
[   68.031570] but task is already holding lock:
[   68.037399] 0000000065de5fdf (tk_core.seq){----}, at: 
multi_cpu_stop+0x8c/0x140
[   68.044714]
[   68.044714] other info that might help us debug this:
[   68.051237]  Possible unsafe locking scenario:
[   68.051237]
[   68.057153]        CPU0
[   68.059594]        ----
[   68.062034]   lock(tk_core.seq);
[   68.065258]   lock(tk_core.seq);
[   68.068482]
[   68.068482]  *** DEADLOCK ***
[   68.068482]
[   68.074402]  May be due to missing lock nesting notation
[   68.074402]
[   68.081188] 4 locks held by migration/0/11:
[   68.085366]  #0: 00000000463b6446 (timekeeper_lock){-.-.}, at: 
change_clocksource+0x2c/0x118
[   68.093812]  #1: 0000000065de5fdf (tk_core.seq){----}, at: 
multi_cpu_stop+0x8c/0x140
[   68.101558]  #2: 0000000098b45550 (&ch->lock){....}, at: 
sh_cmt_start+0x28/0x200
[   68.108961]  #3: 00000000da0f4e80 (&(&dev->power.lock)->rlock){-...}, at: 
__rpm_callback+0xbc/0x1e8
[   68.118011]
[   68.118011] stack backtrace:
[   68.122368] CPU: 0 PID: 11 Comm: migration/0 Not tainted 
5.0.0-rc3-next-20190125-00005-g382822b #31
[   68.131412] Hardware name: Renesas Salvator-X 2nd version board based on 
r8a7796 (DT)
[   68.139240] Call trace:
[   68.141687]  dump_backtrace+0x0/0x178
[   68.145346]  show_stack+0x14/0x20
[   68.148661]  dump_stack+0xb0/0xec
[   68.151975]  __lock_acquire+0xfb4/0x1c08
[   68.155894]  lock_acquire+0xd0/0x268
[   68.159467]  ktime_get+0x5c/0x108
[   68.162779]  rpm_resume+0x5f0/0x7a8
[   68.166265]  __pm_runtime_resume+0x50/0x98
[   68.170358]  sh_cmt_start+0x84/0x200
[   68.173931]  sh_cmt_clocksource_enable+0x28/0x48
[   68.178546]  change_clocksource+0x84/0x118
[   68.182639]  multi_cpu_stop+0x8c/0x140
[   68.186385]  cpu_stopper_thread+0xac/0x120
[   68.190481]  smpboot_thread_fn+0x1ac/0x2c8
[   68.194574]  kthread+0x12c/0x130
[   68.197800]  ret_from_fork+0x10/0x18

Regards,
Biju

> -----Original Message-----
> From: Biju Das
> Sent: 25 January 2019 11:27
> To: 'Geert Uytterhoeven' <[email protected]>; Vincent Guittot
> <[email protected]>; Sergei Shtylyov
> <[email protected]>
> Cc: Rob Herring <[email protected]>; Mark Rutland
> <[email protected]>; Simon Horman <[email protected]>; Magnus
> Damm <[email protected]>; Linux-Renesas <linux-renesas-
> [email protected]>; open list:OPEN FIRMWARE AND FLATTENED DEVICE
> TREE BINDINGS <[email protected]>; Geert Uytterhoeven
> <[email protected]>; Chris Paterson
> <[email protected]>; Daniel Lezcano
> <[email protected]>; Thomas Gleixner <[email protected]>; John
> Stultz <[email protected]>; Fabrizio Castro
> <[email protected]>; Samuel Holland <[email protected]>
> Subject: RE: [PATCH] arm64: dts: renesas: r8a7796: Add CMT device nodes
>
> Hi Geert,
>
> Thanks for the feedback. I started testing CMT on latest kernel(Linux-next-
> 20190125 and also renesas-dev) and found that it is broken on R-Car M3-W
> device.
>
> On further investigation the patch ("
> 8234f6734c5d74ac794e5517437f51c57d65f865"   PM-runtime: Switch
> autosuspend over to using hrtimers)  is causing the issue.
>
> During clock source switching, It calls the function "sh_cmt_enable"  which
> calls " pm_runtime_get_sync(&ch->cmt->pdev->dev);"  and after that
> console freezes.
>
> Sergei: Have you noticed this issue  on R-Car V3M and V3H boards with latest
> kernel?
>
> Regards,
> Biju
>
> > -----Original Message-----
> > From: [email protected] <linux-renesas-soc-
> > [email protected]> On Behalf Of Geert Uytterhoeven
> > Sent: 24 January 2019 10:16
> > To: Biju Das <[email protected]>
> > Cc: Rob Herring <[email protected]>; Mark Rutland
> > <[email protected]>; Simon Horman <[email protected]>;
> Magnus Damm
> > <[email protected]>; Linux-Renesas <linux-renesas-
> > [email protected]>; open list:OPEN FIRMWARE AND FLATTENED DEVICE
> > TREE BINDINGS <[email protected]>; Geert Uytterhoeven
> > <[email protected]>; Chris Paterson
> > <[email protected]>; Daniel Lezcano
> > <[email protected]>; Thomas Gleixner <[email protected]>;
> > John Stultz <[email protected]>; Fabrizio Castro
> > <[email protected]>; Samuel Holland
> <[email protected]>
> > Subject: Re: [PATCH] arm64: dts: renesas: r8a7796: Add CMT device
> > nodes
> >
> > Hi Biju,
> >
> > On Fri, Oct 26, 2018 at 10:32 AM Biju Das <[email protected]>
> wrote:
> > > This patch adds CMT{0|1|2|3} device nodes for r8a7796 SoC.
> > >
> > > Signed-off-by: Biju Das <[email protected]>
> > > ---
> > > This patch is tested against renesas-dev
> > >
> > > I have executed on inconsistency-check, nanosleep and
> > > clocksource_switch selftests on this arm64 SoC. The
> > > inconsistency-check and nanosleep tests are working fine.The
> > > clocksource_switch asynchronous test is failing due to
> > > inconsistency-check
> > failure on "arch_sys_counter".
> > >
> > > But if i skip the clocksource_switching of "arch_sys_counter", the
> > > asynchronous test is passing for CMT0/1/2/3 timer.
> > >
> > > Has any one noticed this issue?
> >
> > clockevents/next now has commit 7cd6dca3600d8d71
> > ("clocksource/drivers/arch_timer: Workaround for Allwinner A64 timer
> > instability").  Perhaps this is related, and the same test program may
> > indicate similar issues?
> >
> > See also https://lore.kernel.org/lkml/20190113021719.46457-2-
> > [email protected]/
> >
> > Gr{oetje,eeting}s,
> >
> >                         Geert
> >
> > --
> > Geert Uytterhoeven -- There's lots of Linux beyond ia32 --
> > geert@linux- m68k.org
> >
> > 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



Renesas Electronics Europe Ltd, Dukes Meadow, Millboard Road, Bourne End, 
Buckinghamshire, SL8 5FH, UK. Registered in England & Wales under Registered 
No. 04586709.

Reply via email to