a41c76
From 15b2ac591a1c024ecf92a7e40d22eed6e59684b8 Mon Sep 17 00:00:00 2001
a41c76
Message-Id: <15b2ac591a1c024ecf92a7e40d22eed6e59684b8@dist-git>
a41c76
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
a41c76
Date: Mon, 3 Feb 2020 18:07:25 +0000
a41c76
Subject: [PATCH] hostcpu: add support for reporting die_id in NUMA topology
a41c76
MIME-Version: 1.0
a41c76
Content-Type: text/plain; charset=UTF-8
a41c76
Content-Transfer-Encoding: 8bit
a41c76
a41c76
Update the host CPU code to report the die_id in the NUMA topology
a41c76
capabilities. On systems with multiple dies, this fixes the bug
a41c76
where CPU cores can't be distinguished:
a41c76
a41c76
 <cpus num='12'>
a41c76
   <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
a41c76
   <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
a41c76
   <cpu id='2' socket_id='0' core_id='0' siblings='2'/>
a41c76
   <cpu id='3' socket_id='0' core_id='1' siblings='3'/>
a41c76
 </cpus>
a41c76
a41c76
Notice how core_id is repeated within the scope of the same socket_id.
a41c76
a41c76
It now reports
a41c76
a41c76
 <cpus num='12'>
a41c76
   <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
a41c76
   <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
a41c76
   <cpu id='2' socket_id='0' die_id='1' core_id='0' siblings='2'/>
a41c76
   <cpu id='3' socket_id='0' die_id='1' core_id='1' siblings='3'/>
a41c76
 </cpus>
a41c76
a41c76
So core_id is now unique within a (socket_id, die_id) pair.
a41c76
a41c76
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
a41c76
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
a41c76
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
a41c76
(cherry picked from commit 7b79ee2f78bbf2af76df2f6466919e19ae05aeeb)
a41c76
a41c76
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1785211
a41c76
Message-Id: <20200203180726.2203691-5-berrange@redhat.com>
a41c76
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
a41c76
---
a41c76
 docs/schemas/capability.rng                   |  3 ++
a41c76
 src/conf/capabilities.c                       |  5 ++-
a41c76
 src/conf/capabilities.h                       |  1 +
a41c76
 src/libvirt_linux.syms                        |  1 +
a41c76
 src/util/virhostcpu.c                         | 16 ++++++++++
a41c76
 src/util/virhostcpu.h                         |  1 +
a41c76
 .../vircaps2xmldata/vircaps-aarch64-basic.xml | 32 +++++++++----------
a41c76
 .../vircaps2xmldata/vircaps-x86_64-basic.xml  | 32 +++++++++----------
a41c76
 .../vircaps2xmldata/vircaps-x86_64-caches.xml | 16 +++++-----
a41c76
 .../vircaps-x86_64-resctrl-cdp.xml            | 24 +++++++-------
a41c76
 .../vircaps-x86_64-resctrl-cmt.xml            | 24 +++++++-------
a41c76
 .../vircaps-x86_64-resctrl-fake-feature.xml   | 24 +++++++-------
a41c76
 .../vircaps-x86_64-resctrl-skx-twocaches.xml  |  2 +-
a41c76
 .../vircaps-x86_64-resctrl-skx.xml            |  2 +-
a41c76
 .../vircaps-x86_64-resctrl.xml                | 24 +++++++-------
a41c76
 15 files changed, 116 insertions(+), 91 deletions(-)
a41c76
a41c76
diff --git a/docs/schemas/capability.rng b/docs/schemas/capability.rng
a41c76
index 91ee523116..031c55bf20 100644
a41c76
--- a/docs/schemas/capability.rng
a41c76
+++ b/docs/schemas/capability.rng
a41c76
@@ -265,6 +265,9 @@
a41c76
         <attribute name='socket_id'>
a41c76
           <ref name='unsignedInt'/>
a41c76
         </attribute>
a41c76
+        <attribute name='die_id'>
a41c76
+          <ref name='unsignedInt'/>
a41c76
+        </attribute>
a41c76
         <attribute name='core_id'>
