Re: [PATCH] perf symbols: Don't try to find a vmlinux file when looking for kernel modules

From: Jiri Olsa
Date: Mon Mar 02 2020 - 15:03:06 EST


On Mon, Mar 02, 2020 at 04:10:07PM -0300, Arnaldo Carvalho de Melo wrote:
> The dso->kernel value is now set to everything that is in
> machine->kmaps, but that was being used to decide if vmlinux lookup is
> needed, which ended up making that lookup be made for kernel modules,
> that now have dso->kernel set, leading to these kinds of warnings when
> running on a machine with compressed kernel modules, like fedora:31:
>
> [root@five ~]# perf record -F 10000 -a sleep 2
> [ perf record: Woken up 1 times to write data ]
> lzma: fopen failed on vmlinux: 'No such file or directory'
> lzma: fopen failed on /boot/vmlinux: 'No such file or directory'
> lzma: fopen failed on /boot/vmlinux-5.5.5-200.fc31.x86_64: 'No such file or directory'
> lzma: fopen failed on /usr/lib/debug/boot/vmlinux-5.5.5-200.fc31.x86_64: 'No such file or directory'
> lzma: fopen failed on /lib/modules/5.5.5-200.fc31.x86_64/build/vmlinux: 'No such file or directory'
> lzma: fopen failed on vmlinux: 'No such file or directory'
> lzma: fopen failed on /boot/vmlinux: 'No such file or directory'
> lzma: fopen failed on /boot/vmlinux-5.5.5-200.fc31.x86_64: 'No such file or directory'
> lzma: fopen failed on /usr/lib/debug/boot/vmlinux-5.5.5-200.fc31.x86_64: 'No such file or directory'
> lzma: fopen failed on /lib/modules/5.5.5-200.fc31.x86_64/build/vmlinux: 'No such file or directory'
> lzma: fopen failed on vmlinux: 'No such file or directory'
> lzma: fopen failed on /boot/vmlinux: 'No such file or directory'
> lzma: fopen failed on /boot/vmlinux-5.5.5-200.fc31.x86_64: 'No such file or directory'
> lzma: fopen failed on /usr/lib/debug/boot/vmlinux-5.5.5-200.fc31.x86_64: 'No such file or directory'
> lzma: fopen failed on /lib/modules/5.5.5-200.fc31.x86_64/build/vmlinux: 'No such file or directory'
> lzma: fopen failed on vmlinux: 'No such file or directory'
> lzma: fopen failed on /boot/vmlinux: 'No such file or directory'
> lzma: fopen failed on /boot/vmlinux-5.5.5-200.fc31.x86_64: 'No such file or directory'
> lzma: fopen failed on /usr/lib/debug/boot/vmlinux-5.5.5-200.fc31.x86_64: 'No such file or directory'
> lzma: fopen failed on /lib/modules/5.5.5-200.fc31.x86_64/build/vmlinux: 'No such file or directory'
> lzma: fopen failed on vmlinux: 'No such file or directory'
> lzma: fopen failed on /boot/vmlinux: 'No such file or directory'
> lzma: fopen failed on /boot/vmlinux-5.5.5-200.fc31.x86_64: 'No such file or directory'
> lzma: fopen failed on /usr/lib/debug/boot/vmlinux-5.5.5-200.fc31.x86_64: 'No such file or directory'
> lzma: fopen failed on /lib/modules/5.5.5-200.fc31.x86_64/build/vmlinux: 'No such file or directory'
> [ perf record: Captured and wrote 1.024 MB perf.data (1366 samples) ]
> [root@five ~]#
>
> This happens when collecting the buildid, when we find samples for
> kernel modules, fix it by checking if the looked up DSO is a kernel
> module by other means.
>
> Fixes: 02213cec64bb ("perf maps: Mark module DSOs with kernel type")

ok, I couldn't see that because kcore took over the modules,
for some reason you don't have it enabled on your system?

because I had to disable it manualy in the code.. I think
we should add some --no-kcore option for record

the fix is working for me:

Tested/Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka