Why is PERF_FORMAT_GROUP incompatible with inherited events?

From: Paul Mackerras
Date: Thu Feb 11 2010 - 22:02:23 EST


We currently have this code in perf_event_alloc() in kernel/perf_event.c:

/*
* we currently do not support PERF_FORMAT_GROUP on inherited events
*/
if (attr->inherit && (attr->read_format & PERF_FORMAT_GROUP))
goto done;

plus there is a comment "XXX PERF_FORMAT_GROUP vs inherited events
seems difficult" next to perf_output_read_group() (but there isn't a
similar comment on perf_read_hw()).

First, what is the difficulty referred to here?

Secondly, if the difficulty is just to do with the intersection of
sampling counters, inheritance, and group readout (as seems to be the
case), could we please allow group readout on ordinary counting
(non-sampling) counters? That is, change the test above to something
like:

if (attr->inherit && attr->sample_period &&
(attr->read_format & PERF_FORMAT_GROUP))
goto done;

Any objections to that change? If it's OK, could we get it into .33
and .32-stable?

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