Re: perf report for .ko files

From: Arnaldo Carvalho de Melo
Date: Fri Jan 29 2010 - 14:22:21 EST


Em Fri, Jan 29, 2010 at 10:55:13AM -0800, john smith escreveu:
> Problem1:
>
> > Well, you could reduce the number of samples collected by
> > asking perf record to
> > include only kernel samples by fiddling with these
> > perf_event_attr fields:
> >
> > exclude_user : 1, /* don't count user */
> > exclude_kernel : 1, /* ditto kernel */
> > exclude_hv : 1, /* ditto hypervisor */
> > exclude_idle : 1, /* don't count when idle */
> >
> > I.e. setting exclude_user, exclude_hv and exclude_idle to
> > 1, but this requires
> > a patch for tools/perf/builtin-record.c as this is not
> > exposed yet.

> I did setup attr->exclude_hv, exclude_idle, exclude_user = 1 in
> create_counter() just before "try_again:" label, no difference in
> results, on a 2.6.31 (too old? "perf buildid-list" is not available)
> kernel version:

> # perf record -f -e cycles fio fio_script

> (for more than a minute, I increased the sample frequency with
> different -c values, some locked the machine - expectedly)
> and
> # perf report --verbose --dso=/my_module_path/my_module.ko
> (--verbose doesn't provide any more info)

This isn't going to work, you need to do:

perf report --verbose --dso='[my_module]'

I.e. as it appear on /proc/modules + brackets. Arguably we need to get
it to work also with both 'my_module.ko' and the full path.

> return the same "# Samples: 0":
>
> "
> # dso: /my_module_path/my_module.ko
> # Samples: 0
> #...
> "
>
> > [root@doppio linux-2.6-tip]# perf report --dsos '[e1000e]'
> > # dso: [e1000e]
> > # Samples: 110518812
>
> 'e1000e' module may be be sampled more often than the scsi modules but ...
>
> > > not sure why that is, /proc/kallsyms does seem to
> > > include some iwlagn symbols.

> /proc/kallsyms includes all syms I need, so is a problem not finding
> the symbols, does this (Samples: 0) make sens?

> "perf report --sort comm,dso,symbol" report has my module symbols.

See above on how to specify the module name, its just that it is finding
no samples for the module name as specified, it seems.

> Problem2:

> If I try "perf annotate -l -k /my_module_path/my_module.ko my_symbol"
> has all the percentages "0.00" where I would expect a % breakdown
> (considering the total function counter 100%), even if the function
> represents a small overall counter % compared to the others, any
> ideas?

I actually never tried doing annotation with a module, will try.

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