• R
    cpufreq: intel_pstate: Generic governors support · 001c76f0
    Rafael J. Wysocki 提交于
    There may be reasons to use generic cpufreq governors (eg. schedutil)
    on Intel platforms instead of the intel_pstate driver's internal
    governor.  However, that currently can only be done by disabling
    intel_pstate altogether and using the acpi-cpufreq driver instead
    of it, which is subject to limitations.
    
    First of all, acpi-cpufreq only works on systems where the _PSS
    object is present in the ACPI tables for all logical CPUs.  Second,
    on those systems acpi-cpufreq will only use frequencies listed by
    _PSS which may be suboptimal.  In particular, by convention, the
    whole turbo range is represented in _PSS as a single P-state and
    the frequency assigned to it is greater by 1 MHz than the greatest
    non-turbo frequency listed by _PSS.  That may confuse governors to
    use turbo frequencies less frequently which may lead to suboptimal
    performance.
    
    For this reason, make it possible to use the intel_pstate driver
    with generic cpufreq governors as a "normal" cpufreq driver.  That
    mode is enforced by adding intel_pstate=passive to the kernel
    command line and cannot be disabled at run time.  In that mode,
    intel_pstate provides a cpufreq driver interface including
    the ->target() and ->fast_switch() callbacks and is listed in
    scaling_driver as "intel_cpufreq".
    Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: NDoug Smythies <dsmythies@telus.net>
    001c76f0
intel_pstate.c 55.2 KB