Re: [PATCH 4/5] perf, x86: Add INST_RETIRED.ALL workarounds
From: Stephane Eranian
Date: Thu Aug 14 2014 - 13:48:03 EST
[+perf tool maintainers]
On Thu, Aug 14, 2014 at 4:30 PM, Andi Kleen <ak@xxxxxxxxxxxxxxx> wrote:
>
> I understand all your points, but there's no alternative.
> The only other way would be to disable INST_RETIRED.ALL.
>
You cannot do that either. INST_RETIRED:ALL is important.
I assume the bug applies whether or not the event is used
with a filter.
I think we need to ensure that by looking at the perf.data file,
one can reconstruct the total number of inst_Retired:all
occurrences for the run. With a fixed period, one would do
num_samples * fixed_period. I know the Gooda tool does
that. It is used to estimate the number of events captured
vs. the number of events occurring.
So what I am saying is that on BDW, we need to have
perf force PERF_SAMPLE_PERIOD even with a fixed
period is passed. The kernel cannot simply add
PERF_SAMPLE_PERIOD to the event sample_format
because the tool would get confused by the sample
record size otherwise.
I understand this is not pretty. We'd need to have
a on the evsel just before making the syscall. That
callback would be for x86 and it would check the
CPUID to force PERF_SAMPLE_PERIOD. That's
my thinking but there may be a better way of doing
this.
--
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/