Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1543514
| From | "Liang, Kan" <kan.liang@intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | RE: [PATCH V3 0/6] export perf overheads information (kernel) |
| Date | 2016-12-16 16:20 +0100 |
| Message-ID | <sP2sG-5nI-31@gated-at.bofh.it> (permalink) |
| References | <sMeqm-2QB-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Ping. Any comments for the series? Thanks, Kan > Subject: [PATCH V3 0/6] export perf overheads information (kernel) > > From: Kan Liang <kan.liang@intel.com> > > This series only include the kernel related patches. > > 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 sampling overhead. However, there > are other parts which also 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. > Actually, any passive ways like dynamic interrupt throttle mechanism are > only palliative. The best way is to export overhead information, provide > more hints, and help the users design more proper perf command. > > For kernel, three parts can bring obvious overhead. > - sample overhead: For x86, it's the time cost in perf NMI handler. > - multiplexing overhead: The time cost spends on rotate context. > - side-band events overhead: The time cost spends on iterating all > events that need to receive side-band events. > The time cost of those parts are stored in pmu's per-cpu cpuctx. > The tool can call PERF_EVENT_IOC_STAT when it's 'done'. Then the kernel > generates the overhead record PERF_RECORD_OVERHEAD. > > User can use the overhead information to refine their perf command and > get accurate profiling result. For example, if there is high overhead warning, > user may reduce the number of events/increase the period/decrease the > frequency. > Developer can also use the overhead information to find bugs. > > Changes since V2: > - Separate kernel patches from the previous version > - Add PERF_EVENT_IOC_STAT to control overhead statistics > - Collect per pmu overhead information > - Store the overhead information in pmu's cpuctx > - Add CPU information in overhead record > > Changes since V1: > - fix u32 holes and remove duplicate CPU information > - configurable overhead logging > - Introduce the concept of PMU specific overhead and common core > overhead. Rename NMI overhead to PMU sample overhead > - Add log_overhead in perf_event_context to indicate the logging of > overhead > - Refine the output of overhead information > - Use perf CPU time to replace perf write data overhead > - Refine the formula of overhead evaluation > - Refine perf script > > Kan Liang (6): > perf/core: Introduce PERF_RECORD_OVERHEAD > perf/core: Add PERF_EVENT_IOC_STAT to control overhead statistics > perf/x86: implement overhead stat for x86 pmu > perf/core: calculate multiplexing overhead > perf/core: calculate side-band events overhead > perf/x86: calculate sampling overhead > > arch/x86/events/core.c | 45 +++++++++++++++++++++++- > include/linux/perf_event.h | 12 +++++++ > include/uapi/linux/perf_event.h | 44 ++++++++++++++++++++++- > kernel/events/core.c | 77 > ++++++++++++++++++++++++++++++++++++++++- > 4 files changed, 175 insertions(+), 3 deletions(-) > > -- > 2.4.3
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
RE: [PATCH V3 0/6] export perf overheads information (kernel) "Liang, Kan" <kan.liang@intel.com> - 2016-12-16 16:20 +0100
csiph-web