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

Message ID 20231009060037.170765-1-sshegde@linux.vnet.ibm.com
Headers
Series sched: EAS changes for EM complexity and sysctl |

Message

Shrikanth Hegde Oct. 9, 2023, 6 a.m. UTC
  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@linux.vnet.ibm.com/
[v2] Link: https://lore.kernel.org/lkml/20230901065249.137242-1-sshegde@linux.vnet.ibm.com/
[v3] Link: https://lore.kernel.org/lkml/20230913114807.665094-1-sshegde@linux.vnet.ibm.com/
[v4] Link: https://lore.kernel.org/lkml/20230926100046.405188-1-sshegde@linux.vnet.ibm.com/
[v5] Link: https://lore.kernel.org/lkml/20230929155209.667764-1-sshegde@linux.vnet.ibm.com/

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