<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 8, 2023 at 12:16 PM Michal Privoznik <<a href="mailto:mprivozn@redhat.com">mprivozn@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Introduce a mock of virNumaGetNodeOfCPU() because soon we will<br>
need virNumaCPUSetToNodeset() to return predictable results.<br>
Also, fill in missing symlinks in vircaps2xmldata/.<br>
<br>
Signed-off-by: Michal Privoznik <<a href="mailto:mprivozn@redhat.com" target="_blank">mprivozn@redhat.com</a>><br>
---<br>
 src/util/virnuma.h                            |  2 +-<br>
 .../linux-basic/system/cpu/cpu0/node0         |  1 +<br>
 .../linux-basic/system/cpu/cpu1/node0         |  1 +<br>
 .../linux-basic/system/cpu/cpu10/node2        |  1 +<br>
 .../linux-basic/system/cpu/cpu11/node2        |  1 +<br>
 .../linux-basic/system/cpu/cpu12/node3        |  1 +<br>
 .../linux-basic/system/cpu/cpu13/node3        |  1 +<br>
 .../linux-basic/system/cpu/cpu14/node3        |  1 +<br>
 .../linux-basic/system/cpu/cpu15/node3        |  1 +<br>
 .../linux-basic/system/cpu/cpu2/node0         |  1 +<br>
 .../linux-basic/system/cpu/cpu3/node0         |  1 +<br>
 .../linux-basic/system/cpu/cpu4/node1         |  1 +<br>
 .../linux-basic/system/cpu/cpu5/node1         |  1 +<br>
 .../linux-basic/system/cpu/cpu6/node1         |  1 +<br>
 .../linux-basic/system/cpu/cpu7/node1         |  1 +<br>
 .../linux-basic/system/cpu/cpu8/node2         |  1 +<br>
 .../linux-basic/system/cpu/cpu9/node2         |  1 +<br>
 .../linux-caches/system/cpu/cpu0/node0        |  1 +<br>
 .../linux-caches/system/cpu/cpu1/node0        |  1 +<br>
 .../linux-caches/system/cpu/cpu2/node0        |  1 +<br>
 .../linux-caches/system/cpu/cpu3/node0        |  1 +<br>
 .../linux-caches/system/cpu/cpu4/node0        |  1 +<br>
 .../linux-caches/system/cpu/cpu5/node0        |  1 +<br>
 .../linux-caches/system/cpu/cpu6/node0        |  1 +<br>
 .../linux-caches/system/cpu/cpu7/node0        |  1 +<br>
 .../system/cpu/cpu0/node0                     |  1 +<br>
 .../linux-resctrl/system/cpu/cpu0/node0       |  1 +<br>
 .../linux-resctrl/system/cpu/cpu1/node0       |  1 +<br>
 .../linux-resctrl/system/cpu/cpu10/node1      |  1 +<br>
 .../linux-resctrl/system/cpu/cpu11/node1      |  1 +<br>
 .../linux-resctrl/system/cpu/cpu2/node0       |  1 +<br>
 .../linux-resctrl/system/cpu/cpu3/node0       |  1 +<br>
 .../linux-resctrl/system/cpu/cpu4/node0       |  1 +<br>
 .../linux-resctrl/system/cpu/cpu5/node0       |  1 +<br>
 .../linux-resctrl/system/cpu/cpu6/node1       |  1 +<br>
 .../linux-resctrl/system/cpu/cpu7/node1       |  1 +<br>
 .../linux-resctrl/system/cpu/cpu8/node1       |  1 +<br>
 .../linux-resctrl/system/cpu/cpu9/node1       |  1 +<br>
 tests/virnumamock.c                           | 42 +++++++++++++++++++<br>
 39 files changed, 80 insertions(+), 1 deletion(-)<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu0/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu1/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu10/node2<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu11/node2<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu12/node3<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu13/node3<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu14/node3<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu15/node3<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu2/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu3/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu4/node1<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu5/node1<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu6/node1<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu7/node1<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu8/node2<br>
 create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu9/node2<br>
 create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu0/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu1/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu2/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu3/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu4/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu5/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu6/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu7/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl-skx-twocaches/system/cpu/cpu0/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/node1<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/node1<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/node0<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/node1<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/node1<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/node1<br>
 create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/node1<br>
