<attribute name='socket_id'>
<ref name='unsignedInt'/>
</attribute>
+ <attribute name='die_id'>
+ <ref name='unsignedInt'/>
+ </attribute>
<attribute name='core_id'>
<ref name='unsignedInt'/>
</attribute>
return -1;
virBufferAsprintf(buf,
- " socket_id='%d' core_id='%d' siblings='%s'",
+ " socket_id='%d' die_id='%d' core_id='%d' siblings='%s'",
cell->cpus[j].socket_id,
+ cell->cpus[j].die_id,
cell->cpus[j].core_id,
siblings);
VIR_FREE(siblings);
cpu->id = cpu_id;
if (virHostCPUGetSocket(cpu_id, &cpu->socket_id) < 0 ||
+ virHostCPUGetDie(cpu_id, &cpu->die_id) < 0 ||
virHostCPUGetCore(cpu_id, &cpu->core_id) < 0)
return -1;
goto error;
if (tmp) {
cpus[cid].id = id;
+ cpus[cid].die_id = 0;
cpus[cid].socket_id = s;
cpus[cid].core_id = c;
if (!(cpus[cid].siblings = virBitmapNew(ncpus)))
struct _virCapsHostNUMACellCPU {
unsigned int id;
unsigned int socket_id;
+ unsigned int die_id;
unsigned int core_id;
virBitmapPtr siblings;
};
# util/virhostcpu.h
virHostCPUGetCore;
+virHostCPUGetDie;
virHostCPUGetInfoPopulateLinux;
virHostCPUGetSiblingsList;
virHostCPUGetSocket;
return 0;
}
+int
+virHostCPUGetDie(unsigned int cpu, unsigned int *die)
+{
+ int ret = virFileReadValueUint(die,
+ "%s/cpu/cpu%u/topology/die_id",
+ SYSFS_SYSTEM_PATH, cpu);
+
+ /* If the file is not there, it's 0 */
+ if (ret == -2)
+ *die = 0;
+ else if (ret < 0)
+ return -1;
+
+ return 0;
+}
+
int
virHostCPUGetCore(unsigned int cpu, unsigned int *core)
{
#ifdef __linux__
int virHostCPUGetSocket(unsigned int cpu, unsigned int *socket);
+int virHostCPUGetDie(unsigned int cpu, unsigned int *die);
int virHostCPUGetCore(unsigned int cpu, unsigned int *core);
virBitmapPtr virHostCPUGetSiblingsList(unsigned int cpu);
<pages unit='KiB' size='2048'>4096</pages>
<pages unit='KiB' size='1048576'>6144</pages>
<cpus num='4'>
- <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
- <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
- <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
- <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
+ <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
+ <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
+ <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
+ <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
</cpus>
</cell>
<cell id='1'>
<pages unit='KiB' size='2048'>6144</pages>
<pages unit='KiB' size='1048576'>8192</pages>
<cpus num='4'>
- <cpu id='4' socket_id='1' core_id='4' siblings='4'/>
- <cpu id='5' socket_id='1' core_id='5' siblings='5'/>
- <cpu id='6' socket_id='1' core_id='6' siblings='6'/>
- <cpu id='7' socket_id='1' core_id='7' siblings='7'/>
+ <cpu id='4' socket_id='1' die_id='0' core_id='4' siblings='4'/>
+ <cpu id='5' socket_id='1' die_id='0' core_id='5' siblings='5'/>
+ <cpu id='6' socket_id='1' die_id='0' core_id='6' siblings='6'/>
+ <cpu id='7' socket_id='1' die_id='0' core_id='7' siblings='7'/>
</cpus>
</cell>
<cell id='2'>
<pages unit='KiB' size='2048'>8192</pages>
<pages unit='KiB' size='1048576'>10240</pages>
<cpus num='4'>
- <cpu id='8' socket_id='2' core_id='8' siblings='8'/>
- <cpu id='9' socket_id='2' core_id='9' siblings='9'/>
- <cpu id='10' socket_id='2' core_id='10' siblings='10'/>
- <cpu id='11' socket_id='2' core_id='11' siblings='11'/>
+ <cpu id='8' socket_id='2' die_id='0' core_id='8' siblings='8'/>
+ <cpu id='9' socket_id='2' die_id='0' core_id='9' siblings='9'/>
+ <cpu id='10' socket_id='2' die_id='0' core_id='10' siblings='10'/>
+ <cpu id='11' socket_id='2' die_id='0' core_id='11' siblings='11'/>
</cpus>
</cell>
<cell id='3'>
<pages unit='KiB' size='2048'>10240</pages>
<pages unit='KiB' size='1048576'>12288</pages>
<cpus num='4'>
- <cpu id='12' socket_id='3' core_id='12' siblings='12'/>
- <cpu id='13' socket_id='3' core_id='13' siblings='13'/>
- <cpu id='14' socket_id='3' core_id='14' siblings='14'/>
- <cpu id='15' socket_id='3' core_id='15' siblings='15'/>
+ <cpu id='12' socket_id='3' die_id='0' core_id='12' siblings='12'/>
+ <cpu id='13' socket_id='3' die_id='0' core_id='13' siblings='13'/>
+ <cpu id='14' socket_id='3' die_id='0' core_id='14' siblings='14'/>
+ <cpu id='15' socket_id='3' die_id='0' core_id='15' siblings='15'/>
</cpus>
</cell>
</cells>
<pages unit='KiB' size='2048'>4096</pages>
<pages unit='KiB' size='1048576'>6144</pages>
<cpus num='4'>
- <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
- <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
- <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
- <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
+ <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
+ <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
+ <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
+ <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
</cpus>
</cell>
<cell id='1'>
<pages unit='KiB' size='2048'>6144</pages>
<pages unit='KiB' size='1048576'>8192</pages>
<cpus num='4'>
- <cpu id='4' socket_id='1' core_id='4' siblings='4'/>
- <cpu id='5' socket_id='1' core_id='5' siblings='5'/>
- <cpu id='6' socket_id='1' core_id='6' siblings='6'/>
- <cpu id='7' socket_id='1' core_id='7' siblings='7'/>
+ <cpu id='4' socket_id='1' die_id='0' core_id='4' siblings='4'/>
+ <cpu id='5' socket_id='1' die_id='0' core_id='5' siblings='5'/>
+ <cpu id='6' socket_id='1' die_id='0' core_id='6' siblings='6'/>
+ <cpu id='7' socket_id='1' die_id='0' core_id='7' siblings='7'/>
</cpus>
</cell>
<cell id='2'>
<pages unit='KiB' size='2048'>8192</pages>
<pages unit='KiB' size='1048576'>10240</pages>
<cpus num='4'>
- <cpu id='8' socket_id='2' core_id='8' siblings='8'/>
- <cpu id='9' socket_id='2' core_id='9' siblings='9'/>
- <cpu id='10' socket_id='2' core_id='10' siblings='10'/>
- <cpu id='11' socket_id='2' core_id='11' siblings='11'/>
+ <cpu id='8' socket_id='2' die_id='0' core_id='8' siblings='8'/>
+ <cpu id='9' socket_id='2' die_id='0' core_id='9' siblings='9'/>
+ <cpu id='10' socket_id='2' die_id='0' core_id='10' siblings='10'/>
+ <cpu id='11' socket_id='2' die_id='0' core_id='11' siblings='11'/>
</cpus>
</cell>
<cell id='3'>
<pages unit='KiB' size='2048'>10240</pages>
<pages unit='KiB' size='1048576'>12288</pages>
<cpus num='4'>
- <cpu id='12' socket_id='3' core_id='12' siblings='12'/>
- <cpu id='13' socket_id='3' core_id='13' siblings='13'/>
- <cpu id='14' socket_id='3' core_id='14' siblings='14'/>
- <cpu id='15' socket_id='3' core_id='15' siblings='15'/>
+ <cpu id='12' socket_id='3' die_id='0' core_id='12' siblings='12'/>
+ <cpu id='13' socket_id='3' die_id='0' core_id='13' siblings='13'/>
+ <cpu id='14' socket_id='3' die_id='0' core_id='14' siblings='14'/>
+ <cpu id='15' socket_id='3' die_id='0' core_id='15' siblings='15'/>
</cpus>
</cell>
</cells>
<pages unit='KiB' size='2048'>4096</pages>
<pages unit='KiB' size='1048576'>6144</pages>
<cpus num='8'>
- <cpu id='0' socket_id='0' core_id='0' siblings='0,4'/>
- <cpu id='1' socket_id='0' core_id='1' siblings='1,5'/>
- <cpu id='2' socket_id='0' core_id='2' siblings='2,6'/>
- <cpu id='3' socket_id='0' core_id='3' siblings='3,7'/>
- <cpu id='4' socket_id='0' core_id='0' siblings='0,4'/>
- <cpu id='5' socket_id='0' core_id='1' siblings='1,5'/>
- <cpu id='6' socket_id='0' core_id='2' siblings='2,6'/>
- <cpu id='7' socket_id='0' core_id='3' siblings='3,7'/>
+ <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0,4'/>
+ <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1,5'/>
+ <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2,6'/>
+ <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3,7'/>
+ <cpu id='4' socket_id='0' die_id='0' core_id='0' siblings='0,4'/>
+ <cpu id='5' socket_id='0' die_id='0' core_id='1' siblings='1,5'/>
+ <cpu id='6' socket_id='0' die_id='0' core_id='2' siblings='2,6'/>
+ <cpu id='7' socket_id='0' die_id='0' core_id='3' siblings='3,7'/>
</cpus>
</cell>
</cells>
<pages unit='KiB' size='2048'>4096</pages>
<pages unit='KiB' size='1048576'>6144</pages>
<cpus num='6'>
- <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
- <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
- <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
- <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
- <cpu id='4' socket_id='0' core_id='4' siblings='4'/>
- <cpu id='5' socket_id='0' core_id='5' siblings='5'/>
+ <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
+ <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
+ <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
+ <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
+ <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/>
+ <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/>
</cpus>
</cell>
<cell id='1'>
<pages unit='KiB' size='2048'>6144</pages>
<pages unit='KiB' size='1048576'>8192</pages>
<cpus num='6'>
- <cpu id='6' socket_id='1' core_id='0' siblings='6'/>
- <cpu id='7' socket_id='1' core_id='1' siblings='7'/>
- <cpu id='8' socket_id='1' core_id='2' siblings='8'/>
- <cpu id='9' socket_id='1' core_id='3' siblings='9'/>
- <cpu id='10' socket_id='1' core_id='4' siblings='10'/>
- <cpu id='11' socket_id='1' core_id='5' siblings='11'/>
+ <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/>
+ <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/>
+ <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/>
+ <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/>
+ <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/>
+ <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/>
</cpus>
</cell>
</cells>
<pages unit='KiB' size='2048'>4096</pages>
<pages unit='KiB' size='1048576'>6144</pages>
<cpus num='6'>
- <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
- <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
- <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
- <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
- <cpu id='4' socket_id='0' core_id='4' siblings='4'/>
- <cpu id='5' socket_id='0' core_id='5' siblings='5'/>
+ <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
+ <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
+ <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
+ <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
+ <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/>
+ <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/>
</cpus>
</cell>
<cell id='1'>
<pages unit='KiB' size='2048'>6144</pages>
<pages unit='KiB' size='1048576'>8192</pages>
<cpus num='6'>
- <cpu id='6' socket_id='1' core_id='0' siblings='6'/>
- <cpu id='7' socket_id='1' core_id='1' siblings='7'/>
- <cpu id='8' socket_id='1' core_id='2' siblings='8'/>
- <cpu id='9' socket_id='1' core_id='3' siblings='9'/>
- <cpu id='10' socket_id='1' core_id='4' siblings='10'/>
- <cpu id='11' socket_id='1' core_id='5' siblings='11'/>
+ <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/>
+ <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/>
+ <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/>
+ <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/>
+ <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/>
+ <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/>
</cpus>
</cell>
</cells>
<pages unit='KiB' size='2048'>4096</pages>
<pages unit='KiB' size='1048576'>6144</pages>
<cpus num='6'>
- <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
- <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
- <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
- <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
- <cpu id='4' socket_id='0' core_id='4' siblings='4'/>
- <cpu id='5' socket_id='0' core_id='5' siblings='5'/>
+ <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
+ <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
+ <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
+ <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
+ <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/>
+ <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/>
</cpus>
</cell>
<cell id='1'>
<pages unit='KiB' size='2048'>6144</pages>
<pages unit='KiB' size='1048576'>8192</pages>
<cpus num='6'>
- <cpu id='6' socket_id='1' core_id='0' siblings='6'/>
- <cpu id='7' socket_id='1' core_id='1' siblings='7'/>
- <cpu id='8' socket_id='1' core_id='2' siblings='8'/>
- <cpu id='9' socket_id='1' core_id='3' siblings='9'/>
- <cpu id='10' socket_id='1' core_id='4' siblings='10'/>
- <cpu id='11' socket_id='1' core_id='5' siblings='11'/>
+ <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/>
+ <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/>
+ <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/>
+ <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/>
+ <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/>
+ <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/>
</cpus>
</cell>
</cells>
<pages unit='KiB' size='2048'>4096</pages>
<pages unit='KiB' size='1048576'>6144</pages>
<cpus num='1'>
- <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
+ <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
</cpus>
</cell>
</cells>
<pages unit='KiB' size='2048'>4096</pages>
<pages unit='KiB' size='1048576'>6144</pages>
<cpus num='1'>
- <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
+ <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
</cpus>
</cell>
</cells>
<pages unit='KiB' size='2048'>4096</pages>
<pages unit='KiB' size='1048576'>6144</pages>
<cpus num='6'>
- <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
- <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
- <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
- <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
- <cpu id='4' socket_id='0' core_id='4' siblings='4'/>
- <cpu id='5' socket_id='0' core_id='5' siblings='5'/>
+ <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
+ <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
+ <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
+ <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
+ <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/>
+ <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/>
</cpus>
</cell>
<cell id='1'>
<pages unit='KiB' size='2048'>6144</pages>
<pages unit='KiB' size='1048576'>8192</pages>
<cpus num='6'>
- <cpu id='6' socket_id='1' core_id='0' siblings='6'/>
- <cpu id='7' socket_id='1' core_id='1' siblings='7'/>
- <cpu id='8' socket_id='1' core_id='2' siblings='8'/>
- <cpu id='9' socket_id='1' core_id='3' siblings='9'/>
- <cpu id='10' socket_id='1' core_id='4' siblings='10'/>
- <cpu id='11' socket_id='1' core_id='5' siblings='11'/>
+ <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/>
+ <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/>
+ <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/>
+ <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/>
+ <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/>
+ <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/>
</cpus>
</cell>
</cells>