The example above is consistent because CPU2 mask and CPU0 mask are fully exclusive
so CPU0: cpu_corepower_mask=0-1 CPU2: cpu_corepower_mask=2 are consistent
CPU0: cpu_corepower_mask=0-2 CPU2: cpu_corepower_mask=0-2 are also consistent
but
CPU0: cpu_corepower_mask=0-1 CPU2: cpu_corepower_mask=0-2 are not consistent
and your example uses the last configuration
To be more precise, the rule above applies on default SDT definition but the flag SD_OVERLAP enables such kind of overlap between group. Have you tried it ?
I've never tried degenerate stuff with SD_OVERLAP, it might horribly explode -- its not actually meant to work.
The SD_OVERLAP comes from not fully connected NUMA topologies; suppose something like:
0------1 | | | | 2------3
or:
( 10 20 20 0 ) ( 20 10 0 20 ) ( 20 0 10 20 ) ( 0 20 20 10 )
Your domain level that models the single-hop/20 distance has overlapping masks:
N0: 0-2 N1: 0,1,3 N2: 0,2,3 N3: 1-3
I've never tried to construct a NUMA topology that would be overlapping and have redundant bits in.