* [PATCH v2 0/2] sched, arm64: enable CONFIG_SCHED_SMT for arm64
@ 2020-02-27 19:14 ` Valentin Schneider
0 siblings, 0 replies; 10+ messages in thread
From: Valentin Schneider @ 2020-02-27 19:14 UTC (permalink / raw)
To: linux-kernel, linux-arm-kernel
Cc: Peter Zijlstra, Ingo Molnar, Vincent Guittot, Dietmar Eggemann,
morten.rasmussen, qperret, Catalin Marinas, Will Deacon,
Mark Rutland
Hi,
Strictly speaking those two patches are independent, but I figured it would
make sense to send them together (since one led to the other).
Patch 1 adds a sanity check against EAS + SMT.
Patch 2 enables CONFIG_SCHED_SMT in the arm64 defconfig.
Cheers,
Valentin
Revisions
=========
v1 -> v2
--------
o Collected Reviewed-by, Acked-by (Dietmar, Quentin)
o Added a warning when disabling EAS due to SMT (Dietmar)
Valentin Schneider (2):
sched/topology: Don't enable EAS on SMT systems
arm64: defconfig: enable CONFIG_SCHED_SMT
arch/arm64/configs/defconfig | 1 +
kernel/sched/topology.c | 12 ++++++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
--
2.24.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 0/2] sched, arm64: enable CONFIG_SCHED_SMT for arm64
@ 2020-02-27 19:14 ` Valentin Schneider
0 siblings, 0 replies; 10+ messages in thread
From: Valentin Schneider @ 2020-02-27 19:14 UTC (permalink / raw)
To: linux-kernel, linux-arm-kernel
Cc: Mark Rutland, qperret, Peter Zijlstra, Catalin Marinas,
morten.rasmussen, Will Deacon, Ingo Molnar, Dietmar Eggemann
Hi,
Strictly speaking those two patches are independent, but I figured it would
make sense to send them together (since one led to the other).
Patch 1 adds a sanity check against EAS + SMT.
Patch 2 enables CONFIG_SCHED_SMT in the arm64 defconfig.
Cheers,
Valentin
Revisions
=========
v1 -> v2
--------
o Collected Reviewed-by, Acked-by (Dietmar, Quentin)
o Added a warning when disabling EAS due to SMT (Dietmar)
Valentin Schneider (2):
sched/topology: Don't enable EAS on SMT systems
arm64: defconfig: enable CONFIG_SCHED_SMT
arch/arm64/configs/defconfig | 1 +
kernel/sched/topology.c | 12 ++++++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
--
2.24.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 1/2] sched/topology: Don't enable EAS on SMT systems
2020-02-27 19:14 ` Valentin Schneider
@ 2020-02-27 19:14 ` Valentin Schneider
-1 siblings, 0 replies; 10+ messages in thread
From: Valentin Schneider @ 2020-02-27 19:14 UTC (permalink / raw)
To: linux-kernel, linux-arm-kernel
Cc: Peter Zijlstra, Ingo Molnar, Vincent Guittot, Dietmar Eggemann,
morten.rasmussen, qperret, Catalin Marinas, Will Deacon,
Mark Rutland
EAS already requires asymmetric CPU capacities to be enabled, and mixing
this with SMT is an aberration, but better be safe than sorry.
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Acked-by: Quentin Perret <qperret@google.com>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
---
kernel/sched/topology.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index 00911884b7e7..8344757bba6e 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -317,8 +317,9 @@ static void sched_energy_set(bool has_eas)
* EAS can be used on a root domain if it meets all the following conditions:
* 1. an Energy Model (EM) is available;
* 2. the SD_ASYM_CPUCAPACITY flag is set in the sched_domain hierarchy.
- * 3. the EM complexity is low enough to keep scheduling overheads low;
- * 4. schedutil is driving the frequency of all CPUs of the rd;
+ * 3. no SMT is detected.
+ * 4. the EM complexity is low enough to keep scheduling overheads low;
+ * 5. schedutil is driving the frequency of all CPUs of the rd;
*
* The complexity of the Energy Model is defined as:
*
@@ -360,6 +361,13 @@ static bool build_perf_domains(const struct cpumask *cpu_map)
goto free;
}
+ /* EAS definitely does *not* handle SMT */
+ if (sched_smt_active()) {
+ pr_warn("rd %*pbl: Disabling EAS, SMT is not supported\n",
+ cpumask_pr_args(cpu_map));
+ goto free;
+ }
+
for_each_cpu(i, cpu_map) {
/* Skip already covered CPUs. */
if (find_pd(pd, i))
--
2.24.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 1/2] sched/topology: Don't enable EAS on SMT systems
@ 2020-02-27 19:14 ` Valentin Schneider
0 siblings, 0 replies; 10+ messages in thread
From: Valentin Schneider @ 2020-02-27 19:14 UTC (permalink / raw)
To: linux-kernel, linux-arm-kernel
Cc: Mark Rutland, qperret, Peter Zijlstra, Catalin Marinas,
morten.rasmussen, Will Deacon, Ingo Molnar, Dietmar Eggemann
EAS already requires asymmetric CPU capacities to be enabled, and mixing
this with SMT is an aberration, but better be safe than sorry.
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Acked-by: Quentin Perret <qperret@google.com>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
---
kernel/sched/topology.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index 00911884b7e7..8344757bba6e 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -317,8 +317,9 @@ static void sched_energy_set(bool has_eas)
* EAS can be used on a root domain if it meets all the following conditions:
* 1. an Energy Model (EM) is available;
* 2. the SD_ASYM_CPUCAPACITY flag is set in the sched_domain hierarchy.
- * 3. the EM complexity is low enough to keep scheduling overheads low;
- * 4. schedutil is driving the frequency of all CPUs of the rd;
+ * 3. no SMT is detected.
+ * 4. the EM complexity is low enough to keep scheduling overheads low;
+ * 5. schedutil is driving the frequency of all CPUs of the rd;
*
* The complexity of the Energy Model is defined as:
*
@@ -360,6 +361,13 @@ static bool build_perf_domains(const struct cpumask *cpu_map)
goto free;
}
+ /* EAS definitely does *not* handle SMT */
+ if (sched_smt_active()) {
+ pr_warn("rd %*pbl: Disabling EAS, SMT is not supported\n",
+ cpumask_pr_args(cpu_map));
+ goto free;
+ }
+
for_each_cpu(i, cpu_map) {
/* Skip already covered CPUs. */
if (find_pd(pd, i))
--
2.24.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] arm64: defconfig: enable CONFIG_SCHED_SMT
2020-02-27 19:14 ` Valentin Schneider
@ 2020-02-27 19:14 ` Valentin Schneider
-1 siblings, 0 replies; 10+ messages in thread
From: Valentin Schneider @ 2020-02-27 19:14 UTC (permalink / raw)
To: linux-kernel, linux-arm-kernel
Cc: Peter Zijlstra, Ingo Molnar, Vincent Guittot, Dietmar Eggemann,
morten.rasmussen, qperret, Catalin Marinas, Will Deacon,
Mark Rutland
The (CFS) scheduler has some extra logic catering to systems with SMT, but
that logic won't be compiled in unless the above config is set.
Note that the SMT-centric codepaths are gated by the sched_smt_present
static key, and the SMT sched_domains will only survive if the platform has
SMT. As such, the only impact on !SMT platforms should be a slightly
bigger kernel - no behavioural change.
Distro kernels already enable it, which makes sense since there already are
things like ThunderX2 out in the wild. Enable it for the defconfig.
Some deltas
===========
FWIW my ELF symbol table diff looks something like this:
NAME BEFORE AFTER DELTA
update_sd_lb_stats.constprop.135 0 1864 +1864
find_idlest_group.isra.115 0 1808 +1808
update_numa_stats.isra.121 0 628 +628
select_task_rq_fair 3236 3732 +496
compute_energy.isra.112 0 420 +420
score_nearby_nodes.part.120 0 380 +380
__update_idle_core 0 232 +232
nohz_balance_exit_idle.part.127 0 216 +216
sched_slice.isra.99 0 172 +172
update_load_avg.part.107 0 116 +116
wakeup_preempt_entity.isra.101 0 92 +92
sched_cpu_activate 340 396 +56
pick_next_task_idle 8 56 +48
sched_cpu_deactivate 252 292 +40
show_smt_active 44 80 +36
cpu_smt_mask 0 28 +28
set_next_task_idle 4 32 +28
task_numa_work 680 692 +12
cpu_smt_flags 0 8 +8
enqueue_task_fair 2608 2612 +4
wakeup_preempt_entity.isra.104 92 0 -92
update_load_avg 1028 932 -96
task_numa_migrate 1824 1728 -96
sched_slice.isra.102 172 0 -172
nohz_balance_exit_idle.part.130 216 0 -216
task_numa_find_cpu 2116 1868 -248
score_nearby_nodes.part.123 380 0 -380
compute_energy.isra.115 420 0 -420
update_numa_stats.isra.124 472 0 -472
find_idlest_group.isra.118 1808 0 -1808
update_sd_lb_stats.constprop.138 1864 0 -1864
------------------------------------------------------------------
DELTA SUM +820
As for the sched_domains, this is on a hikey960:
before:
$ cat /proc/sys/kernel/sched_domain/cpu*/domain*/name | sort | uniq
DIE
MC
after:
$ cat /proc/sys/kernel/sched_domain/cpu*/domain*/name | sort | uniq
DIE
MC
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
---
arch/arm64/configs/defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 905109f6814f..3e75007f6592 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -62,6 +62,7 @@ CONFIG_ARCH_ZX=y
CONFIG_ARCH_ZYNQMP=y
CONFIG_ARM64_VA_BITS_48=y
CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
CONFIG_NUMA=y
CONFIG_SECCOMP=y
CONFIG_KEXEC=y
--
2.24.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] arm64: defconfig: enable CONFIG_SCHED_SMT
@ 2020-02-27 19:14 ` Valentin Schneider
0 siblings, 0 replies; 10+ messages in thread
From: Valentin Schneider @ 2020-02-27 19:14 UTC (permalink / raw)
To: linux-kernel, linux-arm-kernel
Cc: Mark Rutland, qperret, Peter Zijlstra, Catalin Marinas,
morten.rasmussen, Will Deacon, Ingo Molnar, Dietmar Eggemann
The (CFS) scheduler has some extra logic catering to systems with SMT, but
that logic won't be compiled in unless the above config is set.
Note that the SMT-centric codepaths are gated by the sched_smt_present
static key, and the SMT sched_domains will only survive if the platform has
SMT. As such, the only impact on !SMT platforms should be a slightly
bigger kernel - no behavioural change.
Distro kernels already enable it, which makes sense since there already are
things like ThunderX2 out in the wild. Enable it for the defconfig.
Some deltas
===========
FWIW my ELF symbol table diff looks something like this:
NAME BEFORE AFTER DELTA
update_sd_lb_stats.constprop.135 0 1864 +1864
find_idlest_group.isra.115 0 1808 +1808
update_numa_stats.isra.121 0 628 +628
select_task_rq_fair 3236 3732 +496
compute_energy.isra.112 0 420 +420
score_nearby_nodes.part.120 0 380 +380
__update_idle_core 0 232 +232
nohz_balance_exit_idle.part.127 0 216 +216
sched_slice.isra.99 0 172 +172
update_load_avg.part.107 0 116 +116
wakeup_preempt_entity.isra.101 0 92 +92
sched_cpu_activate 340 396 +56
pick_next_task_idle 8 56 +48
sched_cpu_deactivate 252 292 +40
show_smt_active 44 80 +36
cpu_smt_mask 0 28 +28
set_next_task_idle 4 32 +28
task_numa_work 680 692 +12
cpu_smt_flags 0 8 +8
enqueue_task_fair 2608 2612 +4
wakeup_preempt_entity.isra.104 92 0 -92
update_load_avg 1028 932 -96
task_numa_migrate 1824 1728 -96
sched_slice.isra.102 172 0 -172
nohz_balance_exit_idle.part.130 216 0 -216
task_numa_find_cpu 2116 1868 -248
score_nearby_nodes.part.123 380 0 -380
compute_energy.isra.115 420 0 -420
update_numa_stats.isra.124 472 0 -472
find_idlest_group.isra.118 1808 0 -1808
update_sd_lb_stats.constprop.138 1864 0 -1864
------------------------------------------------------------------
DELTA SUM +820
As for the sched_domains, this is on a hikey960:
before:
$ cat /proc/sys/kernel/sched_domain/cpu*/domain*/name | sort | uniq
DIE
MC
after:
$ cat /proc/sys/kernel/sched_domain/cpu*/domain*/name | sort | uniq
DIE
MC
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
---
arch/arm64/configs/defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 905109f6814f..3e75007f6592 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -62,6 +62,7 @@ CONFIG_ARCH_ZX=y
CONFIG_ARCH_ZYNQMP=y
CONFIG_ARM64_VA_BITS_48=y
CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
CONFIG_NUMA=y
CONFIG_SECCOMP=y
CONFIG_KEXEC=y
--
2.24.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 0/2] sched, arm64: enable CONFIG_SCHED_SMT for arm64
2020-02-27 19:14 ` Valentin Schneider
@ 2020-03-02 13:42 ` Peter Zijlstra
-1 siblings, 0 replies; 10+ messages in thread
From: Peter Zijlstra @ 2020-03-02 13:42 UTC (permalink / raw)
To: Valentin Schneider
Cc: linux-kernel, linux-arm-kernel, Ingo Molnar, Vincent Guittot,
Dietmar Eggemann, morten.rasmussen, qperret, Catalin Marinas,
Will Deacon, Mark Rutland
On Thu, Feb 27, 2020 at 07:14:31PM +0000, Valentin Schneider wrote:
> Hi,
>
> Strictly speaking those two patches are independent, but I figured it would
> make sense to send them together (since one led to the other).
>
> Patch 1 adds a sanity check against EAS + SMT.
> Patch 2 enables CONFIG_SCHED_SMT in the arm64 defconfig.
>
Thanks!
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 0/2] sched, arm64: enable CONFIG_SCHED_SMT for arm64
@ 2020-03-02 13:42 ` Peter Zijlstra
0 siblings, 0 replies; 10+ messages in thread
From: Peter Zijlstra @ 2020-03-02 13:42 UTC (permalink / raw)
To: Valentin Schneider
Cc: Ingo Molnar, Mark Rutland, qperret, Catalin Marinas,
linux-kernel, Dietmar Eggemann, Will Deacon, morten.rasmussen,
linux-arm-kernel
On Thu, Feb 27, 2020 at 07:14:31PM +0000, Valentin Schneider wrote:
> Hi,
>
> Strictly speaking those two patches are independent, but I figured it would
> make sense to send them together (since one led to the other).
>
> Patch 1 adds a sanity check against EAS + SMT.
> Patch 2 enables CONFIG_SCHED_SMT in the arm64 defconfig.
>
Thanks!
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* [tip: sched/core] arm64: defconfig: enable CONFIG_SCHED_SMT
2020-02-27 19:14 ` Valentin Schneider
(?)
@ 2020-03-06 14:42 ` tip-bot2 for Valentin Schneider
-1 siblings, 0 replies; 10+ messages in thread
From: tip-bot2 for Valentin Schneider @ 2020-03-06 14:42 UTC (permalink / raw)
To: linux-tip-commits
Cc: Dietmar Eggemann, Valentin Schneider, Peter Zijlstra (Intel),
Ingo Molnar, x86, LKML
The following commit has been merged into the sched/core branch of tip:
Commit-ID: 6f693dd5be08237b337f557c510d99addb9eb9ec
Gitweb: https://git.kernel.org/tip/6f693dd5be08237b337f557c510d99addb9eb9ec
Author: Valentin Schneider <valentin.schneider@arm.com>
AuthorDate: Thu, 27 Feb 2020 19:14:33
Committer: Ingo Molnar <mingo@kernel.org>
CommitterDate: Fri, 06 Mar 2020 12:57:23 +01:00
arm64: defconfig: enable CONFIG_SCHED_SMT
The (CFS) scheduler has some extra logic catering to systems with SMT, but
that logic won't be compiled in unless the above config is set.
Note that the SMT-centric codepaths are gated by the sched_smt_present
static key, and the SMT sched_domains will only survive if the platform has
SMT. As such, the only impact on !SMT platforms should be a slightly
bigger kernel - no behavioural change.
Distro kernels already enable it, which makes sense since there already are
things like ThunderX2 out in the wild. Enable it for the defconfig.
Some deltas
===========
FWIW my ELF symbol table diff looks something like this:
NAME BEFORE AFTER DELTA
update_sd_lb_stats.constprop.135 0 1864 +1864
find_idlest_group.isra.115 0 1808 +1808
update_numa_stats.isra.121 0 628 +628
select_task_rq_fair 3236 3732 +496
compute_energy.isra.112 0 420 +420
score_nearby_nodes.part.120 0 380 +380
__update_idle_core 0 232 +232
nohz_balance_exit_idle.part.127 0 216 +216
sched_slice.isra.99 0 172 +172
update_load_avg.part.107 0 116 +116
wakeup_preempt_entity.isra.101 0 92 +92
sched_cpu_activate 340 396 +56
pick_next_task_idle 8 56 +48
sched_cpu_deactivate 252 292 +40
show_smt_active 44 80 +36
cpu_smt_mask 0 28 +28
set_next_task_idle 4 32 +28
task_numa_work 680 692 +12
cpu_smt_flags 0 8 +8
enqueue_task_fair 2608 2612 +4
wakeup_preempt_entity.isra.104 92 0 -92
update_load_avg 1028 932 -96
task_numa_migrate 1824 1728 -96
sched_slice.isra.102 172 0 -172
nohz_balance_exit_idle.part.130 216 0 -216
task_numa_find_cpu 2116 1868 -248
score_nearby_nodes.part.123 380 0 -380
compute_energy.isra.115 420 0 -420
update_numa_stats.isra.124 472 0 -472
find_idlest_group.isra.118 1808 0 -1808
update_sd_lb_stats.constprop.138 1864 0 -1864
------------------------------------------------------------------
DELTA SUM +820
As for the sched_domains, this is on a hikey960:
before:
$ cat /proc/sys/kernel/sched_domain/cpu*/domain*/name | sort | uniq
DIE
MC
after:
$ cat /proc/sys/kernel/sched_domain/cpu*/domain*/name | sort | uniq
DIE
MC
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lkml.kernel.org/r/20200227191433.31994-3-valentin.schneider@arm.com
---
arch/arm64/configs/defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 905109f..3e75007 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -62,6 +62,7 @@ CONFIG_ARCH_ZX=y
CONFIG_ARCH_ZYNQMP=y
CONFIG_ARM64_VA_BITS_48=y
CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
CONFIG_NUMA=y
CONFIG_SECCOMP=y
CONFIG_KEXEC=y
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [tip: sched/core] sched/topology: Don't enable EAS on SMT systems
2020-02-27 19:14 ` Valentin Schneider
(?)
@ 2020-03-06 14:42 ` tip-bot2 for Valentin Schneider
-1 siblings, 0 replies; 10+ messages in thread
From: tip-bot2 for Valentin Schneider @ 2020-03-06 14:42 UTC (permalink / raw)
To: linux-tip-commits
Cc: Dietmar Eggemann, Quentin Perret, Valentin Schneider,
Peter Zijlstra (Intel),
Ingo Molnar, x86, LKML
The following commit has been merged into the sched/core branch of tip:
Commit-ID: 38502ab4bf3c463081bfd53356980a9ec2f32d1d
Gitweb: https://git.kernel.org/tip/38502ab4bf3c463081bfd53356980a9ec2f32d1d
Author: Valentin Schneider <valentin.schneider@arm.com>
AuthorDate: Thu, 27 Feb 2020 19:14:32
Committer: Ingo Molnar <mingo@kernel.org>
CommitterDate: Fri, 06 Mar 2020 12:57:23 +01:00
sched/topology: Don't enable EAS on SMT systems
EAS already requires asymmetric CPU capacities to be enabled, and mixing
this with SMT is an aberration, but better be safe than sorry.
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Acked-by: Quentin Perret <qperret@google.com>
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lkml.kernel.org/r/20200227191433.31994-2-valentin.schneider@arm.com
---
kernel/sched/topology.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index 0091188..8344757 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -317,8 +317,9 @@ static void sched_energy_set(bool has_eas)
* EAS can be used on a root domain if it meets all the following conditions:
* 1. an Energy Model (EM) is available;
* 2. the SD_ASYM_CPUCAPACITY flag is set in the sched_domain hierarchy.
- * 3. the EM complexity is low enough to keep scheduling overheads low;
- * 4. schedutil is driving the frequency of all CPUs of the rd;
+ * 3. no SMT is detected.
+ * 4. the EM complexity is low enough to keep scheduling overheads low;
+ * 5. schedutil is driving the frequency of all CPUs of the rd;
*
* The complexity of the Energy Model is defined as:
*
@@ -360,6 +361,13 @@ static bool build_perf_domains(const struct cpumask *cpu_map)
goto free;
}
+ /* EAS definitely does *not* handle SMT */
+ if (sched_smt_active()) {
+ pr_warn("rd %*pbl: Disabling EAS, SMT is not supported\n",
+ cpumask_pr_args(cpu_map));
+ goto free;
+ }
+
for_each_cpu(i, cpu_map) {
/* Skip already covered CPUs. */
if (find_pd(pd, i))
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-03-06 14:43 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-27 19:14 [PATCH v2 0/2] sched, arm64: enable CONFIG_SCHED_SMT for arm64 Valentin Schneider
2020-02-27 19:14 ` Valentin Schneider
2020-02-27 19:14 ` [PATCH v2 1/2] sched/topology: Don't enable EAS on SMT systems Valentin Schneider
2020-02-27 19:14 ` Valentin Schneider
2020-03-06 14:42 ` [tip: sched/core] " tip-bot2 for Valentin Schneider
2020-02-27 19:14 ` [PATCH v2 2/2] arm64: defconfig: enable CONFIG_SCHED_SMT Valentin Schneider
2020-02-27 19:14 ` Valentin Schneider
2020-03-06 14:42 ` [tip: sched/core] " tip-bot2 for Valentin Schneider
2020-03-02 13:42 ` [PATCH v2 0/2] sched, arm64: enable CONFIG_SCHED_SMT for arm64 Peter Zijlstra
2020-03-02 13:42 ` Peter Zijlstra
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.