Re: [boot-time] [RFC] analyze-initcall-debug.py - a tool to analyze the initcall debug output

Geert Uytterhoeven <[email protected]> Thu, 5 Dec 2024 15:58:09 +0100
Newsgroups org.kernel.vger.linux-embedded
Message-ID <CAMuHMdUsLwvnZJ9i531coBkZpDzD_GuhODpHfqayrPAXT6PfOQ@mail.gmail.com>
Hi Francesco,

On Thu, Dec 5, 2024 at 3:47 PM Francesco Valla <[email protected]> wrote:
> On Tuesday, 3 December 2024 at 21:33:06 Bird, Tim <[email protected]> wrote:
> > > From: Francesco Valla <[email protected]>
> > > Top 10 init/probes durations:
> > >  * 30200000.dss -> 523002us
> >
> > This call, and a lot of the others are missing function names.  Did you compile the kernel with
> > CONFIG_KALLSYMS=y?
> >
> > If that's the case, is there a way to use the System.map file for the kernel (used on
> > the machine where the dmesg was obtained from) to map these addresses
> > to their respective  function names?
>
> These are not in fact addresses, but rather device names. In my understanding, they are printed
> when a probe happens outside of the initialization function for their driver. I still don't have an idea
> on how to match probes with their original initcall, in order to present the user the complete picture.

30200000.dss corresponds to dss@30200000 in the DTS.

$ git grep -W dss@30200000 | grep compatible
arch/arm64/boot/dts/ti/k3-am62-main.dtsi- compatible = "ti,am625-dss";
arch/arm64/boot/dts/ti/k3-am62a-main.dtsi- compatible = "ti,am62a7-dss";

$ git grep -Ww ti,am625-dss -- drivers/ | grep of_device_id
drivers/gpu/drm/tidss/tidss_drv.c=static const struct of_device_id
tidss_of_table[] = {

$ git grep -Ww tidss_of_table | grep _driver
drivers/gpu/drm/tidss/tidss_drv.c=static struct platform_driver
tidss_platform_driver = {

$ git grep -Ww tidss_platform_driver | grep module
drivers/gpu/drm/tidss/tidss_drv.c:drm_module_platform_driver(tidss_platform_driver);

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

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