<br>
diff --git a/src/util/virnuma.h b/src/util/virnuma.h<br>
index 67e699f2cf..21b3efee6d 100644<br>
--- a/src/util/virnuma.h<br>
+++ b/src/util/virnuma.h<br>
@@ -45,7 +45,7 @@ int virNumaGetNodeMemory(int node,<br>
<br>
 unsigned int virNumaGetMaxCPUs(void) G_NO_INLINE;<br>
<br>
-int virNumaGetNodeOfCPU(int cpu);<br>
+int virNumaGetNodeOfCPU(int cpu) G_NO_INLINE;<br>
 int virNumaGetNodeCPUs(int node, virBitmap **cpus) G_NO_INLINE;<br>
 int virNumaCPUSetToNodeset(virBitmap **nodeset,<br>
                            virBitmap *cpuset);<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu0/node0 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu0/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu0/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu1/node0 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu1/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu1/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu10/node2 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu10/node2<br>
new file mode 120000<br>
index 0000000000..e04af16eeb<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu10/node2<br>
@@ -0,0 +1 @@<br>
+../../node/node2<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu11/node2 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu11/node2<br>
new file mode 120000<br>
index 0000000000..e04af16eeb<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu11/node2<br>
@@ -0,0 +1 @@<br>
+../../node/node2<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu12/node3 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu12/node3<br>
new file mode 120000<br>
index 0000000000..f213d662fe<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu12/node3<br>
@@ -0,0 +1 @@<br>
+../../node/node3<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu13/node3 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu13/node3<br>
new file mode 120000<br>
index 0000000000..f213d662fe<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu13/node3<br>
@@ -0,0 +1 @@<br>
+../../node/node3<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu14/node3 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu14/node3<br>
new file mode 120000<br>
index 0000000000..f213d662fe<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu14/node3<br>
@@ -0,0 +1 @@<br>
+../../node/node3<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu15/node3 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu15/node3<br>
new file mode 120000<br>
index 0000000000..f213d662fe<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu15/node3<br>
@@ -0,0 +1 @@<br>
+../../node/node3<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu2/node0 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu2/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu2/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu3/node0 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu3/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu3/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu4/node1 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu4/node1<br>
new file mode 120000<br>
index 0000000000..1f9c101cd1<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu4/node1<br>
@@ -0,0 +1 @@<br>
+../../node/node1<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu5/node1 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu5/node1<br>
new file mode 120000<br>
index 0000000000..1f9c101cd1<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu5/node1<br>
@@ -0,0 +1 @@<br>
+../../node/node1<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu6/node1 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu6/node1<br>
new file mode 120000<br>
index 0000000000..1f9c101cd1<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu6/node1<br>
@@ -0,0 +1 @@<br>
+../../node/node1<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu7/node1 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu7/node1<br>
new file mode 120000<br>
index 0000000000..1f9c101cd1<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu7/node1<br>
@@ -0,0 +1 @@<br>
+../../node/node1<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu8/node2 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu8/node2<br>
new file mode 120000<br>
index 0000000000..e04af16eeb<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu8/node2<br>
@@ -0,0 +1 @@<br>
+../../node/node2<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-basic/system/cpu/cpu9/node2 b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu9/node2<br>
new file mode 120000<br>
index 0000000000..e04af16eeb<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-basic/system/cpu/cpu9/node2<br>
@@ -0,0 +1 @@<br>
+../../node/node2<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-caches/system/cpu/cpu0/node0 b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu0/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu0/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-caches/system/cpu/cpu1/node0 b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu1/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu1/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-caches/system/cpu/cpu2/node0 b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu2/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu2/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-caches/system/cpu/cpu3/node0 b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu3/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu3/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-caches/system/cpu/cpu4/node0 b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu4/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu4/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-caches/system/cpu/cpu5/node0 b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu5/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu5/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-caches/system/cpu/cpu6/node0 b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu6/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu6/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-caches/system/cpu/cpu7/node0 b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu7/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-caches/system/cpu/cpu7/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl-skx-twocaches/system/cpu/cpu0/node0 b/tests/vircaps2xmldata/linux-resctrl-skx-twocaches/system/cpu/cpu0/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl-skx-twocaches/system/cpu/cpu0/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/node0 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/node0 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/node1 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/node1<br>
new file mode 120000<br>
index 0000000000..1f9c101cd1<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/node1<br>
@@ -0,0 +1 @@<br>
+../../node/node1<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/node1 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/node1<br>
new file mode 120000<br>
index 0000000000..1f9c101cd1<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/node1<br>
@@ -0,0 +1 @@<br>
+../../node/node1<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/node0 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/node0 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/node0 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/node0 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/node0<br>
new file mode 120000<br>
index 0000000000..222b6af326<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/node0<br>
@@ -0,0 +1 @@<br>
+../../node/node0<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/node1 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/node1<br>
new file mode 120000<br>
index 0000000000..1f9c101cd1<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/node1<br>
@@ -0,0 +1 @@<br>
+../../node/node1<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/node1 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/node1<br>
new file mode 120000<br>
index 0000000000..1f9c101cd1<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/node1<br>
@@ -0,0 +1 @@<br>
+../../node/node1<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/node1 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/node1<br>
new file mode 120000<br>
index 0000000000..1f9c101cd1<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/node1<br>
@@ -0,0 +1 @@<br>
+../../node/node1<br>
\ No newline at end of file<br>
diff --git a/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/node1 b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/node1<br>
new file mode 120000<br>
index 0000000000..1f9c101cd1<br>
--- /dev/null<br>
+++ b/tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/node1<br>
@@ -0,0 +1 @@<br>
+../../node/node1<br>
\ No newline at end of file<br>
diff --git a/tests/virnumamock.c b/tests/virnumamock.c<br>
index 87c9a58c6f..8d5c862fa2 100644<br>
--- a/tests/virnumamock.c<br>
+++ b/tests/virnumamock.c<br>
@@ -21,6 +21,7 @@<br>
 #include "internal.h"<br>
 #include "virnuma.h"<br>
 #include "virfile.h"<br>
+#include "virstring.h"<br>
<br>
 #define VIR_FROM_THIS VIR_FROM_NONE<br>
<br>
@@ -171,3 +172,44 @@ virNumaGetNodeCPUs(int node, virBitmap **cpus)<br>
<br>
     return virBitmapCountBits(*cpus);<br>
 }<br>
