On Thu, Aug 02, 2012 at 11:38:26AM +0400, Andrew Vagin wrote: > On Wed, Aug 01, 2012 at 02:10:59PM +0400, Jiri Olsa wrote: > > From: Frederic Weisbecker <fweisbec@xxxxxxxxx> > > > > Introducing following bits to the the perf_event_attr struct: > > - exclude_callchain_kernel to filter out kernel callchain > > from the sample dump > > - exclude_callchain_user to filter out user callchain > > from the sample dump > > > > We need to be able to disable standard user callchain dump > > when we use the dwarf cfi callchain mode, because frame > > pointer based user callchains are useless in this mode. > > > > Implementing also exclude_callchain_kernel to have complete > > set of options. > > > > Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx> > > [ Added kernel callchains filtering ] > > Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx> > > CC: Andrew Vagin <avagin@xxxxxxxxxx> > > Acked-by: Andrew Vagin <avagin@xxxxxxxxxx> > > > > diff --git a/kernel/events/core.c b/kernel/events/core.c > > index c4582bb..0902d4a 100644 > > --- a/kernel/events/core.c > > +++ b/kernel/events/core.c > > @@ -4130,8 +4130,12 @@ void perf_prepare_sample(struct perf_event_header *header, > > > > if (sample_type & PERF_SAMPLE_CALLCHAIN) { > > int size = 1; > > + int kernel = !event->attr.exclude_callchain_kernel; > > + int user = !event->attr.exclude_callchain_user; > > > > - data->callchain = perf_callchain(event, regs); > > + if (kernel || user) > > + data->callchain = perf_callchain(event, regs, > > + kernel, user); > I am not sure, that we need two arguments kernel and user here, > we can get them from event inside perf_callchain... right.. I'll send an update with other fixies thanks jirka -- 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/