On 2020/01/07 10:12, Michael Jeanson wrote:
> On 2020-01-06 7:46 p.m., Benjamin Poirier wrote:
> > I'm not sure if it's related but I saw almost the same error on last
> > upgrade (but for 5.4.0-2):
> > 
> > depmod: ERROR: ../libkmod/libkmod.c:515 lookup_builtin_file() could not 
> > open builtin file 
> > '/var/tmp/mkinitramfs_J2sneW/lib/modules/5.4.0-2-amd64/modules.builtin.bin'
> > 
> > and I now get:
> > 
> > root@vsid:~# lttng list --kernel
> > Error: Unable to list kernel events: Kernel tracer not available
> > root@vsid:~# journalctl -u lttng-sessiond.service
> > [...]
> > Jan 07 09:33:20 vsid lttng-sessiond[403]: Error: Failed to load kmod 
> > library resources
> > Jan 07 09:33:20 vsid lttng-sessiond[403]: Warning: No kernel tracer 
> > available
> > 
> > lttng-modules-dkms is installed. I can load the modules manually but I
> > still get the same error.
> > 
> 
> Hi,
> 
> If you had just installed the lttng-modules-dkms and lttng-tools packages,
> it's possible that the lttng-sessiond deamon was started before the kernel
> modules were built and so it couldn't load them.

Looks like the modules are built before lttng-sessiond is started:
        Setting up lttng-modules-dkms (2.11.0-2) ...
        Loading new lttng-modules-2.11.0 DKMS files...
        Building for 5.4.0-2-amd64
        Building initial module for 5.4.0-2-amd64
        Done.

        lttng-lib-ring-buffer.ko:
        Running module version sanity check.
         - Original module
           - No original module exists within this kernel
         - Installation
           - Installing to /lib/modules/5.4.0-2-amd64/updates/dkms/

        [...]

        depmod...

        DKMS: install completed.
        Setting up linux-headers-5.4.0-2-amd64 (5.4.8-1) ...
        /etc/kernel/header_postinst.d/dkms:
        dkms: running auto installation service for kernel 5.4.0-2-amd64:.
        Setting up sudo (1.8.29-1) ...
        Setting up babeltrace (1.5.7-2) ...
        Setting up liburcu6:amd64 (0.11.1-2) ...
        Setting up linux-headers-amd64 (5.4.8-1) ...
        Setting up liblttng-ctl0:amd64 (2.11.0-3) ...
        Setting up lttng-tools (2.11.0-3) ...

Still, it doesn't work.

> Simply restarting the sessiond should fix this.

I tried restarting lttng-sessiond or rebooting the machine but it was no
help, lttng-sessiond always reports:
        Error: Failed to load kmod library resources
        Warning: No kernel tracer available

A quick look into the code shows that is:
src/bin/lttng-sessiond/modprobe.c
        kmod_set_log_fn(*ctx, log_kmod, NULL);
        ret = kmod_load_resources(*ctx);
        if (ret < 0) {
                ERR("Failed to load kmod library resources");
                goto error;
        }

I didn't dig into libkmod, but I noticed (using opensnoop.bt) the
following:
        8071   lttng-sessiond      2   0 
/lib/modules/5.4.0-2-amd64/modules.dep.bin
        8071   lttng-sessiond      2   0 
/lib/modules/5.4.0-2-amd64/modules.alias.bin
        8071   lttng-sessiond      2   0 
/lib/modules/5.4.0-2-amd64/modules.symbols.bin
        8071   lttng-sessiond      2   0 
/lib/modules/5.4.0-2-amd64/modules.builtin.alias.bin

On another machine which I haven't yet updated and where lttng still
works, I see:
        193519 lttng-sessiond      2   0 
/lib/modules/5.4.0-1-amd64/modules.dep.bin
        193519 lttng-sessiond      2   0 
/lib/modules/5.4.0-1-amd64/modules.alias.bin
        193519 lttng-sessiond      2   0 
/lib/modules/5.4.0-1-amd64/modules.symbols.bin
        193519 lttng-sessiond      2   0 
/lib/modules/5.4.0-1-amd64/modules.builtin.bin

Not sure if /lib/modules/5.4.0-2-amd64/modules.builtin.alias.bin is
relevant but it's an empty file...

After downgrading libkmod2 from
        Version: 26+20191223-1
to
        Version: 26-3
the issue with lttng is no longer apparent:
        root@vsid:/tmp# lttng list --kernel
        Kernel events:
        -------------
              asoc_snd_soc_bias_level_start (loglevel: TRACE_EMERG (0)) (type: 
tracepoint)
              asoc_snd_soc_bias_level_done (loglevel: TRACE_EMERG (0)) (type: 
tracepoint)
              asoc_snd_soc_dapm_start (loglevel: TRACE_EMERG (0)) (type: 
tracepoint)
        [...] 

Reply via email to