• Srivatsa S. Bhat's avatar
    cpufreq: Fix cpufreq regression after suspend/resume · f51e1eb6
    Srivatsa S. Bhat authored
    Toralf Förster reported that the cpufreq ondemand governor behaves erratically
    (doesn't scale well) after a suspend/resume cycle. The problem was that the
    cpufreq subsystem's idea of the cpu frequencies differed from the actual
    frequencies set in the hardware after a suspend/resume cycle. Toralf bisected
    the problem to commit a66b2e50 (cpufreq: Preserve sysfs files across
    suspend/resume).
    
    Among other (harmless) things, that commit skipped the call to
    cpufreq_update_policy() in the resume path. But cpufreq_update_policy() plays
    an important role during resume, because it is responsible for checking if
    the BIOS changed the cpu frequencies behind our back and resynchronize the
    cpufreq subsystem's knowledge of the cpu frequencies, and update them
    accordingly.
    
    So, restore the call to cpufreq_update_policy() in the resume path to fix
    the cpufreq regression.
    Reported-and-tested-by: default avatarToralf Förster <toralf.foerster@gmx.de>
    Signed-off-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    Cc: 3.10+ <stable@vger.kernel.org>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    f51e1eb6
cpufreq_stats.c 10.6 KB