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

From: Junichi Uekawa
Date: Sat Jan 14 2006 - 10:38:33 EST


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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/