Messages in this thread | | | Date | Mon, 12 Dec 2022 09:54:58 -0800 | From | Ricardo Neri <> | Subject | Re: [PATCH v2 4/7] sched/fair: Introduce sched_smt_siblings_idle() |
| |
On Tue, Dec 06, 2022 at 07:03:37PM +0100, Dietmar Eggemann wrote: > On 22/11/2022 21:35, Ricardo Neri wrote: > > Architectures that implement arch_asym_cpu_priority() may need to know the > > idle state of the SMT siblings of a CPU. The scheduler has this information > > and functionality. Expose it. > > > > Move the existing functionality outside of the NUMA code. > > [...] > > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > > index 0e4251f83807..9517c48df50e 100644 > > --- a/kernel/sched/fair.c > > +++ b/kernel/sched/fair.c > > @@ -1052,6 +1052,28 @@ update_stats_curr_start(struct cfs_rq *cfs_rq, struct sched_entity *se) > > * Scheduling class queueing methods: > > */ > > > > +static inline bool is_core_idle(int cpu) > > +{ > > +#ifdef CONFIG_SCHED_SMT > > + int sibling; > > + > > + for_each_cpu(sibling, cpu_smt_mask(cpu)) { > > + if (cpu == sibling) > > + continue; > > + > > + if (!idle_cpu(sibling)) > > + return false; > > + } > > +#endif > > + > > + return true; > > +} > > + > > +bool sched_smt_siblings_idle(int cpu) > > +{ > > + return is_core_idle(cpu); > > +} > > Nitpick: Can we not just have one exported function for both use-cases: > NUMA and x86 ITMT?
By adding a new function I intend to preserve the inlinig of is_core_idle() in update_numa_stats() (via numa_idle_core(), which is also inline). Do you think there is no value?
A downside of having the new function is that now the code is duplicated in update_numa_stats() and sched_smt_siblings_idle().
I can take your suggestion if losing the inline is OK.
Thanks and BR, Ricardo
| |