Hello everyone,
I want to run some experiments on a T4240RDB platform and I need to know the exact mapping between core ids (as shown in top or /proc/cpuinfo) and the actual hardware contexts. Usually on other platforms the /proc/cpuinfo provides enough information to figure that out but in case of the T4240RDB platform that I am using, the information provided is insufficient.
[aris@RDB4-F20 ~]$ cat /proc/cpuinfo
processor : 0
cpu : e6500, altivec supported
clock : 1666.666650MHz
revision : 2.0 (pvr 8040 0120)
processor : 1
cpu : e6500, altivec supported
clock : 1666.666650MHz
revision : 2.0 (pvr 8040 0120)
.....
I need to know which 4 cores (8 hardware contexts) belong to each processor cluster and for every core, its two hardware contexts.
Thanks in advance!
I don't think there's currently an architecturally guaranteed solution, but in practice on a t4240 with nothing funny going on (e.g. disabled threads or cpus), the low bit is the thread within the core, the next two bits are the cpu within the cluster, and the high two bits are the cluster number. There is no guarantee this will continue to work in the future (though it probably will) or with other chips (e.g. variants with fewer cores).