Re: [PATCH][RFC] cpufreq: intel_pstate: Avoid time-costly synchronization if schedutil is not enabled

From: Rafael J. Wysocki
Date: Tue May 10 2016 - 15:07:30 EST


On Tue, May 10, 2016 at 11:24 AM, <yu.c.chen@xxxxxxxxx> wrote:
> From: Chen Yu <yu.c.chen@xxxxxxxxx>

First, the subject. It doesn't have anything to do with schedutil, so
I'd just use something like "Avoid unnecessary synchronize_sched()
during initialization".

> Commit bb6ab52f2bef ("intel_pstate: Do not set utilization update
> hook too early") moved the assignment of utilization update hook
> from intel_pstate_init_cpu to intel_pstate_set_policy(), however
> after moving, we need to leverage synchronize_sched() to deal
> with synchronization, which is time-costly because it needs to
> wait for all the CPUs to go through a grace period.
>
> Actuall we don't need to synchronize_sched if schedutil has
> not been enabled, which also can address the problem in our case,
> thus bypass the synchronize_sched during bootup.

"Actually, the synchronize_sched() is not necessary if the utilization
update hook has not been set for the given CPU yet, so make the driver
check if that's the case and avoid the synchronize_sched() call in
that case."

> Fixes: bb6ab52f2bef "intel_pstate: Do not set utilization update hook too early"

I'm not sure I'd call it a fix, unless there is a significant
difference in the system boot time or similar. If that's not the
case, this simply is an optimization on top of the above commit.