Re: [PATCH 00/14] export perf overheads information

From: Ingo Molnar
Date: Wed Nov 23 2016 - 23:27:11 EST



* kan.liang@xxxxxxxxx <kan.liang@xxxxxxxxx> wrote:

> From: Kan Liang <kan.liang@xxxxxxxxx>
>
> Profiling brings additional overhead. High overhead may impacts the
> behavior of the profiling object, impacts the accuracy of the
> profiling result, and even hang the system.
> Currently, perf has dynamic interrupt throttle mechanism to lower the
> sample rate and overhead. But it has limitations.
> - The mechanism only focus in the overhead from NMI. However, there
> are other parts which bring big overhead. E.g, multiplexing.
> - The hint from the mechanism doesn't work on fixed period.
> - The system changes which caused by the mechanism are not recorded
> in the perf.data. Users have no idea about the overhead and its
> impact.
> Acctually, any passive ways like dynamic interrupt throttle mechanism
> are only palliative. The best way is to export overheads information,
> provide more hints, and help the users design more proper perf command.
>
> According to our test, there are four parts which can bring big overhead.
> They include NMI handler, multiplexing handler, iterate side-band events,
> and write data in file. Two new perf record type PERF_RECORD_OVERHEAD and
> PERF_RECORD_USER_OVERHEAD are introduced to record the overhead
> information in kernel and user space respectively.
> The overhead information is the system per-CPU overhead, not per-event
> overhead. The implementation takes advantage of the existing event log
> mechanism.
> To reduce the additional overhead from logging overhead information, the
> overhead information only be output when the event is going to be
> disabled or task is scheduling out.
>
> In perf report, the overhead will be checked automatically. If the
> overhead rate is larger than 10%. A warning will be displayed.
> A new option is also introduced to display detial per-CPU overhead
> information.
>
> Current implementation only include four overhead sources. There could be
> more in other parts. The new overhead source can be easily added as a
> new type.

Please include sample output of the new instrumentation!

Not even the tooling patches show any of the output, nor is it clear anywhere what
kind of 'overhead' measurement it is, what the units are, what the metrics are,
how users can _use_ this information, etc.

This is totally inadequate description.

Thanks,

Ingo