Re: Slow booting on x15

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tony,

On Wed, Sep 23, 2020 at 10:07:58AM +0300, Tony Lindgren wrote:
> * Laurent Pinchart [200918 15:59]:
> > On Fri, Sep 18, 2020 at 06:25:02PM +0300, Tomi Valkeinen wrote:
> > > Hi,
> > > 
> > > Has anyone noticed that booting would have slowed down in 5.8 and in 5.9-rcs? I'm booting x15 with
> > > my custom config builder, which uses omap2plus_defconfig as a base. I see:
> > > 
> > > v5.7
> > > [    0.597765] cpuidle: using governor menu
> > > [    0.793198] No ATAGs?
> > > 
> > > [    9.654611] Run /sbin/init as init process
> > > 
> > > 5.8
> > > [    0.616660] cpuidle: using governor menu
> > > [    4.439856] No ATAGs?
> > > 
> > > [   15.484710] Run /sbin/init as init process
> > > 
> > > v5.9-rc5
> > > [    0.706165] cpuidle: using governor menu
> > > [    6.761812] No ATAGs?
> > > 
> > > [   19.522536] Run /sbin/init as init process
> > > 
> > > 
> > > So v5.7 boots quickly, and init starts around 9.6 secs. 5.8 is much slower, and 5.9-rc5 even slower.
> > 
> > I've tracked this down to device_link_add_missing_supplier_links()
> > taking about 40+ms to run, for every device added to the system. Given
> > the large number of devices, this adds up to 10s on v5.9-rc5, when
> > called during the initial of_platform_populate().
> > 
> > It doesn't seem there's a single culprit here (although I may have
> > missed it), "just" lots of walks through the whole device tree that end
> > up taking way too much time. I'm not planning to investigate this
> > further at this point.
> 
> Hmm so do you have some commit that causes this slowness?

No, I haven't had time to bisect this.

> In general, we should now be looking each device at module_init
> time only when configured in the dts. I guess it's possible we still
> have some extra walking of the whole device tree left but this sounds
> like a more generic issue though and not related to the omap dts
> conversion.

There's a call to of_platform_populate() in pdata_quirks_init(), and
that takes between 5 and 10 seconds to run, depending on the board.

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux