Re: [PATCH v4 9/9] clk: fixed-factor: Let clk framework find parent

From: Stephen Boyd
Date: Tue Apr 23 2019 - 14:23:02 EST


Quoting Guenter Roeck (2019-04-23 11:09:22)
> Hi,
>
> On Fri, Apr 12, 2019 at 11:31:50AM -0700, Stephen Boyd wrote:
> > Convert this driver to a more modern way of specifying parents now that
> > we have a way to specify clk parents by DT index. This lets us nicely
> > avoid a problem where a parent clk name isn't know because the parent
> > clk hasn't been registered yet.
> >
> > Cc: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
> > Cc: Jerome Brunet <jbrunet@xxxxxxxxxxxx>
> > Cc: Russell King <linux@xxxxxxxxxxxxxxx>
> > Cc: Michael Turquette <mturquette@xxxxxxxxxxxx>
> > Cc: Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx>
> > Cc: Chen-Yu Tsai <wens@xxxxxxxx>
> > Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxx>
>
> This patch causes a substantial number of crashes of qemu boot tests in -next.
>
> Failed tests:
> arm:versatilepb:versatile_defconfig:aeabi:pci:scsi:mem128:versatile-pb:rootfs
> arm:versatilepb:versatile_defconfig:aeabi:pci:mem128:versatile-pb:initrd
> arm:versatileab:versatile_defconfig:mem128:versatile-ab:initrd
> arm:beagle:multi_v7_defconfig:sd:mem256:omap3-beagle:rootfs
> arm:beaglexm:multi_v7_defconfig:sd:mem512:omap3-beagle-xm:rootfs
> arm:overo:multi_v7_defconfig:sd:mem256:omap3-overo-tobi:rootfs
> arm:realview-pb-a8:realview_defconfig:realview_pb:mem512:arm-realview-pba8:initrd
> arm:realview-pbx-a9:realview_defconfig:realview_pb:arm-realview-pbx-a9:initrd
> arm:realview-eb:realview_defconfig:realview_eb:mem512:arm-realview-eb:initrd
> arm:realview-eb-mpcore:realview_defconfig:realview_eb:mem512:arm-realview-eb-11mp-ctrevb:initrd
> arm:integratorcp:integrator_defconfig:mem128:integratorcp:initrd
> arm:mps2-an385:mps2_defconfig:mps2-an385:initrd
>
> Most of the time the crash happens too early to generate a log,
> but here is one:
>
> [ 0.000000] [<2100bd59>] (unwind_backtrace) from [<2100b11f>] (show_stack+0xb/0xc)
> [ 0.000000] [<2100b11f>] (show_stack) from [<211b2d27>] (Ldiv0_64+0x9/0x1a)
> [ 0.000000] [<211b2d27>] (Ldiv0_64) from [<21038e87>] (clocks_calc_max_nsecs+0x1d/0x62)
> [ 0.000000] [<21038e87>] (clocks_calc_max_nsecs) from [<21038fb1>] (__clocksource_update_freq_scale+0xe5/0x11c)
> [ 0.000000] [<21038fb1>] (__clocksource_update_freq_scale) from [<21038ff1>] (__clocksource_register_scale+0x9/0x40)
> [ 0.000000] [<21038ff1>] (__clocksource_register_scale) from [<212a8713>] (mps2_timer_init+0xaf/0x29c)
> [ 0.000000] [<212a8713>] (mps2_timer_init) from [<212a85b1>] (timer_probe+0x49/0x80)
> [ 0.000000] [<212a85b1>] (timer_probe) from [<2129d639>] (start_kernel+0x1c5/0x2f4)
> [ 0.000000] [<2129d639>] (start_kernel) from [<00000000>] ( (null))
> [ 0.000000] clocksource: mps2-clksrc: mask: 0xffffffff max_cycles: 0x0, max_idle_ns: 0 ns
> [ 0.000000] Division by zero in kernel.
>
> Reverting the crash fixes the problem. Bisect log attached.
>

Thanks for the report. This was bisected yesterday by kernelci.org (see
https://lkml.kernel.org/r/5cbe596c.1c69fb81.e252.b9d0@xxxxxxxxxxxxx for
more details). Can you try the latest version of clk-next and see if it
fixes the early crashes? The one-liner patch I attached in that thread
should be all you need.

It would be even better for kernelci to find the offending patch like
you've done here and reply to the patch on the mailing list.

Finally, can you share your qemu recipe? I can pull it into my testing
and integration workflow so that this doesn't happen again.