Re: [patch] Re: [perf] Finding uninstalled modules Was Re: mailinglist for trace users

From: Mike Galbraith
Date: Wed Sep 23 2009 - 09:50:12 EST


On Wed, 2009-09-23 at 16:10 +0300, Avi Kivity wrote:
> On 09/23/2009 03:58 PM, Avi Kivity wrote:On 09/23/2009 03:58 PM, Avi
> Kivity wrote:
> > Not for me. 'perf report', for example, shows
> >
> > 63.08% qemu-system-x86
> > [kernel] [k] packet_exit
> > 4.71% qemu-system-x86
> > [kernel] [k] hpet_next_event
> > 4.38% init
> > [kernel] [k]
> > mwait_idle_with_hints
> >
> > While 'perf top' still shows vmx_vcpu_run.
> >
>
> strace says:
>
> getcwd("/home/avi/kvm/linux-2.6"..., 4096) = 24
> ...
> [no chdir]
> ...
> open("kernel/arch/x86/kvm/kvm-intel.ko", O_RDONLY) = -1 ENOENT (No
> such file or directory)

*blink*

> That "kernel/" looks like it was meant for /lib/modules, not a kernel
> tree. If I run 'perf report' from /lib/modules/2.6.31 I see vmx_vcpu_run.

So I need what's in your modules.dep to figure out where the rest of the
path went.

/lib/modules/2.6.32-tip-smp/kernel/arch/x86/kvm/kvm-intel.ko

static int mod_dso__load_module_paths(struct mod_dso *self)
{
struct utsname uts;
int count = 0, len;
char *line = NULL;
FILE *file;
char *path;
size_t n;

if (uname(&uts) < 0)
goto out_failure;

len = strlen("/lib/modules/");
len += strlen(uts.release);
len += strlen("/modules.dep");

path = calloc(1, len);
if (path == NULL)
goto out_failure;

strcat(path, "/lib/modules/");
strcat(path, uts.release);
strcat(path, "/modules.dep");

file = fopen(path, "r");


--
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/