On Fri, 2012-05-11 at 19:39 +0530, Ritesh Raj Sarraf wrote: > Package: linux-tools > Version: 3.2+44 > Severity: normal > > > The default lookup path of perf does not align with the debian install > paths. > > A simple command execution fails: > > rrs@champaran:~$ sudo perf probe -L vfs_read > Failed to find path of kernel module. > Failed to open debuginfo file. > Error: Failed to show lines. (-2) > > > The lookup path for debuginfo is: > stat("/lib/modules/3.3.0-trunk-amd64/kernel/.", {st_mode=S_IFDIR|0755, > st_size=4096, ...}) = 0 > getdents(3, /* 0 entries */, 32768) = 0 > close(3) = 0 > open("/root/.debug/.build-id/3d/849bc6ecd394dc55a22756b1da531a7b856d03", > O_RDONLY) = -1 ENOENT (No such file or directory) > open("vmlinux", O_RDONLY) = -1 ENOENT (No such file or > directory) > open("/boot/vmlinux", O_RDONLY) = -1 ENOENT (No such file or > directory) > open("/boot/vmlinux-3.3.0-trunk-amd64", O_RDONLY) = -1 ENOENT (No such > file or directory) > open("/lib/modules/3.3.0-trunk-amd64/build/vmlinux", O_RDONLY) = -1 > ENOENT (No such file or directory) > open("/usr/lib/debug/lib/modules/3.3.0-trunk-amd64/vmlinux", O_RDONLY) = > -1 ENOENT (No such file or directory) > write(2, "Failed to find path of kernel mo"..., 38Failed to find path of > kernel module. > ) = 38 > write(2, "Failed to open debuginfo file.\n", 31Failed to open debuginfo > file. > > > > The vmlinux file resides under as /usr/lib/debug/boot/vmlinux-`uname -r` > Adding a symlink works. So the path lookup needs to be fixed here. In bug #582810 you reported that SystemTap couldn't find it, and the conflusion was that it belonged in /usr/lib/debug/boot/. So I wonder why perf and SystemTap disagree on this. I think we should look at what other distributions are doing and try to be consistent (so long as we also comply with Debian policy). > Similary for the source lookup: > > access("/build/buildd-linux-2.6_3.3.4-1~experimental.1-amd64-_y3OdD/linux-2.6-3.3.4/debian/build/source_amd64_none/fs/read_write.c", > R_OK) = -1 ENOENT (No such file or directory) > write(2, "Failed to find source file. (-2)"..., 33Failed to find source > file. (-2) > ) = 33 > write(2, " Error: Failed to show lines. ("..., 36 Error: Failed to > show lines. (-2) > > > It should try for: /usr/src/linux-source-`uname -r` [...] It's looking at the absolute path to the source during build, because that's what's in the debug info. I agree that it ought to read from some other path where the user could reasonably unpack the source. But I think this is a problem with *all* debuginfo packages at present and should have a general solution, not just a fix for perf and the kernel. Ben. -- Ben Hutchings Life is what happens to you while you're busy making other plans. - John Lennon
Attachment:
signature.asc
Description: This is a digitally signed message part