Re: [RFC PATCH] sched/feec: Simplify the traversal of pd'cpus
From: Dietmar Eggemann
Date: Tue Aug 19 2025 - 10:03:53 EST
On 19.08.25 03:02, Xuewen Yan wrote:
> On Mon, Aug 18, 2025 at 11:24 PM Dietmar Eggemann
> <dietmar.eggemann@xxxxxxx> wrote:
>>
>> On 18.08.25 12:05, Xuewen Yan wrote:
>>> 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:
[...]
>> Looks like we do need also the sd cpumask here.
>>
>> Consider this tri-gear system:
>>
>> # cat /sys/devices/system/cpu/cpu*/cpu_capacity
>> 160
>> 160
>> 160
>> 160
>> 498
>> 498
>> 1024
>> 1024
>>
>> and 2 exclusive cpusets cs1={0-1,4,6} and cs2={2-3,5,7}, so EAS is
>> possible in all 3 root_domains (/, /cs1, /cs2):
>
> Isn't your CPU an ARM Dynamiq architecture?
> In my understanding, for Dynamiq arch, there is only one MC domain...
> Did I miss something?
Ah, should have mentioned that this is qemu. I used a dts file
(qemu-system-aarch64 ... -dtb foo.dtb) with individual
'next-level-cache' entries for the CPUs {0-3}, {4-5} and {6-7} so that's
why you see MC & PKG. Removing those gives you a system with only MC:
[ 106.986828] CPU2 attaching sched-domain(s):
[ 106.987846] domain-0: span=2-3,5,7 level=MC
[ 106.987941] groups: 2:{ span=2 cap=159 }, 3:{ span=3 cap=154 }, 5:{
span=5 cap=495 }, 7:{ span=7 cap=991 }
[ 106.988842] CPU3 attaching sched-domain(s):
[ 106.989096] domain-0: span=2-3,5,7 level=MC
[ 106.989136] groups: 3:{ span=3 cap=154 }, 5:{ span=5 cap=495 }, 7:{
span=7 cap=991 }, 2:{ span=2 cap=159 }
[ 106.989679] CPU5 attaching sched-domain(s):
[ 106.989692] domain-0: span=2-3,5,7 level=MC
[ 106.989773] groups: 5:{ span=5 cap=495 }, 7:{ span=7 cap=991 }, 2:{
span=2 cap=159 }, 3:{ span=3 cap=154 }
[ 106.990466] CPU7 attaching sched-domain(s):
[ 106.990482] domain-0: span=2-3,5,7 level=MC
[ 106.990632] groups: 7:{ span=7 cap=991 }, 2:{ span=2 cap=159 }, 3:{
span=3 cap=154 }, 5:{ span=5 cap=495 }
[ 106.997604] root domain span: 2-3,5,7
[ 106.998267] CPU0 attaching sched-domain(s):
[ 106.998278] domain-0: span=0-1,4,6 level=MC
[ 106.998295] groups: 0:{ span=0 cap=159 }, 1:{ span=1 cap=160 }, 4:{
span=4 cap=496 }, 6:{ span=6 cap=995 }
[ 106.998584] CPU1 attaching sched-domain(s):
[ 106.998592] domain-0: span=0-1,4,6 level=MC
[ 106.998604] groups: 1:{ span=1 cap=160 }, 4:{ span=4 cap=496 }, 6:{
span=6 cap=995 }, 0:{ span=0 cap=159 }
[ 106.999477] CPU4 attaching sched-domain(s):
[ 106.999487] domain-0: span=0-1,4,6 level=MC
[ 106.999504] groups: 4:{ span=4 cap=496 }, 6:{ span=6 cap=995 }, 0:{
span=0 cap=159 }, 1:{ span=1 cap=160 }
[ 107.000070] CPU6 attaching sched-domain(s):
[ 107.000082] domain-0: span=0-1,4,6 level=MC
[ 107.000095] groups: 6:{ span=6 cap=995 }, 0:{ span=0 cap=159 }, 1:{
span=1 cap=160 }, 4:{ span=4 cap=496 }
[ 107.000721] root domain span: 0-1,4,6
[ 107.001152] root_domain 2-3,5,7: pd6:{ cpus=6-7 nr_pstate=4 } pd4:{
cpus=4-5 nr_pstate=4 } pd0:{ cpus=0-3 nr_pstate=4 }
[ 107.001869] root_domain 0-1,4,6: pd6:{ cpus=6-7 nr_pstate=4 } pd4:{
cpus=4-5 nr_pstate=4 } pd0:{ cpus=0-3 nr_pstate=4 }
[...]