Hmmm interesting. However it does not have any effect, sadly:
# lscpu -e
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ MHZ
0 0 0 0 0:0:0:0 yes 2600.0000 800.0000 1625.0000
1 0 0 0 1:1:0 yes 1800.0000 800.0000 800.0000
2 0 0 1 2:2:0 yes 1800.0000 800.0000 800.0000
3 0 0 2 3:3:0 yes 1800.0000 800.0000 800.0000
4 0 0 3 4:4:0 yes 1800.0000 800.0000 800.0000
5 0 0 0 5:5:0:0 yes 2300.0000 800.0000 800.0000
6 0 0 1 6:6:0:0 yes 2300.0000 800.0000 800.0000
7 0 0 2 7:7:0:0 yes 2200.0000 800.0000 800.0000
8 0 0 3 8:8:0:0 yes 2200.0000 800.0000 800.0000
9 0 0 4 9:9:0:0 yes 2500.0000 800.0000 800.0000
10 0 0 5 10:10:0:0 yes 2500.0000 800.0000 800.0000
11 0 0 6 11:11:0:0 yes 2600.0000 800.0000 1625.0000
The issue I think is that since we’re booting on a big core, it gets assigned CPU0 in linux. At best we could imagine trying to change the order so that all 4 big cores appear first. But it was suggested elsewhere that on Arm it’s more common to find small cores before large ones, so here the fix would be to make the board boot from a small core, but I’m not sure if this is possible at all. Maybe the SoC decides to boot on a big one ?
I’ll try to change that file (thank you for the pointer) to make all big cores appear there. At least if it works, it will ease IRQ configuration and taskset usage.
Edit: I changed the file to try to place big cores, then medium ones, then little ones, and it didn’t change anything either. As such, I’m not really sure this file is being used by linux during CPU enumeration. Or maybe we need to change one of the CPU numbers there ? I’m seeing the same number present twice on each line, maybe one is an index and the other a hw cpu id ?
Edit: no change either.