• Rafael J. Wysocki's avatar
    intel_pstate: Do not clear utilization update hooks on policy changes · 5ab666e0
    Rafael J. Wysocki authored
    intel_pstate_set_policy() is invoked by the cpufreq core during
    driver initialization, on changes of policy attributes (minimim and
    maximum frequency, for example) via sysfs and via CPU notifications
    from the platform firmware.  On some platforms the latter may occur
    relatively often.
    
    Commit bb6ab52f (intel_pstate: Do not set utilization update hook
    too early) made intel_pstate_set_policy() clear the CPU's utilization
    update hook before updating the policy attributes for it (and set the
    hook again after doind that), but that involves invoking
    synchronize_sched() and adds overhead to the CPU notifications
    mentioned above and to the sched-RCU handling in general.
    
    That extra overhead is arguably not necessary, because updating
    policy attributes when the CPU's utilization update hook is active
    should not lead to any adverse effects, so drop the clearing of
    the hook from intel_pstate_set_policy() and make it check if
    the hook has been set already when attempting to set it.
    
    Fixes: bb6ab52f (intel_pstate: Do not set utilization update hook too early)
    Reported-by: default avatarJisheng Zhang <jszhang@marvell.com>
    Tested-by: default avatarJisheng Zhang <jszhang@marvell.com>
    Tested-by: default avatarDoug Smythies <dsmythies@telus.net>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    5ab666e0
intel_pstate.c 46 KB