a41c76
           <ref name='unsignedInt'/>
a41c76
         </attribute>
a41c76
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c
a41c76
index bf1d9936ed..4bbc79334e 100644
a41c76
--- a/src/conf/capabilities.c
a41c76
+++ b/src/conf/capabilities.c
a41c76
@@ -874,8 +874,9 @@ virCapabilitiesHostNUMAFormat(virCapsHostNUMAPtr caps,
a41c76
                     return -1;
a41c76
 
a41c76
                 virBufferAsprintf(buf,
a41c76
-                                  " socket_id='%d' core_id='%d' siblings='%s'",
a41c76
+                                  " socket_id='%d' die_id='%d' core_id='%d' siblings='%s'",
a41c76
                                   cell->cpus[j].socket_id,
a41c76
+                                  cell->cpus[j].die_id,
a41c76
                                   cell->cpus[j].core_id,
a41c76
                                   siblings);
a41c76
                 VIR_FREE(siblings);
a41c76
@@ -1463,6 +1464,7 @@ virCapabilitiesFillCPUInfo(int cpu_id G_GNUC_UNUSED,
a41c76
     cpu->id = cpu_id;
a41c76
 
a41c76
     if (virHostCPUGetSocket(cpu_id, &cpu->socket_id) < 0 ||
a41c76
+        virHostCPUGetDie(cpu_id, &cpu->die_id) < 0 ||
a41c76
         virHostCPUGetCore(cpu_id, &cpu->core_id) < 0)
a41c76
         return -1;
a41c76
 
a41c76
@@ -1591,6 +1593,7 @@ virCapabilitiesHostNUMAInitFake(virCapsHostNUMAPtr caps)
a41c76
                         goto error;
a41c76
                     if (tmp) {
a41c76
                         cpus[cid].id = id;
a41c76
+                        cpus[cid].die_id = 0;
a41c76
                         cpus[cid].socket_id = s;
a41c76
                         cpus[cid].core_id = c;
a41c76
                         if (!(cpus[cid].siblings = virBitmapNew(ncpus)))
a41c76
diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h
a41c76
index 4a49e94aa5..75f29666c9 100644
a41c76
--- a/src/conf/capabilities.h
a41c76
+++ b/src/conf/capabilities.h
a41c76
@@ -88,6 +88,7 @@ struct _virCapsGuest {
a41c76
 struct _virCapsHostNUMACellCPU {
a41c76
     unsigned int id;
a41c76
     unsigned int socket_id;
a41c76
+    unsigned int die_id;
a41c76
     unsigned int core_id;
a41c76
     virBitmapPtr siblings;
a41c76
 };
a41c76
diff --git a/src/libvirt_linux.syms b/src/libvirt_linux.syms
a41c76
index 5fa2c790ef..55649ae39c 100644
a41c76
--- a/src/libvirt_linux.syms
a41c76
+++ b/src/libvirt_linux.syms
a41c76
@@ -4,6 +4,7 @@
a41c76
 
a41c76
 # util/virhostcpu.h
a41c76
 virHostCPUGetCore;
a41c76
+virHostCPUGetDie;
a41c76
 virHostCPUGetInfoPopulateLinux;
a41c76
 virHostCPUGetSiblingsList;
a41c76
 virHostCPUGetSocket;
a41c76
diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c
a41c76
index 256976cce1..09c959cd25 100644
a41c76
--- a/src/util/virhostcpu.c
a41c76
+++ b/src/util/virhostcpu.c
a41c76
@@ -218,6 +218,22 @@ virHostCPUGetSocket(unsigned int cpu, unsigned int *socket)
a41c76
     return 0;
a41c76
 }
a41c76
 
a41c76
+int
a41c76
+virHostCPUGetDie(unsigned int cpu, unsigned int *die)
a41c76
+{
a41c76
+    int ret = virFileReadValueUint(die,
a41c76
+                                   "%s/cpu/cpu%u/topology/die_id",
a41c76
+                                   SYSFS_SYSTEM_PATH, cpu);
a41c76
+
a41c76
+    /* If the file is not there, it's 0 */
a41c76
+    if (ret == -2)
a41c76
+        *die = 0;
a41c76
+    else if (ret < 0)
a41c76
+        return -1;
a41c76
+
a41c76
+    return 0;
a41c76
+}
a41c76
+
a41c76
 int
a41c76
 virHostCPUGetCore(unsigned int cpu, unsigned int *core)
a41c76
 {
a41c76
diff --git a/src/util/virhostcpu.h b/src/util/virhostcpu.h
a41c76
index d95d380d4a..9be2e51a38 100644
a41c76
--- a/src/util/virhostcpu.h
a41c76
+++ b/src/util/virhostcpu.h
a41c76
@@ -65,6 +65,7 @@ int virHostCPUStatsAssign(virNodeCPUStatsPtr param,
a41c76
 
a41c76
 #ifdef __linux__
a41c76
 int virHostCPUGetSocket(unsigned int cpu, unsigned int *socket);
a41c76
+int virHostCPUGetDie(unsigned int cpu, unsigned int *die);
a41c76
 int virHostCPUGetCore(unsigned int cpu, unsigned int *core);
a41c76
 
a41c76
 virBitmapPtr virHostCPUGetSiblingsList(unsigned int cpu);
a41c76
diff --git a/tests/vircaps2xmldata/vircaps-aarch64-basic.xml b/tests/vircaps2xmldata/vircaps-aarch64-basic.xml
a41c76
index 50466f9162..0a04052c40 100644
a41c76
--- a/tests/vircaps2xmldata/vircaps-aarch64-basic.xml
a41c76
+++ b/tests/vircaps2xmldata/vircaps-aarch64-basic.xml
a41c76
@@ -16,10 +16,10 @@
a41c76
           <pages unit='KiB' size='2048'>4096</pages>
a41c76
           <pages unit='KiB' size='1048576'>6144</pages>
a41c76
           <cpus num='4'>
a41c76
-            <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
a41c76
-            <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
a41c76
-            <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
a41c76
-            <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
a41c76
+            <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
a41c76
+            <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
a41c76
+            <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
a41c76
+            <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
         <cell id='1'>
a41c76
@@ -28,10 +28,10 @@
a41c76
           <pages unit='KiB' size='2048'>6144</pages>
a41c76
           <pages unit='KiB' size='1048576'>8192</pages>
a41c76
           <cpus num='4'>
a41c76
-            <cpu id='4' socket_id='1' core_id='4' siblings='4'/>
a41c76
-            <cpu id='5' socket_id='1' core_id='5' siblings='5'/>
a41c76
-            <cpu id='6' socket_id='1' core_id='6' siblings='6'/>
a41c76
-            <cpu id='7' socket_id='1' core_id='7' siblings='7'/>
a41c76
+            <cpu id='4' socket_id='1' die_id='0' core_id='4' siblings='4'/>
a41c76
+            <cpu id='5' socket_id='1' die_id='0' core_id='5' siblings='5'/>
a41c76
+            <cpu id='6' socket_id='1' die_id='0' core_id='6' siblings='6'/>
a41c76
+            <cpu id='7' socket_id='1' die_id='0' core_id='7' siblings='7'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
         <cell id='2'>
a41c76
@@ -40,10 +40,10 @@
a41c76
           <pages unit='KiB' size='2048'>8192</pages>
a41c76
           <pages unit='KiB' size='1048576'>10240</pages>
a41c76
           <cpus num='4'>
a41c76
-            <cpu id='8' socket_id='2' core_id='8' siblings='8'/>
a41c76
-            <cpu id='9' socket_id='2' core_id='9' siblings='9'/>
a41c76
-            <cpu id='10' socket_id='2' core_id='10' siblings='10'/>
a41c76
-            <cpu id='11' socket_id='2' core_id='11' siblings='11'/>
a41c76
+            <cpu id='8' socket_id='2' die_id='0' core_id='8' siblings='8'/>
a41c76
+            <cpu id='9' socket_id='2' die_id='0' core_id='9' siblings='9'/>
a41c76
+            <cpu id='10' socket_id='2' die_id='0' core_id='10' siblings='10'/>
a41c76
+            <cpu id='11' socket_id='2' die_id='0' core_id='11' siblings='11'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
         <cell id='3'>
a41c76
@@ -52,10 +52,10 @@
a41c76
           <pages unit='KiB' size='2048'>10240</pages>
a41c76
           <pages unit='KiB' size='1048576'>12288</pages>
a41c76
           <cpus num='4'>
a41c76
-            <cpu id='12' socket_id='3' core_id='12' siblings='12'/>
a41c76
-            <cpu id='13' socket_id='3' core_id='13' siblings='13'/>
a41c76
-            <cpu id='14' socket_id='3' core_id='14' siblings='14'/>
a41c76
-            <cpu id='15' socket_id='3' core_id='15' siblings='15'/>
a41c76
+            <cpu id='12' socket_id='3' die_id='0' core_id='12' siblings='12'/>
a41c76
+            <cpu id='13' socket_id='3' die_id='0' core_id='13' siblings='13'/>
a41c76
+            <cpu id='14' socket_id='3' die_id='0' core_id='14' siblings='14'/>
a41c76
+            <cpu id='15' socket_id='3' die_id='0' core_id='15' siblings='15'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
       </cells>
a41c76
diff --git a/tests/vircaps2xmldata/vircaps-x86_64-basic.xml b/tests/vircaps2xmldata/vircaps-x86_64-basic.xml
a41c76
index e7be6def3e..4da09f889c 100644
a41c76
--- a/tests/vircaps2xmldata/vircaps-x86_64-basic.xml
a41c76
+++ b/tests/vircaps2xmldata/vircaps-x86_64-basic.xml
a41c76
@@ -14,10 +14,10 @@
a41c76
           <pages unit='KiB' size='2048'>4096</pages>
a41c76
           <pages unit='KiB' size='1048576'>6144</pages>
a41c76
           <cpus num='4'>
a41c76
-            <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
a41c76
-            <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
a41c76
-            <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
a41c76
-            <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
a41c76
+            <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
a41c76
+            <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
a41c76
+            <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
a41c76
+            <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
         <cell id='1'>
a41c76
@@ -26,10 +26,10 @@
a41c76
           <pages unit='KiB' size='2048'>6144</pages>
a41c76
           <pages unit='KiB' size='1048576'>8192</pages>
a41c76
           <cpus num='4'>
a41c76
-            <cpu id='4' socket_id='1' core_id='4' siblings='4'/>
a41c76
-            <cpu id='5' socket_id='1' core_id='5' siblings='5'/>
a41c76
-            <cpu id='6' socket_id='1' core_id='6' siblings='6'/>
a41c76
-            <cpu id='7' socket_id='1' core_id='7' siblings='7'/>
a41c76
+            <cpu id='4' socket_id='1' die_id='0' core_id='4' siblings='4'/>
a41c76
+            <cpu id='5' socket_id='1' die_id='0' core_id='5' siblings='5'/>
a41c76
+            <cpu id='6' socket_id='1' die_id='0' core_id='6' siblings='6'/>
a41c76
+            <cpu id='7' socket_id='1' die_id='0' core_id='7' siblings='7'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
         <cell id='2'>
a41c76
@@ -38,10 +38,10 @@
a41c76
           <pages unit='KiB' size='2048'>8192</pages>
a41c76
           <pages unit='KiB' size='1048576'>10240</pages>
a41c76
           <cpus num='4'>
a41c76
-            <cpu id='8' socket_id='2' core_id='8' siblings='8'/>
a41c76
-            <cpu id='9' socket_id='2' core_id='9' siblings='9'/>
a41c76
-            <cpu id='10' socket_id='2' core_id='10' siblings='10'/>
a41c76
-            <cpu id='11' socket_id='2' core_id='11' siblings='11'/>
a41c76
+            <cpu id='8' socket_id='2' die_id='0' core_id='8' siblings='8'/>
a41c76
+            <cpu id='9' socket_id='2' die_id='0' core_id='9' siblings='9'/>
a41c76
+            <cpu id='10' socket_id='2' die_id='0' core_id='10' siblings='10'/>
a41c76
+            <cpu id='11' socket_id='2' die_id='0' core_id='11' siblings='11'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
         <cell id='3'>
a41c76
@@ -50,10 +50,10 @@
a41c76
           <pages unit='KiB' size='2048'>10240</pages>
a41c76
           <pages unit='KiB' size='1048576'>12288</pages>
a41c76
           <cpus num='4'>
a41c76
-            <cpu id='12' socket_id='3' core_id='12' siblings='12'/>
a41c76
-            <cpu id='13' socket_id='3' core_id='13' siblings='13'/>
a41c76
-            <cpu id='14' socket_id='3' core_id='14' siblings='14'/>
a41c76
-            <cpu id='15' socket_id='3' core_id='15' siblings='15'/>
a41c76
+            <cpu id='12' socket_id='3' die_id='0' core_id='12' siblings='12'/>
a41c76
+            <cpu id='13' socket_id='3' die_id='0' core_id='13' siblings='13'/>
a41c76
+            <cpu id='14' socket_id='3' die_id='0' core_id='14' siblings='14'/>
a41c76
+            <cpu id='15' socket_id='3' die_id='0' core_id='15' siblings='15'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
       </cells>
a41c76
diff --git a/tests/vircaps2xmldata/vircaps-x86_64-caches.xml b/tests/vircaps2xmldata/vircaps-x86_64-caches.xml
a41c76
index ca671a1640..28f00c0a90 100644
a41c76
--- a/tests/vircaps2xmldata/vircaps-x86_64-caches.xml
a41c76
+++ b/tests/vircaps2xmldata/vircaps-x86_64-caches.xml
a41c76
@@ -17,14 +17,14 @@
a41c76
           <pages unit='KiB' size='2048'>4096</pages>
a41c76
           <pages unit='KiB' size='1048576'>6144</pages>
a41c76
           <cpus num='8'>
a41c76
-            <cpu id='0' socket_id='0' core_id='0' siblings='0,4'/>
a41c76
-            <cpu id='1' socket_id='0' core_id='1' siblings='1,5'/>
a41c76
-            <cpu id='2' socket_id='0' core_id='2' siblings='2,6'/>
a41c76
-            <cpu id='3' socket_id='0' core_id='3' siblings='3,7'/>
a41c76
-            <cpu id='4' socket_id='0' core_id='0' siblings='0,4'/>
a41c76
-            <cpu id='5' socket_id='0' core_id='1' siblings='1,5'/>
a41c76
-            <cpu id='6' socket_id='0' core_id='2' siblings='2,6'/>
a41c76
-            <cpu id='7' socket_id='0' core_id='3' siblings='3,7'/>
a41c76
+            <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0,4'/>
a41c76
+            <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1,5'/>
a41c76
+            <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2,6'/>
a41c76
+            <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3,7'/>
a41c76
+            <cpu id='4' socket_id='0' die_id='0' core_id='0' siblings='0,4'/>
a41c76
+            <cpu id='5' socket_id='0' die_id='0' core_id='1' siblings='1,5'/>
a41c76
+            <cpu id='6' socket_id='0' die_id='0' core_id='2' siblings='2,6'/>
a41c76
+            <cpu id='7' socket_id='0' die_id='0' core_id='3' siblings='3,7'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
       </cells>
a41c76
diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml
a41c76
index 1d3df318c5..ee26fe9464 100644
a41c76
--- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml
a41c76
+++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml
a41c76
@@ -17,12 +17,12 @@
a41c76
           <pages unit='KiB' size='2048'>4096</pages>
a41c76
           <pages unit='KiB' size='1048576'>6144</pages>
a41c76
           <cpus num='6'>
a41c76
-            <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
a41c76
-            <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
a41c76
-            <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
a41c76
-            <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
a41c76
-            <cpu id='4' socket_id='0' core_id='4' siblings='4'/>
a41c76
-            <cpu id='5' socket_id='0' core_id='5' siblings='5'/>
a41c76
+            <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
a41c76
+            <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
a41c76
+            <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
a41c76
+            <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
a41c76
+            <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/>
a41c76
+            <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
         <cell id='1'>
a41c76
@@ -31,12 +31,12 @@
a41c76
           <pages unit='KiB' size='2048'>6144</pages>
a41c76
           <pages unit='KiB' size='1048576'>8192</pages>
a41c76
           <cpus num='6'>
a41c76
-            <cpu id='6' socket_id='1' core_id='0' siblings='6'/>
a41c76
-            <cpu id='7' socket_id='1' core_id='1' siblings='7'/>
a41c76
-            <cpu id='8' socket_id='1' core_id='2' siblings='8'/>
a41c76
-            <cpu id='9' socket_id='1' core_id='3' siblings='9'/>
a41c76
-            <cpu id='10' socket_id='1' core_id='4' siblings='10'/>
a41c76
-            <cpu id='11' socket_id='1' core_id='5' siblings='11'/>
a41c76
+            <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/>
a41c76
+            <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/>
a41c76
+            <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/>
a41c76
+            <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/>
a41c76
+            <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/>
a41c76
+            <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
       </cells>
a41c76
diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml
a41c76
index 6a8cd0e909..acdd97ec58 100644
a41c76
--- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml
a41c76
+++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml
a41c76
@@ -17,12 +17,12 @@
a41c76
           <pages unit='KiB' size='2048'>4096</pages>
a41c76
           <pages unit='KiB' size='1048576'>6144</pages>
a41c76
           <cpus num='6'>
a41c76
-            <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
a41c76
-            <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
a41c76
-            <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
a41c76
-            <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
a41c76
-            <cpu id='4' socket_id='0' core_id='4' siblings='4'/>
a41c76
-            <cpu id='5' socket_id='0' core_id='5' siblings='5'/>
a41c76
+            <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
a41c76
+            <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
a41c76
+            <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
a41c76
+            <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
a41c76
+            <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/>
a41c76
+            <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
         <cell id='1'>
a41c76
@@ -31,12 +31,12 @@
a41c76
           <pages unit='KiB' size='2048'>6144</pages>
a41c76
           <pages unit='KiB' size='1048576'>8192</pages>
a41c76
           <cpus num='6'>
a41c76
-            <cpu id='6' socket_id='1' core_id='0' siblings='6'/>
a41c76
-            <cpu id='7' socket_id='1' core_id='1' siblings='7'/>
a41c76
-            <cpu id='8' socket_id='1' core_id='2' siblings='8'/>
a41c76
-            <cpu id='9' socket_id='1' core_id='3' siblings='9'/>
a41c76
-            <cpu id='10' socket_id='1' core_id='4' siblings='10'/>
a41c76
-            <cpu id='11' socket_id='1' core_id='5' siblings='11'/>
a41c76
+            <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/>
a41c76
+            <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/>
a41c76
+            <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/>
a41c76
+            <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/>
a41c76
+            <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/>
a41c76
+            <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
       </cells>
a41c76
diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml
a41c76
index 4e46ead616..5f3678e072 100644
a41c76
--- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml
a41c76
+++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml
a41c76
@@ -17,12 +17,12 @@
a41c76
           <pages unit='KiB' size='2048'>4096</pages>
a41c76
           <pages unit='KiB' size='1048576'>6144</pages>
a41c76
           <cpus num='6'>
a41c76
-            <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
a41c76
-            <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
a41c76
-            <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
a41c76
-            <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
a41c76
-            <cpu id='4' socket_id='0' core_id='4' siblings='4'/>
a41c76
-            <cpu id='5' socket_id='0' core_id='5' siblings='5'/>
a41c76
+            <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
a41c76
+            <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
a41c76
+            <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
a41c76
+            <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
a41c76
+            <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/>
a41c76
+            <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
         <cell id='1'>
a41c76
@@ -31,12 +31,12 @@
a41c76
           <pages unit='KiB' size='2048'>6144</pages>
a41c76
           <pages unit='KiB' size='1048576'>8192</pages>
a41c76
           <cpus num='6'>
a41c76
-            <cpu id='6' socket_id='1' core_id='0' siblings='6'/>
a41c76
-            <cpu id='7' socket_id='1' core_id='1' siblings='7'/>
a41c76
-            <cpu id='8' socket_id='1' core_id='2' siblings='8'/>
a41c76
-            <cpu id='9' socket_id='1' core_id='3' siblings='9'/>
a41c76
-            <cpu id='10' socket_id='1' core_id='4' siblings='10'/>
a41c76
-            <cpu id='11' socket_id='1' core_id='5' siblings='11'/>
a41c76
+            <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/>
a41c76
+            <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/>
a41c76
+            <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/>
a41c76
+            <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/>
a41c76
+            <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/>
a41c76
+            <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
       </cells>
a41c76
diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml
a41c76
index 44c1042afe..6769bd0591 100644
a41c76
--- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml
a41c76
+++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml
a41c76
@@ -17,7 +17,7 @@
a41c76
           <pages unit='KiB' size='2048'>4096</pages>
a41c76
           <pages unit='KiB' size='1048576'>6144</pages>
a41c76
           <cpus num='1'>
a41c76
-            <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
a41c76
+            <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
       </cells>
a41c76
diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml
a41c76
index 8382a26c7a..bc52480905 100644
a41c76
--- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml
a41c76
+++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml
a41c76
@@ -17,7 +17,7 @@
a41c76
           <pages unit='KiB' size='2048'>4096</pages>
a41c76
           <pages unit='KiB' size='1048576'>6144</pages>
a41c76
           <cpus num='1'>
a41c76
-            <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
a41c76
+            <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
       </cells>
a41c76
diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml
a41c76
index a27b3e247e..c386edd4b0 100644
a41c76
--- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml
a41c76
+++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml
a41c76
@@ -17,12 +17,12 @@
a41c76
           <pages unit='KiB' size='2048'>4096</pages>
a41c76
           <pages unit='KiB' size='1048576'>6144</pages>
a41c76
           <cpus num='6'>
a41c76
-            <cpu id='0' socket_id='0' core_id='0' siblings='0'/>
a41c76
-            <cpu id='1' socket_id='0' core_id='1' siblings='1'/>
a41c76
-            <cpu id='2' socket_id='0' core_id='2' siblings='2'/>
a41c76
-            <cpu id='3' socket_id='0' core_id='3' siblings='3'/>
a41c76
-            <cpu id='4' socket_id='0' core_id='4' siblings='4'/>
a41c76
-            <cpu id='5' socket_id='0' core_id='5' siblings='5'/>
a41c76
+            <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/>
a41c76
+            <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/>
a41c76
+            <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/>
a41c76
+            <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/>
a41c76
+            <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/>
a41c76
+            <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
         <cell id='1'>
a41c76
@@ -31,12 +31,12 @@
a41c76
           <pages unit='KiB' size='2048'>6144</pages>
a41c76
           <pages unit='KiB' size='1048576'>8192</pages>
a41c76
           <cpus num='6'>
a41c76
-            <cpu id='6' socket_id='1' core_id='0' siblings='6'/>
a41c76
-            <cpu id='7' socket_id='1' core_id='1' siblings='7'/>
a41c76
-            <cpu id='8' socket_id='1' core_id='2' siblings='8'/>
a41c76
-            <cpu id='9' socket_id='1' core_id='3' siblings='9'/>
a41c76
-            <cpu id='10' socket_id='1' core_id='4' siblings='10'/>
a41c76
-            <cpu id='11' socket_id='1' core_id='5' siblings='11'/>
a41c76
+            <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/>
a41c76
+            <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/>
a41c76
+            <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/>
a41c76
+            <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/>
a41c76
+            <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/>
a41c76
+            <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/>
a41c76
           </cpus>
a41c76
         </cell>
a41c76
       </cells>
a41c76
-- 
a41c76
2.25.0
a41c76