• Shrikanth Hegde's avatar
    sched/topology: Change behaviour of the 'sched_energy_aware' sysctl, based on the platform · 8f833c82
    Shrikanth Hegde authored
    The 'sched_energy_aware' sysctl is available for the admin to disable/enable
    energy aware scheduling(EAS). EAS is enabled only if few conditions are
    met by the platform. They are, asymmetric CPU capacity, no SMT,
    schedutil CPUfreq governor, frequency invariant load tracking etc.
    A platform may boot without EAS capability, but could gain such
    capability at runtime. For example, changing/registering the cpufreq
    governor to schedutil.
    
    At present, though platform doesn't support EAS, this sysctl returns 1
    and it ends up calling build_perf_domains on write to 1 and
    NOP when writing to 0. That is confusing and un-necessary.
    
    Desired behavior would be to have this sysctl to enable/disable the EAS
    on supported platform. On non-supported platform write to the sysctl
    would return not supported error and read of the sysctl would return
    empty. So sched_energy_aware returns empty - EAS is not possible at this moment
    This will include EAS capable platforms which have at least one EAS
    condition false during startup, e.g. not using the schedutil cpufreq governor
    sched_energy_aware returns 0 - EAS is supported but disabled by admin.
    sched_energy_aware returns 1 - EAS is supported and enabled.
    
    User can find out the reason why EAS is not possible by checking
    info messages. sched_is_eas_possible returns true if the platform
    can do EAS at this moment.
    Signed-off-by: default avatarShrikanth Hegde <sshegde@linux.vnet.ibm.com>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Tested-by: default avatarPierre Gondois <pierre.gondois@arm.com>
    Reviewed-by: default avatarValentin Schneider <vschneid@redhat.com>
    Link: https://lore.kernel.org/r/20231009060037.170765-3-sshegde@linux.vnet.ibm.com
    8f833c82
topology.c 69.6 KB