Re: [RFC PATCH] sched/feec: Simplify the traversal of pd'cpus

From: Dietmar Eggemann
Date: Fri Aug 15 2025 - 09:03:51 EST


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?