Re: [V2] perf/core: Avoid calling perf_mux_hrtimer_restart multiple times when scheduling event groups

From: Song Liu
Date: Fri Oct 15 2021 - 21:08:29 EST




> On Oct 15, 2021, at 12:04 AM, Athira Rajeev <atrajeev@xxxxxxxxxxxxxxxxxx> wrote:
>
> Perf uses multiplexing if there are more events to be scheduled than the
> available counters. With multiplexing, event groups will be rotated at
> specified interval of time which is set using "hrtimer". During event
> scheduling, if any of the event group fails to schedule, multiplexing
> gets enabled by setting "rotate_necessary" for that event context and
> starting the hrtimer by calling "perf_mux_hrtimer_restart".
>
> Patch adds an optimisation to avoid calling "perf_mux_hrtimer_restart"
> multiple times if already rotate_necessary is set for that context.
> Even though "perf_mux_hrtimer_restart" will just return if hrtimer is
> already active, this could avoid the overhead of calling this function
> multiple times if there are many event groups. Patch adds the check to
> avoid calling perf_mux_hrtimer_restart() for each event group on
> every schedule.
>
> Signed-off-by: Athira Rajeev <atrajeev@xxxxxxxxxxxxxxxxxx>

Acked-by: Song Liu <song@xxxxxxxxxx>