Re: [PATCH] perf record: enable multiplexing scaling via -R

From: Jiri Olsa
Date: Fri Sep 01 2017 - 04:31:59 EST


On Fri, Sep 01, 2017 at 01:21:03AM -0700, Stephane Eranian wrote:

SNIP

> >> I am also surprised to see that perf record keep inherit=1 in
> >> system-wide mode. I don't think this
> >> is relavant in this mode. But the kernel this fails in this case,
> >> which I think is a bug. In system-wide
> >> mode, the attr-.no_inherit should be ignored. We can fix perf record
> >> to avoid this in system-wide.
> >>
> >> The cmdline above works for both per-thread and system-wide modes.
> >>
> >> So I think we do not need my patch or variations thereof, everything
> >> is there, though a bit difficult
> >> to combine.
> >
> > hum, how about we introduce new modifier to attach timing info, like:
> > $ perf record -e cycles:T ....
> >
> > modifiers might be scares resource, but we don't add them every day,
> > and this requirement looks generic
> >
> It is not just a matter of modifier, you need to have the kernel
> record just what you want.
> AFAIK, the only way for the the kernel to record timings on sampling events
> is to force PERF_SAMPLE_READ. So the T modifier would have to also set
> that format,
> at which point, I wonder how useful it is compared to S.

well :S is meant to be used for leader sampling,
so in addition to what you described it also
disables sampling on all other group members,
which I don't think you want

>
> Alternatively, we could improve the kernel to support recording timing with
> PERF_SAMPLE_TIMINGS as a pair of u64 to represent time_enabled, time_running.
> That would avoid the whole PERF_SAMPLE_READ and the extra u64 it records.
> Recording the value of the sampling event is not very useful because
> it keeps being
> reset for each period.

sounds good.. or if we mind taking another bit out of the sample_type
for this we could have new read_format bit PERF_FORMAT_NO_COUNT, which
would omit the count values

jirka