+<br>
+int<br>
+virNumaGetNodeOfCPU(int cpu)<br>
+{<br>
+    g_autoptr(DIR) cpuDir = NULL;<br>
+    g_autofree char *sysfs_cpu_path = NULL;<br>
+    struct dirent *ent = NULL;<br>
+    int dirErr = 0;<br></blockquote><div><br></div><div>I would prefer naming this variable as 'rc',</div><div>but that's just my preference.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
+<br>
+    sysfs_cpu_path =  g_strdup_printf("%s/cpu/cpu%d", SYSFS_SYSTEM_PATH, cpu);<br>
+<br>
+    if (virDirOpen(&cpuDir, sysfs_cpu_path) < 0)<br>
+        return -1;<br>
+<br>
+    while ((dirErr = virDirRead(cpuDir, &ent, sysfs_cpu_path)) > 0) {<br>
+        g_autofree char *entPath = NULL;<br>
+        const char *number = NULL;<br>
+        int node;<br>
+<br>
+        if (!(number = STRSKIP(ent->d_name, "node")))<br>
+            continue;<br>
+<br>
+        entPath = g_strdup_printf("%s/%s", sysfs_cpu_path, ent->d_name);<br>
+<br>
+        if (!virFileIsLink(entPath))<br>
+            continue;<br>
+<br>
+        if (virStrToLong_i(number, NULL, 10, &node) < 0) {<br>
+            errno = EINVAL;<br>
+            return -1;<br>
+        }<br>
+<br>
+        return node;<br>
+    }<br>
+<br>
+    if (dirErr < 0)<br>
+        return -1;<br>
+<br>
+    errno = EINVAL;<br>
+    return -1;<br>
+}<br>
-- <br>
2.39.2<br>
<br></blockquote><div><br></div><div><br></div><div><div>Reviewed-by: Kristina Hanicova <<a href="mailto:khanicov@redhat.com" target="_blank">khanicov@redhat.com</a>> <br></div><font style="--darkreader-inline-color: #b2a696;" color="#888888"><font style="--darkreader-inline-color: #b2a696;" color="#888888"><div><br></div><div>Kristina</div></font></font> <br></div></div></div>