Messages in this thread | | | Date | Tue, 6 Dec 2022 18:54:39 +0100 | Subject | Re: [PATCH v2 3/7] sched: Teach arch_asym_cpu_priority() the idle state of SMT siblings | From | Dietmar Eggemann <> |
| |
On 22/11/2022 21:35, Ricardo Neri wrote: > Some processors (e.g., Intel processors with ITMT) use asym_packing to > balance load between physical cores with SMT. In such case, a core with all > its SMT siblings idle is more desirable than another with one or more busy > siblings. > > Other processors (e.g, Power7 with SMT8) use asym_packing to balance load > among SMT siblings of different priority, regardless of their idle state. > > Add a new parameter, check_smt, that architectures can use as needed.
[...]
> Changes since v1: > * Introduced this patch.
[...]
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index d18947a9c03e..0e4251f83807 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -142,8 +142,11 @@ __setup("sched_thermal_decay_shift=", setup_sched_thermal_decay_shift); > #ifdef CONFIG_SMP > /* > * For asym packing, by default the lower numbered CPU has higher priority. > + * > + * When doing ASYM_PACKING at the "MC" or higher domains, architectures may
There is this new CLUSTER level between SMT and MC.
> + * want to check the idle state of the SMT siblngs of @cpu.
s/siblngs/siblings
The scheduler calls sched_asym_prefer(..., true) from find_busiest_queue(), asym_active_balance() and nohz_balancer_kick() even from SMT layer on !x86. So I guess a `bool check_smt` wouldn't be sufficient to distinguish whether sched_smt_siblings_idle() should be called or not. To me this comment is a little bit misleading. Not an issue currently since there is only the x86 overwrite right now.
> */ > -int __weak arch_asym_cpu_priority(int cpu) > +int __weak arch_asym_cpu_priority(int cpu, bool check_smt) > { > return -cpu; > }
[...]
| |