[PATCH v6 0/2] sched: EAS changes for EM complexity and sysctl

From: Shrikanth Hegde
Date: Mon Oct 09 2023 - 02:01:43 EST


In Brief:
[PATCH v6 1/2] sched/topology: Remove EM_MAX_COMPLEXITY limit
Since the EAS complexity was greatly reduced, bigger platforms can
handle EAS. To reflect this improvement, remove the EAS complexity check.

[PATCH v6 2/2] sched/topology: change behaviour of sysctl sched_energy_aware
based on the platform
Depending on the platform sysctl will either enable/disable EAS and NOP
in case if EAS is not supported.

Patchset contains these two patches. Second patch depends on the first
patch to be applied first.

v5->v6:
Valentin pointed out that sd_asym_cpucapacity is under rcu and to avoid
writing to sysctl if EAS is not possible. Did these two.
v4->v5:
sched_is_eas_possible missed handling of case when EM complexity was high.
Dietmar suggested that there was work done already which removes these
checks. Since it makes sched_is_eas_possible cleaner, picked up that
patch along with v4 and made it as a patchset.
Instead of using first CPU in cpu_active_mask, doing a simple loop across
all CPU in cpu_active_mask to check if there is any asymmetric CPU
capacities since it was breaking EAS capabilities over CPUSET islands.
v3->v4:
valentin suggested it would be better to consider simpler approach that
was mentioned in v2. It is a standard approach to keep the knob visible
but change how read and write are handled. Did that and Refactored the
code to use a common function in build_perf_domains and in sysctl handler.
v2->v3:
Chen Yu and Pierre Gondois both pointed out that if platform becomes
capable of EAS later, this patch was not allowing that to happen.
Addressed that by using a variable to indicate the sysctl change
and re-worded the commit message with desired behaviour,
v1->v2:
Chen Yu had pointed out that this will not destroy the perf domains on
architectures where EAS is supported by changing the sysctl.
[v1] Link: https://lore.kernel.org/lkml/20230829065040.920629-1-sshegde@xxxxxxxxxxxxxxxxxx/
[v2] Link: https://lore.kernel.org/lkml/20230901065249.137242-1-sshegde@xxxxxxxxxxxxxxxxxx/
[v3] Link: https://lore.kernel.org/lkml/20230913114807.665094-1-sshegde@xxxxxxxxxxxxxxxxxx/
[v4] Link: https://lore.kernel.org/lkml/20230926100046.405188-1-sshegde@xxxxxxxxxxxxxxxxxx/
[v5] Link: https://lore.kernel.org/lkml/20230929155209.667764-1-sshegde@xxxxxxxxxxxxxxxxxx/

Pierre Gondois (1):
sched/topology: Remove EM_MAX_COMPLEXITY limit

Shrikanth Hegde (1):
sched/topology: change behaviour of sysctl sched_energy_aware based on
the platform

Documentation/admin-guide/sysctl/kernel.rst | 3 +-
Documentation/scheduler/sched-energy.rst | 29 +---
kernel/sched/topology.c | 151 ++++++++++----------
3 files changed, 82 insertions(+), 101 deletions(-)

--
2.31.1