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

A standard location to find 'vmlinux' to use for oprofile



Hi,
Cc'ing oprofile-list to see if anyone is interested in this topic.


> > I've been pondering on using kernel-package to generate debug
> > 'vmlinux' images which are used in tools like kernel crash dump
> > analysis tools and oprofile[1].
> 
> > Currently I'm running 'make vmlinux' after generating a package, but
> > it would be convenient if 'vmlinux' is included somewhere like
> > /usr/lib/debug/lib/modules/`uname -r`/vmlinux (which seems to be the
> > case with RedHat[2]).
> 
>         Support for this is already there -- if the config var
>  install_vmlinux is set, and your architectures make snippet defines
>  where to find the vmlinux, and where to install it, you are done.
> 
>         So, just provide data about kelfimagesrc and kelfimagedest for
>  files in /usr/share/kernel-package/rulesets/arches/, and then anyone
>  can set install_vmlinux to get the end result.

The remaining problem is that we don't really have a standard location
for 'vmlinux'.

For most cases, you can find the required file in
	 /lib/modules/$(uname -r)/build/vmlinux

but that's only available when you've built the kernel on that machine
and have the build tree lying around.

This is what oprofile currently does:
oprofile-0.9.1/gui/oprof_start_config.cpp:      /* Guess path to vmlinux based on kernel currently running. */
oprofile-0.9.1/gui/oprof_start_config.cpp:              string const vmlinux_path("/lib/modules/" + version
oprofile-0.9.1/gui/oprof_start_config.cpp:                                       + "/build/vmlinux");
oprofile-0.9.1/gui/oprof_start_config.cpp:              kernel_filename = vmlinux_path;


It would be nice if it's possible to obtain the location information
somewhere, in a distribution-agnostic manner.


regards,
	junichi
-- 
dancer@{debian.org,netfort.gr.jp}   Debian Project



Reply to: