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