Re: [RFC PATCH] sched/feec: Simplify the traversal of pd'cpus
From: Xuewen Yan
Date: Mon Aug 18 2025 - 07:07:19 EST
On Fri, Aug 15, 2025 at 9:01 PM Dietmar Eggemann
<dietmar.eggemann@xxxxxxx> wrote:
>
> On 14.08.25 10:52, Xuewen Yan wrote:
> > Hi Dietmar,
> >
> > On Thu, Aug 14, 2025 at 4:46 PM Dietmar Eggemann
> > <dietmar.eggemann@xxxxxxx> wrote:
> >>
> >> On 12.08.25 10:33, Xuewen Yan wrote:
>
> [...]
>
> >> Can you not mask cpus already early in the pd loop (1) and then profit
> >> from (2) in these rare cases?
> >
> > I do not think the cpus_ptr chould place before the pd_cap calc,
> > because the following scenario should be considered:
> > the task's cpus_ptr cpus: 0,1,2,3
> > pd's cpus: 0,1,2,3,4,5,6
> > the pd's cap = cpu_cap * 6;
> > if we cpumask_and(pd'scpus, p->cpus_ptr),
> > the cpumask_weight = 4,
> > the pd's cap = cpu_cap *4.
>
> Yes, you're right! Missed this one.
>
> >> IIRC, the sd only plays a role here in
> >> exclusive cpusets scenarios which I don't thing anybody deploys with EAS?
> >
> > I am also wondering if the check for SD's CPUs could be removed...
>
> Still not 100% sure here. I would have to play with cpusets and EAS a
> little bit more. Are you thinking that in those cases p->cpus_ptr
> already covers the cpuset restriction so that the sd mask isn't necessary?
I am not familiar with cpuset, so I can't guarantee this. Similarly, I
also need to learn more about cpuset and cpu topology before I can
answer this question.
Thanks!