Re: [PATCH V2 05/13] perf/core: output side-band events overhead

From: Peter Zijlstra
Date: Tue Dec 06 2016 - 06:25:45 EST


On Fri, Dec 02, 2016 at 04:19:13PM -0500, kan.liang@xxxxxxxxx wrote:
> From: Kan Liang <kan.liang@xxxxxxxxx>
>
> Iterating all events which need to receive side-band events also bring
> some overhead.
>
> The side-band events overhead PERF_CORE_SB_OVERHEAD is a common overhead
> type.
>
> Signed-off-by: Kan Liang <kan.liang@xxxxxxxxx>

> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index 025a19d..85706fb 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -1830,8 +1830,12 @@ event_sched_out(struct perf_event *event,
> if (event->attr.exclusive || !cpuctx->active_oncpu)
> cpuctx->exclusive = 0;
>
> - if (log_overhead && cpuctx->mux_overhead.nr)
> - perf_log_overhead(event, PERF_CORE_MUX_OVERHEAD, &cpuctx->mux_overhead);
> + if (log_overhead) {
> + if (cpuctx->mux_overhead.nr)
> + perf_log_overhead(event, PERF_CORE_MUX_OVERHEAD, &cpuctx->mux_overhead);
> + if (ctx->sb_overhead.nr)
> + perf_log_overhead(event, PERF_CORE_SB_OVERHEAD, &ctx->sb_overhead);
> + }

Urgh, that's getting uglier by the minute, and again, its not mentioned.

>
> perf_pmu_enable(event->pmu);
> }