Messages in this thread | | | Date | Thu, 29 Dec 2022 16:17:23 -0800 | From | Ricardo Neri <> | Subject | Re: [PATCH v2 4/7] sched/fair: Introduce sched_smt_siblings_idle() |
| |
On Wed, Dec 28, 2022 at 11:29:52PM +0800, Chen Yu wrote: > On 2022-12-23 at 21:28:50 -0800, Ricardo Neri wrote: > > On Thu, Dec 22, 2022 at 04:56:22PM +0000, Valentin Schneider wrote: > > > On 22/11/22 12: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. > > > > > > > > > > test_idle_cores() does something similar without an iteration, did you > > > consider using that instead? > > > > IIUC, test_idle_cores() returns true if there is at least one idle core in > > the package. In my case, I need to know the idle state of only the SMT > > siblings of a specific CPU. Am I missing something? > > > I guess a similar one is select_idle_core(), but it also consider the CPU with > SCHED_IDLE task as idle. Is CPU with SCHED_IDLE task a candidate in your > scenario?
However, we are not looking for an idle CPU. We want to know the idle state of the siblings of a CPU. I see that select_idle_core() uses available_idle_cpu(), which in turn uses idle_cpu(). is_core_idle() also uses it.
As per 943d355d7fee ("sched/core: Distinguish between idle_cpu() calls based on desired effect, introduce available_idle_cpu()") the load balancer can just call idle_cpu().
Thanks and BR, Ricardo
| |