Re: [PATCH v0 3/5] perf: Introduce instruction trace filtering

From: Mark Rutland
Date: Fri Dec 11 2015 - 09:23:53 EST


On Fri, Dec 11, 2015 at 03:02:01PM +0100, Peter Zijlstra wrote:
> On Fri, Dec 11, 2015 at 03:36:36PM +0200, Alexander Shishkin wrote:
>
> > The pmu driver interface basically adds an extra callback to the
> > pmu driver structure, which validates the filter configuration proposed
> > by the user against what the hardware is actually capable of doing
> > and translates it into something that pmu::start can program into
> > hardware.
>
> > @@ -388,12 +393,38 @@ struct pmu {
> > void (*free_aux) (void *aux); /* optional */
> >
> > /*
> > + * Validate instruction tracing filters: make sure hw supports the
> > + * requested configuration and number of filters.
> > + *
> > + * Configure instruction tracing filters: translate hw-agnostic filter
> > + * into hardware configuration in event::hw::itrace_filters
> > + */
> > + int (*itrace_filter_setup) (struct perf_event *event); /* optional */
> > +
> > + /*
> > * Filter events for PMU-specific reasons.
> > */
> > int (*filter_match) (struct perf_event *event); /* optional */
> > };
>
> Any reason you cannot use pmu::filter_match ?

Maybe I've misunderstood your point, but the two seem quite different.

We introduced pmu::filter_match to apply a SW filter each time we
installed events from a context. We use that on ARM to avoid programming
big events into little cores and vice-versa.

As far as I can see, itrace_filter_setup is closer in operation to
event_init. It can fail at configuration time (long before scheduling
events to cores), and leaves the actual filtering to the HW.

Thanks,
Mark.
--
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/