From e38b0df00341f727336c27fc6f5c27186f86cf19 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Fri, 5 Jan 2024 15:07:06 +0100 Subject: [PATCH 1/9] tests: Add hostcpudata for machine with CPU clusters commit fb81a56f321019685be80b14e3be3046e46412ad upstream. The data is taken from an HPE Apollo 70 machine, which uses aarch64 CPUs. It is interesting for us because non-dummy information about CPU clusters is exposed through sysfs. In order to keep things reasonable, the data was manually modified so that only 8 of the original 224 CPUs are included. Care has been taken to ensure that the topology is otherwise unaltered. Signed-off-by: Andrea Bolognani Reviewed-by: Peter Krempa Signed-off-by: zhangxinghao --- .../linux-basic-clusters/system/cpu | 1 + .../linux-basic-clusters/system/node | 1 + .../vircaps-aarch64-basic-clusters.xml | 39 ++++++++++ tests/vircaps2xmltest.c | 1 + .../linux-aarch64-with-clusters.cpuinfo | 72 +++++++++++++++++++ .../linux-aarch64-with-clusters.expected | 1 + .../cpu/cpu0/topology/cluster_cpus_list | 1 + .../cpu/cpu0/topology/cluster_id | 1 + .../cpu/cpu0/topology/core_cpus_list | 1 + .../cpu/cpu0/topology/core_id | 1 + .../cpu/cpu0/topology/core_siblings_list | 1 + .../cpu/cpu0/topology/package_cpus_list | 1 + .../cpu/cpu0/topology/physical_package_id | 1 + .../cpu/cpu0/topology/thread_siblings_list | 1 + .../cpu/cpu1/topology/cluster_cpus_list | 1 + .../cpu/cpu1/topology/cluster_id | 1 + .../cpu/cpu1/topology/core_cpus_list | 1 + .../cpu/cpu1/topology/core_id | 1 + .../cpu/cpu1/topology/core_siblings_list | 1 + .../cpu/cpu1/topology/package_cpus_list | 1 + .../cpu/cpu1/topology/physical_package_id | 1 + .../cpu/cpu1/topology/thread_siblings_list | 1 + .../cpu/cpu2/topology/cluster_cpus_list | 1 + .../cpu/cpu2/topology/cluster_id | 1 + .../cpu/cpu2/topology/core_cpus_list | 1 + .../cpu/cpu2/topology/core_id | 1 + .../cpu/cpu2/topology/core_siblings_list | 1 + .../cpu/cpu2/topology/package_cpus_list | 1 + .../cpu/cpu2/topology/physical_package_id | 1 + .../cpu/cpu2/topology/thread_siblings_list | 1 + .../cpu/cpu3/topology/cluster_cpus_list | 1 + .../cpu/cpu3/topology/cluster_id | 1 + .../cpu/cpu3/topology/core_cpus_list | 1 + .../cpu/cpu3/topology/core_id | 1 + .../cpu/cpu3/topology/core_siblings_list | 1 + .../cpu/cpu3/topology/package_cpus_list | 1 + .../cpu/cpu3/topology/physical_package_id | 1 + .../cpu/cpu3/topology/thread_siblings_list | 1 + .../cpu/cpu4/topology/cluster_cpus_list | 1 + .../cpu/cpu4/topology/cluster_id | 1 + .../cpu/cpu4/topology/core_cpus_list | 1 + .../cpu/cpu4/topology/core_id | 1 + .../cpu/cpu4/topology/core_siblings_list | 1 + .../cpu/cpu4/topology/package_cpus_list | 1 + .../cpu/cpu4/topology/physical_package_id | 1 + .../cpu/cpu4/topology/thread_siblings_list | 1 + .../cpu/cpu5/topology/cluster_cpus_list | 1 + .../cpu/cpu5/topology/cluster_id | 1 + .../cpu/cpu5/topology/core_cpus_list | 1 + .../cpu/cpu5/topology/core_id | 1 + .../cpu/cpu5/topology/core_siblings_list | 1 + .../cpu/cpu5/topology/package_cpus_list | 1 + .../cpu/cpu5/topology/physical_package_id | 1 + .../cpu/cpu5/topology/thread_siblings_list | 1 + .../cpu/cpu6/topology/cluster_cpus_list | 1 + .../cpu/cpu6/topology/cluster_id | 1 + .../cpu/cpu6/topology/core_cpus_list | 1 + .../cpu/cpu6/topology/core_id | 1 + .../cpu/cpu6/topology/core_siblings_list | 1 + .../cpu/cpu6/topology/package_cpus_list | 1 + .../cpu/cpu6/topology/physical_package_id | 1 + .../cpu/cpu6/topology/thread_siblings_list | 1 + .../cpu/cpu7/topology/cluster_cpus_list | 1 + .../cpu/cpu7/topology/cluster_id | 1 + .../cpu/cpu7/topology/core_cpus_list | 1 + .../cpu/cpu7/topology/core_id | 1 + .../cpu/cpu7/topology/core_siblings_list | 1 + .../cpu/cpu7/topology/package_cpus_list | 1 + .../cpu/cpu7/topology/physical_package_id | 1 + .../cpu/cpu7/topology/thread_siblings_list | 1 + .../linux-with-clusters/cpu/online | 1 + .../linux-with-clusters/cpu/present | 1 + .../linux-with-clusters/node/node0/cpu0 | 1 + .../linux-with-clusters/node/node0/cpu1 | 1 + .../linux-with-clusters/node/node0/cpu2 | 1 + .../linux-with-clusters/node/node0/cpu3 | 1 + .../linux-with-clusters/node/node0/cpulist | 1 + .../linux-with-clusters/node/node1/cpu4 | 1 + .../linux-with-clusters/node/node1/cpu5 | 1 + .../linux-with-clusters/node/node1/cpu6 | 1 + .../linux-with-clusters/node/node1/cpu7 | 1 + .../linux-with-clusters/node/node1/cpulist | 1 + .../linux-with-clusters/node/online | 1 + .../linux-with-clusters/node/possible | 1 + tests/virhostcputest.c | 1 + 85 files changed, 194 insertions(+) create mode 120000 tests/vircaps2xmldata/linux-basic-clusters/system/cpu create mode 120000 tests/vircaps2xmldata/linux-basic-clusters/system/node create mode 100644 tests/vircaps2xmldata/vircaps-aarch64-basic-clusters.xml create mode 100644 tests/virhostcpudata/linux-aarch64-with-clusters.cpuinfo create mode 100644 tests/virhostcpudata/linux-aarch64-with-clusters.expected create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/cluster_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/cluster_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/cluster_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/cluster_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/cluster_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/cluster_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/cluster_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/cluster_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/cluster_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/cluster_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/cluster_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/cluster_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/cluster_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/cluster_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/cluster_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/cluster_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/online create mode 100644 tests/virhostcpudata/linux-with-clusters/cpu/present create mode 120000 tests/virhostcpudata/linux-with-clusters/node/node0/cpu0 create mode 120000 tests/virhostcpudata/linux-with-clusters/node/node0/cpu1 create mode 120000 tests/virhostcpudata/linux-with-clusters/node/node0/cpu2 create mode 120000 tests/virhostcpudata/linux-with-clusters/node/node0/cpu3 create mode 100644 tests/virhostcpudata/linux-with-clusters/node/node0/cpulist create mode 120000 tests/virhostcpudata/linux-with-clusters/node/node1/cpu4 create mode 120000 tests/virhostcpudata/linux-with-clusters/node/node1/cpu5 create mode 120000 tests/virhostcpudata/linux-with-clusters/node/node1/cpu6 create mode 120000 tests/virhostcpudata/linux-with-clusters/node/node1/cpu7 create mode 100644 tests/virhostcpudata/linux-with-clusters/node/node1/cpulist create mode 100644 tests/virhostcpudata/linux-with-clusters/node/online create mode 100644 tests/virhostcpudata/linux-with-clusters/node/possible diff --git a/tests/vircaps2xmldata/linux-basic-clusters/system/cpu b/tests/vircaps2xmldata/linux-basic-clusters/system/cpu new file mode 120000 index 0000000000..f7354e3525 --- /dev/null +++ b/tests/vircaps2xmldata/linux-basic-clusters/system/cpu @@ -0,0 +1 @@ +../../../virhostcpudata/linux-with-clusters/cpu \ No newline at end of file diff --git a/tests/vircaps2xmldata/linux-basic-clusters/system/node b/tests/vircaps2xmldata/linux-basic-clusters/system/node new file mode 120000 index 0000000000..57b972ce90 --- /dev/null +++ b/tests/vircaps2xmldata/linux-basic-clusters/system/node @@ -0,0 +1 @@ +../../../virhostcpudata/linux-with-clusters/node \ No newline at end of file diff --git a/tests/vircaps2xmldata/vircaps-aarch64-basic-clusters.xml b/tests/vircaps2xmldata/vircaps-aarch64-basic-clusters.xml new file mode 100644 index 0000000000..fe61fc42cc --- /dev/null +++ b/tests/vircaps2xmldata/vircaps-aarch64-basic-clusters.xml @@ -0,0 +1,39 @@ + + + + + aarch64 + + + + + + + 1048576 + 2048 + 4096 + 6144 + + + + + + + + + 2097152 + 4096 + 6144 + 8192 + + + + + + + + + + + + diff --git a/tests/vircaps2xmltest.c b/tests/vircaps2xmltest.c index 26a512e87f..2fdf694640 100644 --- a/tests/vircaps2xmltest.c +++ b/tests/vircaps2xmltest.c @@ -93,6 +93,7 @@ mymain(void) DO_TEST_FULL("basic", VIR_ARCH_X86_64, false, false); DO_TEST_FULL("basic", VIR_ARCH_AARCH64, true, false); DO_TEST_FULL("basic-dies", VIR_ARCH_X86_64, false, false); + DO_TEST_FULL("basic-clusters", VIR_ARCH_AARCH64, false, false); DO_TEST_FULL("caches", VIR_ARCH_X86_64, true, true); diff --git a/tests/virhostcpudata/linux-aarch64-with-clusters.cpuinfo b/tests/virhostcpudata/linux-aarch64-with-clusters.cpuinfo new file mode 100644 index 0000000000..94030201d2 --- /dev/null +++ b/tests/virhostcpudata/linux-aarch64-with-clusters.cpuinfo @@ -0,0 +1,72 @@ +processor : 0 +BogoMIPS : 400.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm +CPU implementer : 0x43 +CPU architecture: 8 +CPU variant : 0x1 +CPU part : 0x0af +CPU revision : 1 + +processor : 1 +BogoMIPS : 400.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm +CPU implementer : 0x43 +CPU architecture: 8 +CPU variant : 0x1 +CPU part : 0x0af +CPU revision : 1 + +processor : 2 +BogoMIPS : 400.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm +CPU implementer : 0x43 +CPU architecture: 8 +CPU variant : 0x1 +CPU part : 0x0af +CPU revision : 1 + +processor : 3 +BogoMIPS : 400.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm +CPU implementer : 0x43 +CPU architecture: 8 +CPU variant : 0x1 +CPU part : 0x0af +CPU revision : 1 + +processor : 4 +BogoMIPS : 400.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm +CPU implementer : 0x43 +CPU architecture: 8 +CPU variant : 0x1 +CPU part : 0x0af +CPU revision : 1 + +processor : 5 +BogoMIPS : 400.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm +CPU implementer : 0x43 +CPU architecture: 8 +CPU variant : 0x1 +CPU part : 0x0af +CPU revision : 1 + +processor : 6 +BogoMIPS : 400.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm +CPU implementer : 0x43 +CPU architecture: 8 +CPU variant : 0x1 +CPU part : 0x0af +CPU revision : 1 + +processor : 7 +BogoMIPS : 400.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm +CPU implementer : 0x43 +CPU architecture: 8 +CPU variant : 0x1 +CPU part : 0x0af +CPU revision : 1 + diff --git a/tests/virhostcpudata/linux-aarch64-with-clusters.expected b/tests/virhostcpudata/linux-aarch64-with-clusters.expected new file mode 100644 index 0000000000..bf350bd40b --- /dev/null +++ b/tests/virhostcpudata/linux-aarch64-with-clusters.expected @@ -0,0 +1 @@ +CPUs: 8/8, MHz: 0, Nodes: 2, Sockets: 1, Cores: 2, Threads: 2 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/cluster_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/cluster_cpus_list new file mode 100644 index 0000000000..8b0fab869c --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/cluster_cpus_list @@ -0,0 +1 @@ +0-1 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/cluster_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/cluster_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/cluster_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_cpus_list new file mode 100644 index 0000000000..8b0fab869c --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_cpus_list @@ -0,0 +1 @@ +0-1 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_siblings_list new file mode 100644 index 0000000000..40c7bb2f1a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/core_siblings_list @@ -0,0 +1 @@ +0-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/package_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/package_cpus_list new file mode 100644 index 0000000000..40c7bb2f1a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/package_cpus_list @@ -0,0 +1 @@ +0-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/physical_package_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/physical_package_id new file mode 100644 index 0000000000..7facc89938 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/physical_package_id @@ -0,0 +1 @@ +36 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/thread_siblings_list new file mode 100644 index 0000000000..8b0fab869c --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu0/topology/thread_siblings_list @@ -0,0 +1 @@ +0-1 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/cluster_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/cluster_cpus_list new file mode 100644 index 0000000000..8b0fab869c --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/cluster_cpus_list @@ -0,0 +1 @@ +0-1 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/cluster_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/cluster_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/cluster_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_cpus_list new file mode 100644 index 0000000000..8b0fab869c --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_cpus_list @@ -0,0 +1 @@ +0-1 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_siblings_list new file mode 100644 index 0000000000..40c7bb2f1a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/core_siblings_list @@ -0,0 +1 @@ +0-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/package_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/package_cpus_list new file mode 100644 index 0000000000..40c7bb2f1a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/package_cpus_list @@ -0,0 +1 @@ +0-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/physical_package_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/physical_package_id new file mode 100644 index 0000000000..7facc89938 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/physical_package_id @@ -0,0 +1 @@ +36 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/thread_siblings_list new file mode 100644 index 0000000000..8b0fab869c --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu1/topology/thread_siblings_list @@ -0,0 +1 @@ +0-1 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/cluster_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/cluster_cpus_list new file mode 100644 index 0000000000..7a9857542a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/cluster_cpus_list @@ -0,0 +1 @@ +2-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/cluster_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/cluster_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/cluster_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_cpus_list new file mode 100644 index 0000000000..7a9857542a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_cpus_list @@ -0,0 +1 @@ +2-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_siblings_list new file mode 100644 index 0000000000..40c7bb2f1a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/core_siblings_list @@ -0,0 +1 @@ +0-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/package_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/package_cpus_list new file mode 100644 index 0000000000..40c7bb2f1a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/package_cpus_list @@ -0,0 +1 @@ +0-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/physical_package_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/physical_package_id new file mode 100644 index 0000000000..7facc89938 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/physical_package_id @@ -0,0 +1 @@ +36 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/thread_siblings_list new file mode 100644 index 0000000000..7a9857542a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu2/topology/thread_siblings_list @@ -0,0 +1 @@ +2-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/cluster_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/cluster_cpus_list new file mode 100644 index 0000000000..7a9857542a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/cluster_cpus_list @@ -0,0 +1 @@ +2-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/cluster_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/cluster_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/cluster_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_cpus_list new file mode 100644 index 0000000000..7a9857542a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_cpus_list @@ -0,0 +1 @@ +2-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_siblings_list new file mode 100644 index 0000000000..40c7bb2f1a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/core_siblings_list @@ -0,0 +1 @@ +0-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/package_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/package_cpus_list new file mode 100644 index 0000000000..40c7bb2f1a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/package_cpus_list @@ -0,0 +1 @@ +0-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/physical_package_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/physical_package_id new file mode 100644 index 0000000000..7facc89938 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/physical_package_id @@ -0,0 +1 @@ +36 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/thread_siblings_list new file mode 100644 index 0000000000..7a9857542a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu3/topology/thread_siblings_list @@ -0,0 +1 @@ +2-3 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/cluster_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/cluster_cpus_list new file mode 100644 index 0000000000..e66d883ade --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/cluster_cpus_list @@ -0,0 +1 @@ +4-5 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/cluster_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/cluster_id new file mode 100644 index 0000000000..9183bf03fc --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/cluster_id @@ -0,0 +1 @@ +256 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_cpus_list new file mode 100644 index 0000000000..e66d883ade --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_cpus_list @@ -0,0 +1 @@ +4-5 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_id new file mode 100644 index 0000000000..9183bf03fc --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_id @@ -0,0 +1 @@ +256 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_siblings_list new file mode 100644 index 0000000000..93fccd3cc6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/core_siblings_list @@ -0,0 +1 @@ +4-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/package_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/package_cpus_list new file mode 100644 index 0000000000..93fccd3cc6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/package_cpus_list @@ -0,0 +1 @@ +4-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/physical_package_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/physical_package_id new file mode 100644 index 0000000000..58cecca290 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/physical_package_id @@ -0,0 +1 @@ +3180 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/thread_siblings_list new file mode 100644 index 0000000000..e66d883ade --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu4/topology/thread_siblings_list @@ -0,0 +1 @@ +4-5 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/cluster_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/cluster_cpus_list new file mode 100644 index 0000000000..e66d883ade --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/cluster_cpus_list @@ -0,0 +1 @@ +4-5 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/cluster_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/cluster_id new file mode 100644 index 0000000000..9183bf03fc --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/cluster_id @@ -0,0 +1 @@ +256 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_cpus_list new file mode 100644 index 0000000000..e66d883ade --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_cpus_list @@ -0,0 +1 @@ +4-5 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_id new file mode 100644 index 0000000000..9183bf03fc --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_id @@ -0,0 +1 @@ +256 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_siblings_list new file mode 100644 index 0000000000..93fccd3cc6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/core_siblings_list @@ -0,0 +1 @@ +4-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/package_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/package_cpus_list new file mode 100644 index 0000000000..93fccd3cc6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/package_cpus_list @@ -0,0 +1 @@ +4-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/physical_package_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/physical_package_id new file mode 100644 index 0000000000..58cecca290 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/physical_package_id @@ -0,0 +1 @@ +3180 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/thread_siblings_list new file mode 100644 index 0000000000..e66d883ade --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu5/topology/thread_siblings_list @@ -0,0 +1 @@ +4-5 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/cluster_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/cluster_cpus_list new file mode 100644 index 0000000000..fdd9f37517 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/cluster_cpus_list @@ -0,0 +1 @@ +6-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/cluster_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/cluster_id new file mode 100644 index 0000000000..a700e79997 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/cluster_id @@ -0,0 +1 @@ +257 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_cpus_list new file mode 100644 index 0000000000..fdd9f37517 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_cpus_list @@ -0,0 +1 @@ +6-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_id new file mode 100644 index 0000000000..a700e79997 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_id @@ -0,0 +1 @@ +257 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_siblings_list new file mode 100644 index 0000000000..93fccd3cc6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/core_siblings_list @@ -0,0 +1 @@ +4-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/package_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/package_cpus_list new file mode 100644 index 0000000000..93fccd3cc6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/package_cpus_list @@ -0,0 +1 @@ +4-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/physical_package_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/physical_package_id new file mode 100644 index 0000000000..58cecca290 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/physical_package_id @@ -0,0 +1 @@ +3180 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/thread_siblings_list new file mode 100644 index 0000000000..fdd9f37517 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu6/topology/thread_siblings_list @@ -0,0 +1 @@ +6-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/cluster_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/cluster_cpus_list new file mode 100644 index 0000000000..fdd9f37517 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/cluster_cpus_list @@ -0,0 +1 @@ +6-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/cluster_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/cluster_id new file mode 100644 index 0000000000..a700e79997 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/cluster_id @@ -0,0 +1 @@ +257 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_cpus_list new file mode 100644 index 0000000000..fdd9f37517 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_cpus_list @@ -0,0 +1 @@ +6-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_id new file mode 100644 index 0000000000..a700e79997 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_id @@ -0,0 +1 @@ +257 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_siblings_list new file mode 100644 index 0000000000..93fccd3cc6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/core_siblings_list @@ -0,0 +1 @@ +4-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/package_cpus_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/package_cpus_list new file mode 100644 index 0000000000..93fccd3cc6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/package_cpus_list @@ -0,0 +1 @@ +4-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/physical_package_id b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/physical_package_id new file mode 100644 index 0000000000..58cecca290 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/physical_package_id @@ -0,0 +1 @@ +3180 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/thread_siblings_list new file mode 100644 index 0000000000..fdd9f37517 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/cpu7/topology/thread_siblings_list @@ -0,0 +1 @@ +6-7 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/online b/tests/virhostcpudata/linux-with-clusters/cpu/online new file mode 100644 index 0000000000..5f4593c34a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/online @@ -0,0 +1 @@ +0-223 diff --git a/tests/virhostcpudata/linux-with-clusters/cpu/present b/tests/virhostcpudata/linux-with-clusters/cpu/present new file mode 100644 index 0000000000..5f4593c34a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/cpu/present @@ -0,0 +1 @@ +0-223 diff --git a/tests/virhostcpudata/linux-with-clusters/node/node0/cpu0 b/tests/virhostcpudata/linux-with-clusters/node/node0/cpu0 new file mode 120000 index 0000000000..c841bea28b --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/node0/cpu0 @@ -0,0 +1 @@ +../../cpu/cpu0 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-clusters/node/node0/cpu1 b/tests/virhostcpudata/linux-with-clusters/node/node0/cpu1 new file mode 120000 index 0000000000..5f4536279e --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/node0/cpu1 @@ -0,0 +1 @@ +../../cpu/cpu1 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-clusters/node/node0/cpu2 b/tests/virhostcpudata/linux-with-clusters/node/node0/cpu2 new file mode 120000 index 0000000000..2dcca332ce --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/node0/cpu2 @@ -0,0 +1 @@ +../../cpu/cpu2 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-clusters/node/node0/cpu3 b/tests/virhostcpudata/linux-with-clusters/node/node0/cpu3 new file mode 120000 index 0000000000..c7690e5aa6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/node0/cpu3 @@ -0,0 +1 @@ +../../cpu/cpu3 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-clusters/node/node0/cpulist b/tests/virhostcpudata/linux-with-clusters/node/node0/cpulist new file mode 100644 index 0000000000..40c7bb2f1a --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/node0/cpulist @@ -0,0 +1 @@ +0-3 diff --git a/tests/virhostcpudata/linux-with-clusters/node/node1/cpu4 b/tests/virhostcpudata/linux-with-clusters/node/node1/cpu4 new file mode 120000 index 0000000000..9e77a64eb4 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/node1/cpu4 @@ -0,0 +1 @@ +../../cpu/cpu4 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-clusters/node/node1/cpu5 b/tests/virhostcpudata/linux-with-clusters/node/node1/cpu5 new file mode 120000 index 0000000000..cc07c3b97b --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/node1/cpu5 @@ -0,0 +1 @@ +../../cpu/cpu5 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-clusters/node/node1/cpu6 b/tests/virhostcpudata/linux-with-clusters/node/node1/cpu6 new file mode 120000 index 0000000000..2e7576354f --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/node1/cpu6 @@ -0,0 +1 @@ +../../cpu/cpu6 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-clusters/node/node1/cpu7 b/tests/virhostcpudata/linux-with-clusters/node/node1/cpu7 new file mode 120000 index 0000000000..09e3f79b43 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/node1/cpu7 @@ -0,0 +1 @@ +../../cpu/cpu7 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-clusters/node/node1/cpulist b/tests/virhostcpudata/linux-with-clusters/node/node1/cpulist new file mode 100644 index 0000000000..93fccd3cc6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/node1/cpulist @@ -0,0 +1 @@ +4-7 diff --git a/tests/virhostcpudata/linux-with-clusters/node/online b/tests/virhostcpudata/linux-with-clusters/node/online new file mode 100644 index 0000000000..8b0fab869c --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/online @@ -0,0 +1 @@ +0-1 diff --git a/tests/virhostcpudata/linux-with-clusters/node/possible b/tests/virhostcpudata/linux-with-clusters/node/possible new file mode 100644 index 0000000000..8b0fab869c --- /dev/null +++ b/tests/virhostcpudata/linux-with-clusters/node/possible @@ -0,0 +1 @@ +0-1 diff --git a/tests/virhostcputest.c b/tests/virhostcputest.c index 0990013878..cf310cb4ce 100644 --- a/tests/virhostcputest.c +++ b/tests/virhostcputest.c @@ -273,6 +273,7 @@ mymain(void) {"subcores3", VIR_ARCH_PPC64}, {"with-frequency", VIR_ARCH_S390X}, {"with-die", VIR_ARCH_X86_64}, + {"with-clusters", VIR_ARCH_AARCH64}, }; if (virInitialize() < 0) -- Gitee From 9b87d8bbbfe6489411260ba148979efb91276907 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Fri, 5 Jan 2024 16:03:54 +0100 Subject: [PATCH 2/9] conf: Report CPU clusters in capabilities XML commit 5fc56aefb67a085a2f0fd3d2a157c7c029d2ef60 upstream. For machines that don't expose useful information through sysfs, the dummy ID 0 is used. https://issues.redhat.com/browse/RHEL-7043 Signed-off-by: Andrea Bolognani Reviewed-by: Peter Krempa Signed-off-by: zhangxinghao --- src/conf/capabilities.c | 5 +- src/conf/capabilities.h | 1 + src/conf/schemas/capability.rng | 3 ++ src/libvirt_linux.syms | 1 + src/util/virhostcpu.c | 22 +++++++++ src/util/virhostcpu.h | 1 + tests/capabilityschemadata/caps-qemu-kvm.xml | 32 ++++++------- .../vircaps-aarch64-basic-clusters.xml | 16 +++---- .../vircaps2xmldata/vircaps-aarch64-basic.xml | 32 ++++++------- .../vircaps-x86_64-basic-dies.xml | 24 +++++----- .../vircaps2xmldata/vircaps-x86_64-basic.xml | 32 ++++++------- .../vircaps2xmldata/vircaps-x86_64-caches.xml | 16 +++---- tests/vircaps2xmldata/vircaps-x86_64-hmat.xml | 48 +++++++++---------- .../vircaps-x86_64-resctrl-cdp.xml | 24 +++++----- .../vircaps-x86_64-resctrl-cmt.xml | 24 +++++----- .../vircaps-x86_64-resctrl-fake-feature.xml | 24 +++++----- .../vircaps-x86_64-resctrl-skx-twocaches.xml | 2 +- .../vircaps-x86_64-resctrl-skx.xml | 2 +- .../vircaps-x86_64-resctrl.xml | 24 +++++----- 19 files changed, 182 insertions(+), 151 deletions(-) diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 32badee7b3..02298e40a3 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -811,9 +811,10 @@ virCapsHostNUMACellCPUFormat(virBuffer *buf, return -1; virBufferAsprintf(&childBuf, - " socket_id='%d' die_id='%d' core_id='%d' siblings='%s'", + " socket_id='%d' die_id='%d' cluster_id='%d' core_id='%d' siblings='%s'", cpus[j].socket_id, cpus[j].die_id, + cpus[j].cluster_id, cpus[j].core_id, siblings); } @@ -1453,6 +1454,7 @@ virCapabilitiesFillCPUInfo(int cpu_id G_GNUC_UNUSED, if (virHostCPUGetSocket(cpu_id, &cpu->socket_id) < 0 || virHostCPUGetDie(cpu_id, &cpu->die_id) < 0 || + virHostCPUGetCluster(cpu_id, &cpu->cluster_id) < 0 || virHostCPUGetCore(cpu_id, &cpu->core_id) < 0) return -1; @@ -1712,6 +1714,7 @@ virCapabilitiesHostNUMAInitFake(virCapsHostNUMA *caps) if (tmp) { cpus[cid].id = id; cpus[cid].die_id = 0; + cpus[cid].cluster_id = 0; cpus[cid].socket_id = s; cpus[cid].core_id = c; cpus[cid].siblings = virBitmapNewCopy(siblings); diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h index 9eaf6e2807..52e395de14 100644 --- a/src/conf/capabilities.h +++ b/src/conf/capabilities.h @@ -89,6 +89,7 @@ struct _virCapsHostNUMACellCPU { unsigned int id; unsigned int socket_id; unsigned int die_id; + unsigned int cluster_id; unsigned int core_id; virBitmap *siblings; }; diff --git a/src/conf/schemas/capability.rng b/src/conf/schemas/capability.rng index b1968df258..a1606941e7 100644 --- a/src/conf/schemas/capability.rng +++ b/src/conf/schemas/capability.rng @@ -201,6 +201,9 @@ + + + diff --git a/src/libvirt_linux.syms b/src/libvirt_linux.syms index 55649ae39c..004cbfee97 100644 --- a/src/libvirt_linux.syms +++ b/src/libvirt_linux.syms @@ -3,6 +3,7 @@ # # util/virhostcpu.h +virHostCPUGetCluster; virHostCPUGetCore; virHostCPUGetDie; virHostCPUGetInfoPopulateLinux; diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c index cf3a967822..01de69c0d1 100644 --- a/src/util/virhostcpu.c +++ b/src/util/virhostcpu.c @@ -232,6 +232,28 @@ virHostCPUGetDie(unsigned int cpu, unsigned int *die) return 0; } +int +virHostCPUGetCluster(unsigned int cpu, unsigned int *cluster) +{ + int cluster_id; + int ret = virFileReadValueInt(&cluster_id, + "%s/cpu/cpu%u/topology/cluster_id", + SYSFS_SYSTEM_PATH, cpu); + + if (ret == -1) + return -1; + + /* If the file doesn't exists (old kernel) or the value contained + * in it is -1 (architecture without CPU clusters), report 0 to + * indicate the lack of information */ + if (ret == -2 || cluster_id < 0) + cluster_id = 0; + + *cluster = cluster_id; + + return 0; +} + int virHostCPUGetCore(unsigned int cpu, unsigned int *core) { diff --git a/src/util/virhostcpu.h b/src/util/virhostcpu.h index 5f0d43e069..d7e09bff22 100644 --- a/src/util/virhostcpu.h +++ b/src/util/virhostcpu.h @@ -68,6 +68,7 @@ int virHostCPUStatsAssign(virNodeCPUStatsPtr param, #ifdef __linux__ int virHostCPUGetSocket(unsigned int cpu, unsigned int *socket); int virHostCPUGetDie(unsigned int cpu, unsigned int *die); +int virHostCPUGetCluster(unsigned int cpu, unsigned int *cluster); int virHostCPUGetCore(unsigned int cpu, unsigned int *core); virBitmap *virHostCPUGetSiblingsList(unsigned int cpu); diff --git a/tests/capabilityschemadata/caps-qemu-kvm.xml b/tests/capabilityschemadata/caps-qemu-kvm.xml index acdbb362cc..317fa0885f 100644 --- a/tests/capabilityschemadata/caps-qemu-kvm.xml +++ b/tests/capabilityschemadata/caps-qemu-kvm.xml @@ -64,14 +64,14 @@ - - - - - - - - + + + + + + + + @@ -84,14 +84,14 @@ - - - - - - - - + + + + + + + + diff --git a/tests/vircaps2xmldata/vircaps-aarch64-basic-clusters.xml b/tests/vircaps2xmldata/vircaps-aarch64-basic-clusters.xml index fe61fc42cc..b37c8e7a20 100644 --- a/tests/vircaps2xmldata/vircaps-aarch64-basic-clusters.xml +++ b/tests/vircaps2xmldata/vircaps-aarch64-basic-clusters.xml @@ -14,10 +14,10 @@ 4096 6144 - - - - + + + + @@ -26,10 +26,10 @@ 6144 8192 - - - - + + + + diff --git a/tests/vircaps2xmldata/vircaps-aarch64-basic.xml b/tests/vircaps2xmldata/vircaps-aarch64-basic.xml index 0a04052c40..5533ae0586 100644 --- a/tests/vircaps2xmldata/vircaps-aarch64-basic.xml +++ b/tests/vircaps2xmldata/vircaps-aarch64-basic.xml @@ -16,10 +16,10 @@ 4096 6144 - - - - + + + + @@ -28,10 +28,10 @@ 6144 8192 - - - - + + + + @@ -40,10 +40,10 @@ 8192 10240 - - - - + + + + @@ -52,10 +52,10 @@ 10240 12288 - - - - + + + + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-basic-dies.xml b/tests/vircaps2xmldata/vircaps-x86_64-basic-dies.xml index 8a3ca2d13c..c86dc4defc 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-basic-dies.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-basic-dies.xml @@ -14,18 +14,18 @@ 4096 6144 - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-basic.xml b/tests/vircaps2xmldata/vircaps-x86_64-basic.xml index 4da09f889c..9ae155d571 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-basic.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-basic.xml @@ -14,10 +14,10 @@ 4096 6144 - - - - + + + + @@ -26,10 +26,10 @@ 6144 8192 - - - - + + + + @@ -38,10 +38,10 @@ 8192 10240 - - - - + + + + @@ -50,10 +50,10 @@ 10240 12288 - - - - + + + + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-caches.xml b/tests/vircaps2xmldata/vircaps-x86_64-caches.xml index 28f00c0a90..05b33147b7 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-caches.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-caches.xml @@ -17,14 +17,14 @@ 4096 6144 - - - - - - - - + + + + + + + + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-hmat.xml b/tests/vircaps2xmldata/vircaps-x86_64-hmat.xml index 6fe5751666..2b97354bf3 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-hmat.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-hmat.xml @@ -25,30 +25,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml index ee26fe9464..167b217d8e 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml @@ -17,12 +17,12 @@ 4096 6144 - - - - - - + + + + + + @@ -31,12 +31,12 @@ 6144 8192 - - - - - - + + + + + + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml index acdd97ec58..311bb58e6a 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml @@ -17,12 +17,12 @@ 4096 6144 - - - - - - + + + + + + @@ -31,12 +31,12 @@ 6144 8192 - - - - - - + + + + + + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml index 1327d85c98..d85407f0b1 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml @@ -17,12 +17,12 @@ 4096 6144 - - - - - - + + + + + + @@ -31,12 +31,12 @@ 6144 8192 - - - - - - + + + + + + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml index 6769bd0591..eb53eb2142 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml @@ -17,7 +17,7 @@ 4096 6144 - + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml index bc52480905..38ea0bdc27 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml @@ -17,7 +17,7 @@ 4096 6144 - + diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml index b638bbd1c9..fd854ee91e 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml @@ -17,12 +17,12 @@ 4096 6144 - - - - - - + + + + + + @@ -31,12 +31,12 @@ 6144 8192 - - - - - - + + + + + + -- Gitee From 5f5812c55f731328d300d539691feec7b5500f78 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Fri, 5 Jan 2024 18:20:14 +0100 Subject: [PATCH 3/9] conf: Allow specifying CPU clusters commit ef5c397584b1d03a81c74c27074ec4b1a05d3339 upstream. The default number of CPU clusters is 1, and values other than that one are currently rejected by all hypervisor drivers. Signed-off-by: Andrea Bolognani Reviewed-by: Peter Krempa Signed-off-by: zhangxinghao --- src/bhyve/bhyve_command.c | 5 +++++ src/conf/cpu_conf.c | 16 +++++++++++++++- src/conf/cpu_conf.h | 1 + src/conf/domain_conf.c | 1 + src/conf/schemas/cputypes.rng | 5 +++++ src/cpu/cpu.c | 1 + src/libxl/libxl_capabilities.c | 1 + src/qemu/qemu_command.c | 5 +++++ src/vmx/vmx.c | 7 +++++++ .../x86_64-host+guest,model486-result.xml | 2 +- .../x86_64-host+guest,models-result.xml | 2 +- tests/cputestdata/x86_64-host+guest-result.xml | 2 +- tests/cputestdata/x86_64-host+guest.xml | 2 +- .../x86_64-host+host-model-nofallback.xml | 2 +- ...host-Haswell-noTSX+Haswell,haswell-result.xml | 2 +- ...aswell-noTSX+Haswell-noTSX,haswell-result.xml | 2 +- ...4-host-Haswell-noTSX+Haswell-noTSX-result.xml | 2 +- .../x86_64-host-worse+guest-result.xml | 2 +- .../ppc64-modern-bulk-result-conf.xml | 2 +- .../ppc64-modern-bulk-result-live.xml | 2 +- .../ppc64-modern-individual-result-conf.xml | 2 +- .../ppc64-modern-individual-result-live.xml | 2 +- .../x86-modern-bulk-result-conf.xml | 2 +- .../x86-modern-bulk-result-live.xml | 2 +- .../x86-modern-individual-add-result-conf.xml | 2 +- .../x86-modern-individual-add-result-live.xml | 2 +- ...e-timeout+graphics-spice-timeout-password.xml | 2 +- .../qemuhotplug-graphics-spice-timeout.xml | 2 +- .../fd-memory-no-numa-topology.xml | 2 +- .../qemuxml2argvdata/fd-memory-numa-topology.xml | 2 +- .../fd-memory-numa-topology2.xml | 2 +- .../fd-memory-numa-topology3.xml | 2 +- tests/qemuxml2argvdata/hugepages-nvdimm.xml | 2 +- .../memfd-memory-default-hugepage.xml | 2 +- tests/qemuxml2argvdata/memfd-memory-numa.xml | 2 +- .../memory-hotplug-nvdimm-access.xml | 2 +- .../memory-hotplug-nvdimm-align.xml | 2 +- .../memory-hotplug-nvdimm-label.xml | 2 +- .../memory-hotplug-nvdimm-pmem.xml | 2 +- .../memory-hotplug-nvdimm-readonly.xml | 2 +- tests/qemuxml2argvdata/memory-hotplug-nvdimm.xml | 2 +- .../memory-hotplug-virtio-mem.xml | 2 +- .../memory-hotplug-virtio-pmem.xml | 2 +- .../cpu-numa-disjoint.x86_64-latest.xml | 2 +- .../cpu-numa-disordered.x86_64-latest.xml | 2 +- .../cpu-numa-memshared.x86_64-latest.xml | 2 +- .../cpu-numa-no-memory-element.x86_64-latest.xml | 2 +- .../cpu-numa1.x86_64-latest.xml | 2 +- .../cpu-numa2.x86_64-latest.xml | 2 +- .../memory-hotplug-dimm-addr.x86_64-latest.xml | 2 +- .../memory-hotplug-dimm.x86_64-latest.xml | 2 +- .../memory-hotplug-multiple.x86_64-latest.xml | 2 +- ...plug-nvdimm-ppc64-abi-update.ppc64-latest.xml | 2 +- .../memory-hotplug-nvdimm-ppc64.ppc64-latest.xml | 2 +- .../memory-hotplug.x86_64-latest.xml | 2 +- ...mad-auto-memory-vcpu-cpuset.x86_64-latest.xml | 2 +- ...cpu-no-cpuset-and-placement.x86_64-latest.xml | 2 +- ...numad-auto-vcpu-no-numatune.x86_64-latest.xml | 2 +- ...mad-static-vcpu-no-numatune.x86_64-latest.xml | 2 +- .../pci-expander-bus.x86_64-latest.xml | 2 +- .../pcie-expander-bus.x86_64-latest.xml | 2 +- .../pseries-phb-numa-node.ppc64-latest.xml | 2 +- tests/vmx2xmldata/esx-in-the-wild-10.xml | 2 +- tests/vmx2xmldata/esx-in-the-wild-8.xml | 2 +- tests/vmx2xmldata/esx-in-the-wild-9.xml | 2 +- 65 files changed, 97 insertions(+), 57 deletions(-) diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c index 5b388c7a8f..d05b01ae5d 100644 --- a/src/bhyve/bhyve_command.c +++ b/src/bhyve/bhyve_command.c @@ -672,6 +672,11 @@ virBhyveProcessBuildBhyveCmd(struct _bhyveConn *driver, virDomainDef *def, _("Only 1 die per socket is supported")); return NULL; } + if (def->cpu->clusters != 1) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Only 1 cluster per die is supported")); + return NULL; + } if (nvcpus != def->cpu->sockets * def->cpu->cores * def->cpu->threads) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Invalid CPU topology: total number of vCPUs must equal the product of sockets, cores, and threads")); diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 7abe489733..6e6e1b9a89 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -241,6 +241,7 @@ virCPUDefCopyWithoutModel(const virCPUDef *cpu) copy->fallback = cpu->fallback; copy->sockets = cpu->sockets; copy->dies = cpu->dies; + copy->clusters = cpu->clusters; copy->cores = cpu->cores; copy->threads = cpu->threads; copy->arch = cpu->arch; @@ -572,6 +573,12 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt, return -1; } + if (virXMLPropUIntDefault(topology, "clusters", 10, + VIR_XML_PROP_NONZERO, + &def->clusters, 1) < 0) { + return -1; + } + if (virXMLPropUInt(topology, "cores", 10, VIR_XML_PROP_REQUIRED | VIR_XML_PROP_NONZERO, &def->cores) < 0) { @@ -827,10 +834,11 @@ virCPUDefFormatBuf(virBuffer *buf, virBufferAddLit(buf, "/>\n"); } - if (def->sockets && def->dies && def->cores && def->threads) { + if (def->sockets && def->dies && def->clusters && def->cores && def->threads) { virBufferAddLit(buf, "sockets); virBufferAsprintf(buf, " dies='%u'", def->dies); + virBufferAsprintf(buf, " clusters='%u'", def->clusters); virBufferAsprintf(buf, " cores='%u'", def->cores); virBufferAsprintf(buf, " threads='%u'", def->threads); virBufferAddLit(buf, "/>\n"); @@ -1106,6 +1114,12 @@ virCPUDefIsEqual(virCPUDef *src, return false; } + if (src->clusters != dst->clusters) { + MISMATCH(_("Target CPU clusters %1$d does not match source %2$d"), + dst->clusters, src->clusters); + return false; + } + if (src->cores != dst->cores) { MISMATCH(_("Target CPU cores %1$d does not match source %2$d"), dst->cores, src->cores); diff --git a/src/conf/cpu_conf.h b/src/conf/cpu_conf.h index 3e4c53675c..2694022fed 100644 --- a/src/conf/cpu_conf.h +++ b/src/conf/cpu_conf.h @@ -148,6 +148,7 @@ struct _virCPUDef { unsigned int microcodeVersion; unsigned int sockets; unsigned int dies; + unsigned int clusters; unsigned int cores; unsigned int threads; unsigned int sigFamily; diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index dd0a8d87a1..1996d49216 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2332,6 +2332,7 @@ virDomainDefGetVcpusTopology(const virDomainDef *def, /* multiplication of 32bit numbers fits into a 64bit variable */ if ((tmp *= def->cpu->dies) > UINT_MAX || + (tmp *= def->cpu->clusters) > UINT_MAX || (tmp *= def->cpu->cores) > UINT_MAX || (tmp *= def->cpu->threads) > UINT_MAX) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, diff --git a/src/conf/schemas/cputypes.rng b/src/conf/schemas/cputypes.rng index db1aa57158..3a8910e09f 100644 --- a/src/conf/schemas/cputypes.rng +++ b/src/conf/schemas/cputypes.rng @@ -92,6 +92,11 @@ + + + + + diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index 1e7c879ca5..33701811fb 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -437,6 +437,7 @@ virCPUGetHost(virArch arch, if (nodeInfo) { cpu->sockets = nodeInfo->sockets; cpu->dies = 1; + cpu->clusters = 1; cpu->cores = nodeInfo->cores; cpu->threads = nodeInfo->threads; } diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c index 177e8b988e..c3736bd0a9 100644 --- a/src/libxl/libxl_capabilities.c +++ b/src/libxl/libxl_capabilities.c @@ -159,6 +159,7 @@ libxlCapsInitCPU(virCaps *caps, libxl_physinfo *phy_info) cpu->cores = phy_info->cores_per_socket; cpu->threads = phy_info->threads_per_core; cpu->dies = 1; + cpu->clusters = 1; cpu->sockets = phy_info->nr_cpus / (cpu->cores * cpu->threads); if (!(data = libxlCapsNodeData(cpu, phy_info->hw_cap)) || diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 8360cdb52f..0c8e3f7968 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7190,6 +7190,11 @@ qemuBuildSmpCommandLine(virCommand *cmd, _("Only 1 die per socket is supported")); return -1; } + if (def->cpu->clusters != 1) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Only 1 cluster per die is supported")); + return -1; + } virBufferAsprintf(&buf, ",sockets=%u", def->cpu->sockets); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SMP_DIES)) virBufferAsprintf(&buf, ",dies=%u", def->cpu->dies); diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 26b89776e1..4ac2320251 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -1583,6 +1583,7 @@ virVMXParseConfig(virVMXContext *ctx, goto cleanup; } cpu->dies = 1; + cpu->clusters = 1; cpu->cores = coresPerSocket; cpu->threads = 1; @@ -3377,6 +3378,12 @@ virVMXFormatConfig(virVMXContext *ctx, virDomainXMLOption *xmlopt, virDomainDef goto cleanup; } + if (def->cpu->clusters != 1) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Only 1 cluster per die is supported")); + goto cleanup; + } + calculated_vcpus = def->cpu->sockets * def->cpu->cores; if (calculated_vcpus != maxvcpus) { virReportError(VIR_ERR_INTERNAL_ERROR, diff --git a/tests/cputestdata/x86_64-host+guest,model486-result.xml b/tests/cputestdata/x86_64-host+guest,model486-result.xml index ea8e2d3a48..b533f22b88 100644 --- a/tests/cputestdata/x86_64-host+guest,model486-result.xml +++ b/tests/cputestdata/x86_64-host+guest,model486-result.xml @@ -1,6 +1,6 @@ 486 - + diff --git a/tests/cputestdata/x86_64-host+guest,models-result.xml b/tests/cputestdata/x86_64-host+guest,models-result.xml index 42664a48b4..e975d9bc18 100644 --- a/tests/cputestdata/x86_64-host+guest,models-result.xml +++ b/tests/cputestdata/x86_64-host+guest,models-result.xml @@ -1,6 +1,6 @@ qemu64 - + diff --git a/tests/cputestdata/x86_64-host+guest-result.xml b/tests/cputestdata/x86_64-host+guest-result.xml index 28e3152cbf..cf41b3f872 100644 --- a/tests/cputestdata/x86_64-host+guest-result.xml +++ b/tests/cputestdata/x86_64-host+guest-result.xml @@ -1,6 +1,6 @@ Penryn - + diff --git a/tests/cputestdata/x86_64-host+guest.xml b/tests/cputestdata/x86_64-host+guest.xml index 28e3152cbf..cf41b3f872 100644 --- a/tests/cputestdata/x86_64-host+guest.xml +++ b/tests/cputestdata/x86_64-host+guest.xml @@ -1,6 +1,6 @@ Penryn - + diff --git a/tests/cputestdata/x86_64-host+host-model-nofallback.xml b/tests/cputestdata/x86_64-host+host-model-nofallback.xml index 16d6e1daf2..881eea7bd0 100644 --- a/tests/cputestdata/x86_64-host+host-model-nofallback.xml +++ b/tests/cputestdata/x86_64-host+host-model-nofallback.xml @@ -1,7 +1,7 @@ Penryn Intel - + diff --git a/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell,haswell-result.xml b/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell,haswell-result.xml index 8eda6684a0..67994c62cc 100644 --- a/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell,haswell-result.xml +++ b/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell,haswell-result.xml @@ -1,6 +1,6 @@ Haswell - + diff --git a/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell-noTSX,haswell-result.xml b/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell-noTSX,haswell-result.xml index cb02449d60..4804c0b818 100644 --- a/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell-noTSX,haswell-result.xml +++ b/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell-noTSX,haswell-result.xml @@ -1,6 +1,6 @@ Haswell - + diff --git a/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell-noTSX-result.xml b/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell-noTSX-result.xml index 7ee926aba8..c21b331248 100644 --- a/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell-noTSX-result.xml +++ b/tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell-noTSX-result.xml @@ -1,4 +1,4 @@ Haswell-noTSX - + diff --git a/tests/cputestdata/x86_64-host-worse+guest-result.xml b/tests/cputestdata/x86_64-host-worse+guest-result.xml index 9d54c66a8f..712c3ad341 100644 --- a/tests/cputestdata/x86_64-host-worse+guest-result.xml +++ b/tests/cputestdata/x86_64-host-worse+guest-result.xml @@ -1,6 +1,6 @@ Penryn - + diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml index ad11b2f8a6..1a0d28257e 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml @@ -44,7 +44,7 @@ POWER9 - + destroy diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml index 2a3b4a495f..b127883b36 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml @@ -44,7 +44,7 @@ POWER9 - + destroy diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml index 34aec9b965..29f1a5ac45 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml @@ -44,7 +44,7 @@ POWER9 - + destroy diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml index 5ce2cfd0b0..76a85ac9f0 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml @@ -44,7 +44,7 @@ POWER9 - + destroy diff --git a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml index 8d52ffedb4..bec46987ff 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml @@ -20,7 +20,7 @@ qemu64 - + destroy diff --git a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml index f416397e33..be9769c686 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml @@ -20,7 +20,7 @@ qemu64 - + destroy diff --git a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml index 0bd2af8e43..539f607818 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml @@ -20,7 +20,7 @@ qemu64 - + destroy diff --git a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml index b31e6ebe55..acbdd3cfd5 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml @@ -20,7 +20,7 @@ qemu64 - + destroy diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-graphics-spice-timeout+graphics-spice-timeout-password.xml b/tests/qemuhotplugtestdomains/qemuhotplug-graphics-spice-timeout+graphics-spice-timeout-password.xml index 03964ad01c..ee53339338 100644 --- a/tests/qemuhotplugtestdomains/qemuhotplug-graphics-spice-timeout+graphics-spice-timeout-password.xml +++ b/tests/qemuhotplugtestdomains/qemuhotplug-graphics-spice-timeout+graphics-spice-timeout-password.xml @@ -18,7 +18,7 @@ core2duo Intel - + diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-graphics-spice-timeout.xml b/tests/qemuhotplugtestdomains/qemuhotplug-graphics-spice-timeout.xml index e6b0cc833a..eb9b902fc5 100644 --- a/tests/qemuhotplugtestdomains/qemuhotplug-graphics-spice-timeout.xml +++ b/tests/qemuhotplugtestdomains/qemuhotplug-graphics-spice-timeout.xml @@ -18,7 +18,7 @@ core2duo Intel - + diff --git a/tests/qemuxml2argvdata/fd-memory-no-numa-topology.xml b/tests/qemuxml2argvdata/fd-memory-no-numa-topology.xml index 2090bb8288..92f418fb88 100644 --- a/tests/qemuxml2argvdata/fd-memory-no-numa-topology.xml +++ b/tests/qemuxml2argvdata/fd-memory-no-numa-topology.xml @@ -15,7 +15,7 @@ qemu64 - + destroy diff --git a/tests/qemuxml2argvdata/fd-memory-numa-topology.xml b/tests/qemuxml2argvdata/fd-memory-numa-topology.xml index 2f94690656..543509d832 100644 --- a/tests/qemuxml2argvdata/fd-memory-numa-topology.xml +++ b/tests/qemuxml2argvdata/fd-memory-numa-topology.xml @@ -15,7 +15,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/fd-memory-numa-topology2.xml b/tests/qemuxml2argvdata/fd-memory-numa-topology2.xml index 3a4e9b478e..d3b98da3c6 100644 --- a/tests/qemuxml2argvdata/fd-memory-numa-topology2.xml +++ b/tests/qemuxml2argvdata/fd-memory-numa-topology2.xml @@ -15,7 +15,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/fd-memory-numa-topology3.xml b/tests/qemuxml2argvdata/fd-memory-numa-topology3.xml index 0f7f74283b..459d1b9d1d 100644 --- a/tests/qemuxml2argvdata/fd-memory-numa-topology3.xml +++ b/tests/qemuxml2argvdata/fd-memory-numa-topology3.xml @@ -15,7 +15,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/hugepages-nvdimm.xml b/tests/qemuxml2argvdata/hugepages-nvdimm.xml index 1a1500895b..b786b0d3dd 100644 --- a/tests/qemuxml2argvdata/hugepages-nvdimm.xml +++ b/tests/qemuxml2argvdata/hugepages-nvdimm.xml @@ -17,7 +17,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/memfd-memory-default-hugepage.xml b/tests/qemuxml2argvdata/memfd-memory-default-hugepage.xml index 238d4c6b52..a70bd53134 100644 --- a/tests/qemuxml2argvdata/memfd-memory-default-hugepage.xml +++ b/tests/qemuxml2argvdata/memfd-memory-default-hugepage.xml @@ -19,7 +19,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/memfd-memory-numa.xml b/tests/qemuxml2argvdata/memfd-memory-numa.xml index 1ac87e3aef..0c5d7ba4ef 100644 --- a/tests/qemuxml2argvdata/memfd-memory-numa.xml +++ b/tests/qemuxml2argvdata/memfd-memory-numa.xml @@ -22,7 +22,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.xml index bee0346aca..84baf82bf5 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.xml @@ -15,7 +15,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.xml index decf87db63..664418e805 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.xml @@ -15,7 +15,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.xml index 8a0dab3908..f998f7f276 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.xml @@ -15,7 +15,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.xml index a712adfe1e..d66481fd35 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.xml @@ -15,7 +15,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.xml index 57629ccb8c..56d6b7b712 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.xml @@ -15,7 +15,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm.xml index 865ddcf0ea..ff6e3b7b0f 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm.xml @@ -15,7 +15,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/memory-hotplug-virtio-mem.xml b/tests/qemuxml2argvdata/memory-hotplug-virtio-mem.xml index c578209d8a..52fa6b14e9 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-virtio-mem.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-virtio-mem.xml @@ -11,7 +11,7 @@ qemu64 - + diff --git a/tests/qemuxml2argvdata/memory-hotplug-virtio-pmem.xml b/tests/qemuxml2argvdata/memory-hotplug-virtio-pmem.xml index a8b22dd3c5..2786a739ad 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-virtio-pmem.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-virtio-pmem.xml @@ -11,7 +11,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/cpu-numa-disjoint.x86_64-latest.xml b/tests/qemuxml2xmloutdata/cpu-numa-disjoint.x86_64-latest.xml index fa2ec31463..4f33094949 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa-disjoint.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa-disjoint.x86_64-latest.xml @@ -10,7 +10,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/cpu-numa-disordered.x86_64-latest.xml b/tests/qemuxml2xmloutdata/cpu-numa-disordered.x86_64-latest.xml index 1b4d0bfa67..75dcb8c9e2 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa-disordered.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa-disordered.x86_64-latest.xml @@ -10,7 +10,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/cpu-numa-memshared.x86_64-latest.xml b/tests/qemuxml2xmloutdata/cpu-numa-memshared.x86_64-latest.xml index 47ed9efd69..c45e295921 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa-memshared.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa-memshared.x86_64-latest.xml @@ -10,7 +10,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/cpu-numa-no-memory-element.x86_64-latest.xml b/tests/qemuxml2xmloutdata/cpu-numa-no-memory-element.x86_64-latest.xml index 57bbacdff0..663d137ff5 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa-no-memory-element.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa-no-memory-element.x86_64-latest.xml @@ -10,7 +10,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/cpu-numa1.x86_64-latest.xml b/tests/qemuxml2xmloutdata/cpu-numa1.x86_64-latest.xml index 57bbacdff0..663d137ff5 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa1.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa1.x86_64-latest.xml @@ -10,7 +10,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/cpu-numa2.x86_64-latest.xml b/tests/qemuxml2xmloutdata/cpu-numa2.x86_64-latest.xml index 57bbacdff0..663d137ff5 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa2.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa2.x86_64-latest.xml @@ -10,7 +10,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/memory-hotplug-dimm-addr.x86_64-latest.xml b/tests/qemuxml2xmloutdata/memory-hotplug-dimm-addr.x86_64-latest.xml index 0a32d5491a..38b41e6719 100644 --- a/tests/qemuxml2xmloutdata/memory-hotplug-dimm-addr.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/memory-hotplug-dimm-addr.x86_64-latest.xml @@ -11,7 +11,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/memory-hotplug-dimm.x86_64-latest.xml b/tests/qemuxml2xmloutdata/memory-hotplug-dimm.x86_64-latest.xml index 7c1b7b2c5d..7f0dc85c0e 100644 --- a/tests/qemuxml2xmloutdata/memory-hotplug-dimm.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/memory-hotplug-dimm.x86_64-latest.xml @@ -15,7 +15,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/memory-hotplug-multiple.x86_64-latest.xml b/tests/qemuxml2xmloutdata/memory-hotplug-multiple.x86_64-latest.xml index 42b0f7b880..b3306fb569 100644 --- a/tests/qemuxml2xmloutdata/memory-hotplug-multiple.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/memory-hotplug-multiple.x86_64-latest.xml @@ -11,7 +11,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64-abi-update.ppc64-latest.xml b/tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64-abi-update.ppc64-latest.xml index ae157c4849..4cc0c674df 100644 --- a/tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64-abi-update.ppc64-latest.xml +++ b/tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64-abi-update.ppc64-latest.xml @@ -11,7 +11,7 @@ POWER9 - + diff --git a/tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.xml b/tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.xml index 3c1cbc731d..a5c26e3c5b 100644 --- a/tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.xml +++ b/tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.xml @@ -11,7 +11,7 @@ POWER9 - + diff --git a/tests/qemuxml2xmloutdata/memory-hotplug.x86_64-latest.xml b/tests/qemuxml2xmloutdata/memory-hotplug.x86_64-latest.xml index 083102e8d6..697819387f 100644 --- a/tests/qemuxml2xmloutdata/memory-hotplug.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/memory-hotplug.x86_64-latest.xml @@ -11,7 +11,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-cpuset.x86_64-latest.xml b/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-cpuset.x86_64-latest.xml index 2d04bc23c2..6068a76464 100644 --- a/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-cpuset.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-cpuset.x86_64-latest.xml @@ -13,7 +13,7 @@ qemu64 - + destroy diff --git a/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-no-cpuset-and-placement.x86_64-latest.xml b/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-no-cpuset-and-placement.x86_64-latest.xml index 80f7284126..6c558526e9 100644 --- a/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-no-cpuset-and-placement.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-no-cpuset-and-placement.x86_64-latest.xml @@ -13,7 +13,7 @@ qemu64 - + destroy diff --git a/tests/qemuxml2xmloutdata/numad-auto-vcpu-no-numatune.x86_64-latest.xml b/tests/qemuxml2xmloutdata/numad-auto-vcpu-no-numatune.x86_64-latest.xml index 724209f6e3..6e1fecb488 100644 --- a/tests/qemuxml2xmloutdata/numad-auto-vcpu-no-numatune.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/numad-auto-vcpu-no-numatune.x86_64-latest.xml @@ -13,7 +13,7 @@ qemu64 - + destroy diff --git a/tests/qemuxml2xmloutdata/numad-static-vcpu-no-numatune.x86_64-latest.xml b/tests/qemuxml2xmloutdata/numad-static-vcpu-no-numatune.x86_64-latest.xml index 2a4ee0d496..c42d7066f9 100644 --- a/tests/qemuxml2xmloutdata/numad-static-vcpu-no-numatune.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/numad-static-vcpu-no-numatune.x86_64-latest.xml @@ -10,7 +10,7 @@ qemu64 - + destroy diff --git a/tests/qemuxml2xmloutdata/pci-expander-bus.x86_64-latest.xml b/tests/qemuxml2xmloutdata/pci-expander-bus.x86_64-latest.xml index b63c8c145a..2a6c329a40 100644 --- a/tests/qemuxml2xmloutdata/pci-expander-bus.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/pci-expander-bus.x86_64-latest.xml @@ -10,7 +10,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/pcie-expander-bus.x86_64-latest.xml b/tests/qemuxml2xmloutdata/pcie-expander-bus.x86_64-latest.xml index a441be8ebe..99612740b2 100644 --- a/tests/qemuxml2xmloutdata/pcie-expander-bus.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/pcie-expander-bus.x86_64-latest.xml @@ -10,7 +10,7 @@ qemu64 - + diff --git a/tests/qemuxml2xmloutdata/pseries-phb-numa-node.ppc64-latest.xml b/tests/qemuxml2xmloutdata/pseries-phb-numa-node.ppc64-latest.xml index 59015846fb..0a044f50b0 100644 --- a/tests/qemuxml2xmloutdata/pseries-phb-numa-node.ppc64-latest.xml +++ b/tests/qemuxml2xmloutdata/pseries-phb-numa-node.ppc64-latest.xml @@ -14,7 +14,7 @@ POWER9 - + diff --git a/tests/vmx2xmldata/esx-in-the-wild-10.xml b/tests/vmx2xmldata/esx-in-the-wild-10.xml index 47ed637920..78129682bd 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-10.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-10.xml @@ -12,7 +12,7 @@ hvm - + destroy diff --git a/tests/vmx2xmldata/esx-in-the-wild-8.xml b/tests/vmx2xmldata/esx-in-the-wild-8.xml index 0eea610709..47d22ced2a 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-8.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-8.xml @@ -11,7 +11,7 @@ hvm - + destroy diff --git a/tests/vmx2xmldata/esx-in-the-wild-9.xml b/tests/vmx2xmldata/esx-in-the-wild-9.xml index 66eca400dd..ee6be2527f 100644 --- a/tests/vmx2xmldata/esx-in-the-wild-9.xml +++ b/tests/vmx2xmldata/esx-in-the-wild-9.xml @@ -12,7 +12,7 @@ hvm - + destroy -- Gitee From e700c3911a152f6958e3248b29a5e43b099db4ea Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Fri, 5 Jan 2024 18:42:13 +0100 Subject: [PATCH 4/9] qemu: Introduce QEMU_CAPS_SMP_CLUSTERS commit beb27dc61ed4bfe60ca32ec2cbbc937215f9e139 upstream. Signed-off-by: Andrea Bolognani Reviewed-by: Peter Krempa Conflicts: src/qemu/qemu_capabilities.c src/qemu/qemu_capabilities.h tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml Signed-off-by: zhangxinghao --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml | 1 + tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml | 1 + tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.1.0_s390x.xml | 1 + tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 + 12 files changed, 13 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index c69625e49b..bcb88e3359 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -699,6 +699,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "run-with.async-teardown", /* QEMU_CAPS_RUN_WITH_ASYNC_TEARDOWN */ "virtio-blk-vhost-vdpa", /* QEMU_CAPS_DEVICE_VIRTIO_BLK_VHOST_VDPA */ "machine.virt.aia", /* QEMU_CAPS_MACHINE_VIRT_AIA */ + "smp-clusters", /* QEMU_CAPS_SMP_CLUSTERS */ ); @@ -1552,6 +1553,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = { { "query-display-options/ret-type/+sdl", QEMU_CAPS_SDL }, { "query-display-options/ret-type/+egl-headless", QEMU_CAPS_EGL_HEADLESS }, { "query-hotpluggable-cpus/ret-type/props/die-id", QEMU_CAPS_SMP_DIES }, + { "query-hotpluggable-cpus/ret-type/props/cluster-id", QEMU_CAPS_SMP_CLUSTERS }, { "query-named-block-nodes/arg-type/flat", QEMU_CAPS_QMP_QUERY_NAMED_BLOCK_NODES_FLAT }, { "screendump/arg-type/device", QEMU_CAPS_SCREENDUMP_DEVICE }, { "set-numa-node/arg-type/+hmat-lb", QEMU_CAPS_NUMA_HMAT }, diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index e6d4aef2a7..f76bb6e398 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -678,6 +678,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ QEMU_CAPS_RUN_WITH_ASYNC_TEARDOWN, /* asynchronous teardown -run-with async-teardown=on|off */ QEMU_CAPS_DEVICE_VIRTIO_BLK_VHOST_VDPA, /* virtio-blk-vhost-vdpa block driver */ QEMU_CAPS_MACHINE_VIRT_AIA, /* -machine virt,aia=(none|aplic|aplic-imsic), RISC-V only */ + QEMU_CAPS_SMP_CLUSTERS, /* -smp clusters= */ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml index 4315241d1d..536524cf18 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml @@ -154,6 +154,7 @@ + 7001000 42900244 v7.1.0 diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml index bd84750dc5..58e1111982 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml @@ -188,6 +188,7 @@ + 7001000 43100244 v7.1.0 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml b/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml index a1fc441412..127b8ee4c2 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml @@ -149,6 +149,7 @@ + 7002000 0 qemu-7.2.0-6.fc37 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml index 06a01a2c4c..a30ec3c164 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml @@ -192,6 +192,7 @@ + 7002000 43100245 v7.2.0 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml index 8ac1529c30..24ac7b8f6e 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml @@ -192,6 +192,7 @@ + 7002000 43100245 v7.2.0 diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml b/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml index 13f85eb447..2478081bfb 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml @@ -139,6 +139,7 @@ + 7002050 0 v7.2.0-333-g222059a0fc diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml index c2fa8eb028..85869f6b5d 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -196,6 +196,7 @@ + 8000000 43100244 v8.0.0 diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_s390x.xml b/tests/qemucapabilitiesdata/caps_8.1.0_s390x.xml index 427ee9d5c7..19422f08fa 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_s390x.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_s390x.xml @@ -112,6 +112,7 @@ + 8000050 39100245 v8.0.0-1270-g1c12355b diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml index d266dd0f31..0caee53550 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -198,6 +198,7 @@ + 8001000 43100245 v8.1.0 diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml index ef3bd14597..08967e9a8f 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml @@ -199,6 +199,7 @@ + 8001050 43100246 v8.1.0-3111-gad6ef0a42e -- Gitee From e276b30ce81985f13c04db938d54917bc6bb3961 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Fri, 5 Jan 2024 18:44:56 +0100 Subject: [PATCH 5/9] qemu: Use CPU clusters for guests commit 655459420adb447da4744408e62537bc6ae960dd upstream. https://issues.redhat.com/browse/RHEL-7043 Signed-off-by: Andrea Bolognani Reviewed-by: Peter Krempa Signed-off-by: zhangxinghao --- src/qemu/qemu_command.c | 5 ++- .../cpu-hotplug-startup.x86_64-latest.args | 2 +- .../cpu-numa-disjoint.x86_64-latest.args | 2 +- .../cpu-numa-disordered.x86_64-latest.args | 38 +++++++++++++++++++ .../cpu-numa-memshared.x86_64-latest.args | 2 +- ...-numa-no-memory-element.x86_64-latest.args | 2 +- .../cpu-numa1.x86_64-latest.args | 2 +- .../cpu-numa2.x86_64-latest.args | 2 +- .../cpu-topology1.x86_64-latest.args | 2 +- .../cpu-topology2.x86_64-latest.args | 2 +- .../cpu-topology3.x86_64-latest.args | 2 +- .../cpu-topology4.x86_64-latest.args | 2 +- ...memory-no-numa-topology.x86_64-latest.args | 2 +- ...fd-memory-numa-topology.x86_64-latest.args | 2 +- ...d-memory-numa-topology2.x86_64-latest.args | 2 +- ...d-memory-numa-topology3.x86_64-latest.args | 2 +- .../hugepages-nvdimm.x86_64-latest.args | 2 +- ...memory-default-hugepage.x86_64-latest.args | 2 +- .../memfd-memory-numa.x86_64-latest.args | 2 +- ...emory-hotplug-dimm-addr.x86_64-latest.args | 2 +- .../memory-hotplug-dimm.x86_64-latest.args | 2 +- ...memory-hotplug-multiple.x86_64-latest.args | 2 +- ...y-hotplug-nvdimm-access.x86_64-latest.args | 2 +- ...ry-hotplug-nvdimm-align.x86_64-latest.args | 2 +- ...ry-hotplug-nvdimm-label.x86_64-latest.args | 2 +- ...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 2 +- ...-nvdimm-ppc64-abi-update.ppc64-latest.args | 2 +- ...ory-hotplug-nvdimm-ppc64.ppc64-latest.args | 2 +- ...hotplug-nvdimm-readonly.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm.x86_64-latest.args | 2 +- ...mory-hotplug-virtio-mem.x86_64-latest.args | 2 +- ...ory-hotplug-virtio-pmem.x86_64-latest.args | 2 +- .../memory-hotplug.x86_64-latest.args | 2 +- ...auto-memory-vcpu-cpuset.x86_64-latest.args | 2 +- ...no-cpuset-and-placement.x86_64-latest.args | 2 +- ...d-auto-vcpu-no-numatune.x86_64-latest.args | 36 ++++++++++++++++++ ...to-vcpu-static-numatune.x86_64-latest.args | 2 +- ...static-memory-auto-vcpu.x86_64-latest.args | 2 +- ...static-vcpu-no-numatune.x86_64-latest.args | 36 ++++++++++++++++++ .../qemuxml2argvdata/numad.x86_64-latest.args | 2 +- ...ne-auto-nodeset-invalid.x86_64-latest.args | 2 +- .../pci-expander-bus.x86_64-latest.args | 2 +- .../pcie-expander-bus.x86_64-latest.args | 2 +- .../pseries-phb-numa-node.ppc64-latest.args | 2 +- 44 files changed, 154 insertions(+), 41 deletions(-) create mode 100644 tests/qemuxml2argvdata/cpu-numa-disordered.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/numad-auto-vcpu-no-numatune.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/numad-static-vcpu-no-numatune.x86_64-latest.args diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0c8e3f7968..57a0cf18cc 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7190,7 +7190,8 @@ qemuBuildSmpCommandLine(virCommand *cmd, _("Only 1 die per socket is supported")); return -1; } - if (def->cpu->clusters != 1) { + if (def->cpu->clusters != 1 && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_SMP_CLUSTERS)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Only 1 cluster per die is supported")); return -1; @@ -7198,6 +7199,8 @@ qemuBuildSmpCommandLine(virCommand *cmd, virBufferAsprintf(&buf, ",sockets=%u", def->cpu->sockets); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SMP_DIES)) virBufferAsprintf(&buf, ",dies=%u", def->cpu->dies); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SMP_CLUSTERS)) + virBufferAsprintf(&buf, ",clusters=%u", def->cpu->clusters); virBufferAsprintf(&buf, ",cores=%u", def->cpu->cores); virBufferAsprintf(&buf, ",threads=%u", def->cpu->threads); } else { diff --git a/tests/qemuxml2argvdata/cpu-hotplug-startup.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-hotplug-startup.x86_64-latest.args index 009c08d71a..af1b464104 100644 --- a/tests/qemuxml2argvdata/cpu-hotplug-startup.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-hotplug-startup.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \ -overcommit mem-lock=off \ --smp 1,maxcpus=6,sockets=3,dies=1,cores=2,threads=1 \ +-smp 1,maxcpus=6,sockets=3,dies=1,clusters=1,cores=2,threads=1 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/cpu-numa-disjoint.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-numa-disjoint.x86_64-latest.args index 3b12934425..22fca082a8 100644 --- a/tests/qemuxml2argvdata/cpu-numa-disjoint.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-numa-disjoint.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k \ -overcommit mem-lock=off \ --smp 16,sockets=2,dies=1,cores=4,threads=2 \ +-smp 16,sockets=2,dies=1,clusters=1,cores=4,threads=2 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":112197632}' \ -numa node,nodeid=0,cpus=0-3,cpus=8-11,memdev=ram-node0 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node1","size":112197632}' \ diff --git a/tests/qemuxml2argvdata/cpu-numa-disordered.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-numa-disordered.x86_64-latest.args new file mode 100644 index 0000000000..bc4a6ad5f3 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-numa-disordered.x86_64-latest.args @@ -0,0 +1,38 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=QEMUGuest1,debug-threads=on \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=off,dump-guest-core=off,acpi=off \ +-accel tcg \ +-cpu qemu64 \ +-m size=328704k \ +-overcommit mem-lock=off \ +-smp 16,sockets=2,dies=1,clusters=1,cores=4,threads=2 \ +-object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":112197632}' \ +-numa node,nodeid=0,cpus=0-5,memdev=ram-node0 \ +-object '{"qom-type":"memory-backend-ram","id":"ram-node1","size":112197632}' \ +-numa node,nodeid=1,cpus=11-15,memdev=ram-node1 \ +-object '{"qom-type":"memory-backend-ram","id":"ram-node2","size":112197632}' \ +-numa node,nodeid=2,cpus=6-10,memdev=ram-node2 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-boot strict=on \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x2"}' \ +-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ +-msg timestamp=on diff --git a/tests/qemuxml2argvdata/cpu-numa-memshared.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-numa-memshared.x86_64-latest.args index 0c9ec88b8b..1e486b1bbc 100644 --- a/tests/qemuxml2argvdata/cpu-numa-memshared.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-numa-memshared.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k \ -overcommit mem-lock=off \ --smp 16,sockets=2,dies=1,cores=4,threads=2 \ +-smp 16,sockets=2,dies=1,clusters=1,cores=4,threads=2 \ -object '{"qom-type":"memory-backend-file","id":"ram-node0","mem-path":"/var/lib/libvirt/qemu/ram/-1-QEMUGuest1/ram-node0","share":true,"size":112197632}' \ -numa node,nodeid=0,cpus=0-7,memdev=ram-node0 \ -object '{"qom-type":"memory-backend-file","id":"ram-node1","mem-path":"/var/lib/libvirt/qemu/ram/-1-QEMUGuest1/ram-node1","share":false,"size":112197632}' \ diff --git a/tests/qemuxml2argvdata/cpu-numa-no-memory-element.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-numa-no-memory-element.x86_64-latest.args index 31a61f023e..59372c4ab9 100644 --- a/tests/qemuxml2argvdata/cpu-numa-no-memory-element.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-numa-no-memory-element.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k \ -overcommit mem-lock=off \ --smp 16,sockets=2,dies=1,cores=4,threads=2 \ +-smp 16,sockets=2,dies=1,clusters=1,cores=4,threads=2 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":112197632}' \ -numa node,nodeid=0,cpus=0-7,memdev=ram-node0 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node1","size":112197632}' \ diff --git a/tests/qemuxml2argvdata/cpu-numa1.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-numa1.x86_64-latest.args index 31a61f023e..59372c4ab9 100644 --- a/tests/qemuxml2argvdata/cpu-numa1.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-numa1.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k \ -overcommit mem-lock=off \ --smp 16,sockets=2,dies=1,cores=4,threads=2 \ +-smp 16,sockets=2,dies=1,clusters=1,cores=4,threads=2 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":112197632}' \ -numa node,nodeid=0,cpus=0-7,memdev=ram-node0 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node1","size":112197632}' \ diff --git a/tests/qemuxml2argvdata/cpu-numa2.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-numa2.x86_64-latest.args index 31a61f023e..59372c4ab9 100644 --- a/tests/qemuxml2argvdata/cpu-numa2.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-numa2.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k \ -overcommit mem-lock=off \ --smp 16,sockets=2,dies=1,cores=4,threads=2 \ +-smp 16,sockets=2,dies=1,clusters=1,cores=4,threads=2 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":112197632}' \ -numa node,nodeid=0,cpus=0-7,memdev=ram-node0 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node1","size":112197632}' \ diff --git a/tests/qemuxml2argvdata/cpu-topology1.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-topology1.x86_64-latest.args index 009c08d71a..af1b464104 100644 --- a/tests/qemuxml2argvdata/cpu-topology1.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-topology1.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \ -overcommit mem-lock=off \ --smp 1,maxcpus=6,sockets=3,dies=1,cores=2,threads=1 \ +-smp 1,maxcpus=6,sockets=3,dies=1,clusters=1,cores=2,threads=1 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/cpu-topology2.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-topology2.x86_64-latest.args index 7ba175fa80..8560eb6126 100644 --- a/tests/qemuxml2argvdata/cpu-topology2.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-topology2.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \ -overcommit mem-lock=off \ --smp 6,sockets=1,dies=1,cores=2,threads=3 \ +-smp 6,sockets=1,dies=1,clusters=1,cores=2,threads=3 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/cpu-topology3.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-topology3.x86_64-latest.args index c11b4cd307..3878c558b8 100644 --- a/tests/qemuxml2argvdata/cpu-topology3.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-topology3.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \ -overcommit mem-lock=off \ --smp 6,sockets=3,dies=1,cores=2,threads=1 \ +-smp 6,sockets=3,dies=1,clusters=1,cores=2,threads=1 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/cpu-topology4.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-topology4.x86_64-latest.args index d0e31ba2b5..8720038c0d 100644 --- a/tests/qemuxml2argvdata/cpu-topology4.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-topology4.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \ -overcommit mem-lock=off \ --smp 1,maxcpus=6,sockets=1,dies=3,cores=2,threads=1 \ +-smp 1,maxcpus=6,sockets=1,dies=3,clusters=1,cores=2,threads=1 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/fd-memory-no-numa-topology.x86_64-latest.args b/tests/qemuxml2argvdata/fd-memory-no-numa-topology.x86_64-latest.args index 58b3c7b544..1bd75a85a6 100644 --- a/tests/qemuxml2argvdata/fd-memory-no-numa-topology.x86_64-latest.args +++ b/tests/qemuxml2argvdata/fd-memory-no-numa-topology.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-instance-00000092/.config \ -m size=14680064k \ -object '{"qom-type":"memory-backend-file","id":"pc.ram","mem-path":"/var/lib/libvirt/qemu/ram/-1-instance-00000092/pc.ram","share":true,"x-use-canonical-path-for-ramblock-id":false,"prealloc":true,"size":15032385536}' \ -overcommit mem-lock=off \ --smp 8,sockets=8,dies=1,cores=1,threads=1 \ +-smp 8,sockets=8,dies=1,clusters=1,cores=1,threads=1 \ -uuid 126f2720-6f8e-45ab-a886-ec9277079a67 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/fd-memory-numa-topology.x86_64-latest.args b/tests/qemuxml2argvdata/fd-memory-numa-topology.x86_64-latest.args index 21f9a16540..17ef506431 100644 --- a/tests/qemuxml2argvdata/fd-memory-numa-topology.x86_64-latest.args +++ b/tests/qemuxml2argvdata/fd-memory-numa-topology.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-instance-00000092/.config \ -cpu qemu64 \ -m size=14680064k \ -overcommit mem-lock=off \ --smp 8,sockets=1,dies=1,cores=8,threads=1 \ +-smp 8,sockets=1,dies=1,clusters=1,cores=8,threads=1 \ -object '{"qom-type":"memory-backend-file","id":"ram-node0","mem-path":"/var/lib/libvirt/qemu/ram/-1-instance-00000092/ram-node0","share":true,"prealloc":true,"size":15032385536}' \ -numa node,nodeid=0,cpus=0-7,memdev=ram-node0 \ -uuid 126f2720-6f8e-45ab-a886-ec9277079a67 \ diff --git a/tests/qemuxml2argvdata/fd-memory-numa-topology2.x86_64-latest.args b/tests/qemuxml2argvdata/fd-memory-numa-topology2.x86_64-latest.args index 3bf16f9caf..b247231b85 100644 --- a/tests/qemuxml2argvdata/fd-memory-numa-topology2.x86_64-latest.args +++ b/tests/qemuxml2argvdata/fd-memory-numa-topology2.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-instance-00000092/.config \ -cpu qemu64 \ -m size=29360128k \ -overcommit mem-lock=off \ --smp 20,sockets=1,dies=1,cores=20,threads=1 \ +-smp 20,sockets=1,dies=1,clusters=1,cores=20,threads=1 \ -object '{"qom-type":"memory-backend-file","id":"ram-node0","mem-path":"/var/lib/libvirt/qemu/ram/-1-instance-00000092/ram-node0","share":false,"prealloc":true,"size":15032385536}' \ -numa node,nodeid=0,cpus=0-7,cpus=16-19,memdev=ram-node0 \ -object '{"qom-type":"memory-backend-file","id":"ram-node1","mem-path":"/var/lib/libvirt/qemu/ram/-1-instance-00000092/ram-node1","share":true,"prealloc":true,"size":15032385536}' \ diff --git a/tests/qemuxml2argvdata/fd-memory-numa-topology3.x86_64-latest.args b/tests/qemuxml2argvdata/fd-memory-numa-topology3.x86_64-latest.args index 3153e22d56..9e94209499 100644 --- a/tests/qemuxml2argvdata/fd-memory-numa-topology3.x86_64-latest.args +++ b/tests/qemuxml2argvdata/fd-memory-numa-topology3.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-instance-00000092/.config \ -cpu qemu64 \ -m size=44040192k \ -overcommit mem-lock=off \ --smp 32,sockets=1,dies=1,cores=32,threads=1 \ +-smp 32,sockets=1,dies=1,clusters=1,cores=32,threads=1 \ -object '{"qom-type":"memory-backend-file","id":"ram-node0","mem-path":"/var/lib/libvirt/qemu/ram/-1-instance-00000092/ram-node0","share":true,"prealloc":true,"size":15032385536}' \ -numa node,nodeid=0,cpus=0-1,cpus=6-31,memdev=ram-node0 \ -object '{"qom-type":"memory-backend-file","id":"ram-node1","mem-path":"/var/lib/libvirt/qemu/ram/-1-instance-00000092/ram-node1","share":true,"prealloc":true,"size":15032385536}' \ diff --git a/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args b/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args index fa376accb5..f30db0ad09 100644 --- a/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args +++ b/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=1048576k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-file","id":"ram-node0","mem-path":"/dev/hugepages2M/libvirt/qemu/-1-QEMUGuest1","share":true,"prealloc":true,"size":1073741824}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memfd-memory-default-hugepage.x86_64-latest.args b/tests/qemuxml2argvdata/memfd-memory-default-hugepage.x86_64-latest.args index 55969eb2fd..f850d7be60 100644 --- a/tests/qemuxml2argvdata/memfd-memory-default-hugepage.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memfd-memory-default-hugepage.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-instance-00000092/.config \ -cpu qemu64 \ -m size=14680064k \ -overcommit mem-lock=off \ --smp 8,sockets=1,dies=1,cores=8,threads=1 \ +-smp 8,sockets=1,dies=1,clusters=1,cores=8,threads=1 \ -object '{"qom-type":"thread-context","id":"tc-ram-node0","node-affinity":[3]}' \ -object '{"qom-type":"memory-backend-memfd","id":"ram-node0","hugetlb":true,"hugetlbsize":2097152,"share":true,"prealloc":true,"size":15032385536,"host-nodes":[3],"policy":"preferred","prealloc-context":"tc-ram-node0"}' \ -numa node,nodeid=0,cpus=0-7,memdev=ram-node0 \ diff --git a/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args b/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args index 1ef2d69fcb..dbe2b82a56 100644 --- a/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-instance-00000092/.config \ -cpu qemu64 \ -m size=14680064k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 8,sockets=1,dies=1,cores=8,threads=1 \ +-smp 8,sockets=1,dies=1,clusters=1,cores=8,threads=1 \ -object '{"qom-type":"thread-context","id":"tc-ram-node0","node-affinity":[3]}' \ -object '{"qom-type":"memory-backend-memfd","id":"ram-node0","hugetlb":true,"hugetlbsize":2097152,"share":true,"prealloc":true,"prealloc-threads":8,"size":15032385536,"host-nodes":[3],"policy":"preferred","prealloc-context":"tc-ram-node0"}' \ -numa node,nodeid=0,cpus=0-7,memdev=ram-node0 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-dimm-addr.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-dimm-addr.x86_64-latest.args index 6ae1fd1b98..c15fe191de 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-dimm-addr.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-dimm-addr.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":224395264}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-dimm.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-dimm.x86_64-latest.args index 71817da309..a729930db2 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-dimm.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-dimm.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":224395264}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-multiple.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-multiple.x86_64-latest.args index ad1dad01ac..f1f2f93a11 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-multiple.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-multiple.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=2095104k,slots=2,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":2145386496}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.x86_64-latest.args index f09ae22927..d53732b39e 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":224395264}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.x86_64-latest.args index 6cfe4b8263..cba467d9d3 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":224395264}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.x86_64-latest.args index 4041c15b2b..2ad23a0224 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":224395264}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args index 3547e96c00..ac5ca187b1 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":224395264}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64-abi-update.ppc64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64-abi-update.ppc64-latest.args index 9b57518fca..c2c1623d9f 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64-abi-update.ppc64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64-abi-update.ppc64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu POWER9 \ -m size=1048576k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":1073741824}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.args index 9b57518fca..c2c1623d9f 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu POWER9 \ -m size=1048576k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":1073741824}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.x86_64-latest.args index 17bacfb2f6..8af4673841 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":224395264}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm.x86_64-latest.args index 1321e5556e..6531caa908 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=1048576k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":1073741824}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-virtio-mem.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-virtio-mem.x86_64-latest.args index 607ce9b0e8..dbe96ae21d 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-virtio-mem.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-virtio-mem.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=2095104k,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":2145386496}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-virtio-pmem.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-virtio-pmem.x86_64-latest.args index 9bbde420a9..df7b7f80a9 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-virtio-pmem.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug-virtio-pmem.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=2095104k,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":2145386496}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug.x86_64-latest.args index 53f0fbc68f..d04d9d73e9 100644 --- a/tests/qemuxml2argvdata/memory-hotplug.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memory-hotplug.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu qemu64 \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":224395264}' \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ diff --git a/tests/qemuxml2argvdata/numad-auto-memory-vcpu-cpuset.x86_64-latest.args b/tests/qemuxml2argvdata/numad-auto-memory-vcpu-cpuset.x86_64-latest.args index d4238f3d9e..138c8255f7 100644 --- a/tests/qemuxml2argvdata/numad-auto-memory-vcpu-cpuset.x86_64-latest.args +++ b/tests/qemuxml2argvdata/numad-auto-memory-vcpu-cpuset.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264,"host-nodes":[0,1,2,3],"policy":"interleave"}' \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/numad-auto-memory-vcpu-no-cpuset-and-placement.x86_64-latest.args b/tests/qemuxml2argvdata/numad-auto-memory-vcpu-no-cpuset-and-placement.x86_64-latest.args index d4238f3d9e..138c8255f7 100644 --- a/tests/qemuxml2argvdata/numad-auto-memory-vcpu-no-cpuset-and-placement.x86_64-latest.args +++ b/tests/qemuxml2argvdata/numad-auto-memory-vcpu-no-cpuset-and-placement.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264,"host-nodes":[0,1,2,3],"policy":"interleave"}' \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/numad-auto-vcpu-no-numatune.x86_64-latest.args b/tests/qemuxml2argvdata/numad-auto-vcpu-no-numatune.x86_64-latest.args new file mode 100644 index 0000000000..f13f04c9d4 --- /dev/null +++ b/tests/qemuxml2argvdata/numad-auto-vcpu-no-numatune.x86_64-latest.args @@ -0,0 +1,36 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=QEMUGuest1,debug-threads=on \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-accel tcg \ +-cpu qemu64 \ +-m size=219136k \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264,"host-nodes":[0,1,2,3],"policy":"bind"}' \ +-overcommit mem-lock=off \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-boot strict=on \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-format","id":"ide0-0-0","bootindex":1}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x2"}' \ +-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ +-msg timestamp=on diff --git a/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune.x86_64-latest.args b/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune.x86_64-latest.args index 9ddfb286b5..f1c49619db 100644 --- a/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune.x86_64-latest.args +++ b/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264,"host-nodes":[0],"policy":"interleave"}' \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/numad-static-memory-auto-vcpu.x86_64-latest.args b/tests/qemuxml2argvdata/numad-static-memory-auto-vcpu.x86_64-latest.args index d4238f3d9e..138c8255f7 100644 --- a/tests/qemuxml2argvdata/numad-static-memory-auto-vcpu.x86_64-latest.args +++ b/tests/qemuxml2argvdata/numad-static-memory-auto-vcpu.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264,"host-nodes":[0,1,2,3],"policy":"interleave"}' \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/numad-static-vcpu-no-numatune.x86_64-latest.args b/tests/qemuxml2argvdata/numad-static-vcpu-no-numatune.x86_64-latest.args new file mode 100644 index 0000000000..76ca5c4bea --- /dev/null +++ b/tests/qemuxml2argvdata/numad-static-vcpu-no-numatune.x86_64-latest.args @@ -0,0 +1,36 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=QEMUGuest1,debug-threads=on \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ +-accel tcg \ +-cpu qemu64 \ +-m size=219136k \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \ +-overcommit mem-lock=off \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-boot strict=on \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-format","id":"ide0-0-0","bootindex":1}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x2"}' \ +-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ +-msg timestamp=on diff --git a/tests/qemuxml2argvdata/numad.x86_64-latest.args b/tests/qemuxml2argvdata/numad.x86_64-latest.args index d4238f3d9e..138c8255f7 100644 --- a/tests/qemuxml2argvdata/numad.x86_64-latest.args +++ b/tests/qemuxml2argvdata/numad.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264,"host-nodes":[0,1,2,3],"policy":"interleave"}' \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/numatune-auto-nodeset-invalid.x86_64-latest.args b/tests/qemuxml2argvdata/numatune-auto-nodeset-invalid.x86_64-latest.args index 57a2b893f1..e35471d91b 100644 --- a/tests/qemuxml2argvdata/numatune-auto-nodeset-invalid.x86_64-latest.args +++ b/tests/qemuxml2argvdata/numatune-auto-nodeset-invalid.x86_64-latest.args @@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264,"host-nodes":[0,1,2,3],"policy":"preferred"}' \ -overcommit mem-lock=off \ --smp 2,sockets=2,dies=1,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,clusters=1,cores=1,threads=1 \ -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -display none \ -no-user-config \ diff --git a/tests/qemuxml2argvdata/pci-expander-bus.x86_64-latest.args b/tests/qemuxml2argvdata/pci-expander-bus.x86_64-latest.args index bf553a8e32..d3960731be 100644 --- a/tests/qemuxml2argvdata/pci-expander-bus.x86_64-latest.args +++ b/tests/qemuxml2argvdata/pci-expander-bus.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-expander-test/.config \ -cpu qemu64 \ -m size=219136k \ -overcommit mem-lock=off \ --smp 16,sockets=2,dies=1,cores=4,threads=2 \ +-smp 16,sockets=2,dies=1,clusters=1,cores=4,threads=2 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":112197632}' \ -numa node,nodeid=0,cpus=0-7,memdev=ram-node0 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node1","size":112197632}' \ diff --git a/tests/qemuxml2argvdata/pcie-expander-bus.x86_64-latest.args b/tests/qemuxml2argvdata/pcie-expander-bus.x86_64-latest.args index 3fb86c29c2..b179fadc27 100644 --- a/tests/qemuxml2argvdata/pcie-expander-bus.x86_64-latest.args +++ b/tests/qemuxml2argvdata/pcie-expander-bus.x86_64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-pcie-expander-bus-te/.config \ -cpu qemu64 \ -m size=219136k \ -overcommit mem-lock=off \ --smp 16,sockets=2,dies=1,cores=4,threads=2 \ +-smp 16,sockets=2,dies=1,clusters=1,cores=4,threads=2 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":112197632}' \ -numa node,nodeid=0,cpus=0-7,memdev=ram-node0 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node1","size":112197632}' \ diff --git a/tests/qemuxml2argvdata/pseries-phb-numa-node.ppc64-latest.args b/tests/qemuxml2argvdata/pseries-phb-numa-node.ppc64-latest.args index 7ffcb1d8c5..942540a296 100644 --- a/tests/qemuxml2argvdata/pseries-phb-numa-node.ppc64-latest.args +++ b/tests/qemuxml2argvdata/pseries-phb-numa-node.ppc64-latest.args @@ -15,7 +15,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -cpu POWER9 \ -m size=2097152k \ -overcommit mem-lock=off \ --smp 8,sockets=2,dies=1,cores=1,threads=4 \ +-smp 8,sockets=2,dies=1,clusters=1,cores=1,threads=4 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":1073741824,"host-nodes":[1],"policy":"bind"}' \ -numa node,nodeid=0,cpus=0-3,memdev=ram-node0 \ -object '{"qom-type":"memory-backend-ram","id":"ram-node1","size":1073741824,"host-nodes":[2],"policy":"bind"}' \ -- Gitee From 46a5a975b66ef6fab0810b45235990231b942c88 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Fri, 5 Jan 2024 18:51:29 +0100 Subject: [PATCH 6/9] qemu: Make monitor aware of CPU clusters commit 763381df53d5a67804f828cb8db661f694d35296 upstream. This makes it so libvirt can obtain accurate information about guest CPUs from QEMU, and should make it possible to correctly perform operations such as CPU hotplug. Of course this is mostly moot at the moment: only aarch64 can use CPU clusters, and CPU hotplug is not yet implemented on that architecture. Signed-off-by: Andrea Bolognani Reviewed-by: Peter Krempa Signed-off-by: zhangxinghao --- src/qemu/qemu_domain.c | 3 ++- src/qemu/qemu_monitor.c | 2 ++ src/qemu/qemu_monitor.h | 2 ++ src/qemu/qemu_monitor_json.c | 5 +++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 5fb3c67f53..595fcfb519 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -9935,11 +9935,12 @@ qemuDomainRefreshVcpuInfo(virDomainObj *vm, if (validTIDs) VIR_DEBUG("vCPU[%zu] PID %llu is valid " - "(node=%d socket=%d die=%d core=%d thread=%d)", + "(node=%d socket=%d die=%d cluster=%d core=%d thread=%d)", i, (unsigned long long)info[i].tid, info[i].node_id, info[i].socket_id, info[i].die_id, + info[i].cluster_id, info[i].core_id, info[i].thread_id); } diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index ec586b9036..3b864926f2 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -1501,6 +1501,7 @@ qemuMonitorCPUInfoClear(qemuMonitorCPUInfo *cpus, cpus[i].qemu_id = -1; cpus[i].socket_id = -1; cpus[i].die_id = -1; + cpus[i].cluster_id = -1; cpus[i].core_id = -1; cpus[i].thread_id = -1; cpus[i].node_id = -1; @@ -1658,6 +1659,7 @@ qemuMonitorGetCPUInfoHotplug(struct qemuMonitorQueryHotpluggableCpusEntry *hotpl !vcpus[mainvcpu].online; vcpus[mainvcpu].socket_id = hotplugvcpus[i].socket_id; vcpus[mainvcpu].die_id = hotplugvcpus[i].die_id; + vcpus[mainvcpu].cluster_id = hotplugvcpus[i].cluster_id; vcpus[mainvcpu].core_id = hotplugvcpus[i].core_id; vcpus[mainvcpu].thread_id = hotplugvcpus[i].thread_id; vcpus[mainvcpu].node_id = hotplugvcpus[i].node_id; diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index c4af9b407d..981c609e9f 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -590,6 +590,7 @@ struct qemuMonitorQueryHotpluggableCpusEntry { int node_id; int socket_id; int die_id; + int cluster_id; int core_id; int thread_id; @@ -613,6 +614,7 @@ struct _qemuMonitorCPUInfo { * all entries are -1 */ int socket_id; int die_id; + int cluster_id; int core_id; int thread_id; int node_id; diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index a9133793f6..bfd9660ba6 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -7576,12 +7576,14 @@ qemuMonitorJSONProcessHotpluggableCpusReply(virJSONValue *vcpu, entry->node_id = -1; entry->socket_id = -1; entry->die_id = -1; + entry->cluster_id = -1; entry->core_id = -1; entry->thread_id = -1; ignore_value(virJSONValueObjectGetNumberInt(props, "node-id", &entry->node_id)); ignore_value(virJSONValueObjectGetNumberInt(props, "socket-id", &entry->socket_id)); ignore_value(virJSONValueObjectGetNumberInt(props, "die-id", &entry->die_id)); + ignore_value(virJSONValueObjectGetNumberInt(props, "cluster-id", &entry->cluster_id)); ignore_value(virJSONValueObjectGetNumberInt(props, "core-id", &entry->core_id)); ignore_value(virJSONValueObjectGetNumberInt(props, "thread-id", &entry->thread_id)); @@ -7619,6 +7621,9 @@ qemuMonitorQueryHotpluggableCpusEntrySort(const void *p1, if (a->die_id != b->die_id) return a->die_id - b->die_id; + if (a->cluster_id != b->cluster_id) + return a->cluster_id - b->cluster_id; + if (a->core_id != b->core_id) return a->core_id - b->core_id; -- Gitee From 2ff4451f733bb55ccd417bd841c45df58165f121 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Mon, 8 Jan 2024 18:44:25 +0100 Subject: [PATCH 7/9] tests: Verify handling of CPU clusters in QMP data commit cb7abb0703f4c2b55b17cce5ecb8f83fed8775be upstream. Since aarch64 doesn't support CPU hotplug at the moment, we have to get a bit creative. While the 'query-cpus-fast' output is taken directly from a VM configured as 16 the 'query-hotpluggable-cpus' output is constructed by hand starting from the former and using the 'x86-dies' test data as a model. Signed-off-by: Andrea Bolognani Reviewed-by: Peter Krempa Signed-off-by: zhangxinghao --- ...torjson-cpuinfo-aarch64-clusters-cpus.json | 88 +++++++++ ...json-cpuinfo-aarch64-clusters-hotplug.json | 171 ++++++++++++++++++ ...umonitorjson-cpuinfo-aarch64-clusters.data | 108 +++++++++++ tests/qemumonitorjsontest.c | 9 +- 4 files changed, 375 insertions(+), 1 deletion(-) create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters-cpus.json create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters-hotplug.json create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters.data diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters-cpus.json b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters-cpus.json new file mode 100644 index 0000000000..817f65d109 --- /dev/null +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters-cpus.json @@ -0,0 +1,88 @@ +{ + "return": [ + { + "thread-id": 284700, + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 0, + "cluster-id": 0 + }, + "qom-path": "/machine/unattached/device[0]", + "cpu-index": 0, + "target": "aarch64" + }, + { + "thread-id": 284701, + "props": { + "core-id": 0, + "thread-id": 1, + "socket-id": 0, + "cluster-id": 0 + }, + "qom-path": "/machine/unattached/device[1]", + "cpu-index": 1, + "target": "aarch64" + }, + { + "thread-id": 284702, + "props": { + "core-id": 1, + "thread-id": 0, + "socket-id": 0, + "cluster-id": 0 + }, + "qom-path": "/machine/unattached/device[2]", + "cpu-index": 2, + "target": "aarch64" + }, + { + "thread-id": 284703, + "props": { + "core-id": 1, + "thread-id": 1, + "socket-id": 0, + "cluster-id": 0 + }, + "qom-path": "/machine/unattached/device[3]", + "cpu-index": 3, + "target": "aarch64" + }, + { + "thread-id": 284704, + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 0, + "cluster-id": 1 + }, + "qom-path": "/machine/unattached/device[4]", + "cpu-index": 4, + "target": "aarch64" + }, + { + "thread-id": 284705, + "props": { + "core-id": 0, + "thread-id": 1, + "socket-id": 0, + "cluster-id": 1 + }, + "qom-path": "/machine/unattached/device[5]", + "cpu-index": 5, + "target": "aarch64" + }, + { + "thread-id": 284706, + "props": { + "core-id": 1, + "thread-id": 0, + "socket-id": 0, + "cluster-id": 1 + }, + "qom-path": "/machine/unattached/device[6]", + "cpu-index": 6, + "target": "aarch64" + } + ] +} diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters-hotplug.json b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters-hotplug.json new file mode 100644 index 0000000000..7ae30bf111 --- /dev/null +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters-hotplug.json @@ -0,0 +1,171 @@ +{ + "return": [ + { + "props": { + "core-id": 1, + "thread-id": 1, + "socket-id": 1, + "cluster-id": 1 + }, + "vcpus-count": 1, + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 1, + "thread-id": 0, + "socket-id": 1, + "cluster-id": 1 + }, + "vcpus-count": 1, + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 1, + "socket-id": 1, + "cluster-id": 1 + }, + "vcpus-count": 1, + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 1, + "cluster-id": 1 + }, + "vcpus-count": 1, + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 1, + "thread-id": 1, + "socket-id": 1, + "cluster-id": 0 + }, + "vcpus-count": 1, + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 1, + "thread-id": 0, + "socket-id": 1, + "cluster-id": 0 + }, + "vcpus-count": 1, + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 1, + "socket-id": 1, + "cluster-id": 0 + }, + "vcpus-count": 1, + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 1, + "cluster-id": 0 + }, + "vcpus-count": 1, + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 1, + "thread-id": 1, + "socket-id": 0, + "cluster-id": 1 + }, + "vcpus-count": 1, + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 1, + "thread-id": 0, + "socket-id": 0, + "cluster-id": 1 + }, + "vcpus-count": 1, + "qom-path": "/machine/unattached/device[6]", + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 1, + "socket-id": 0, + "cluster-id": 1 + }, + "vcpus-count": 1, + "qom-path": "/machine/unattached/device[5]", + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 0, + "cluster-id": 1 + }, + "vcpus-count": 1, + "qom-path": "/machine/unattached/device[4]", + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 1, + "thread-id": 1, + "socket-id": 0, + "cluster-id": 0 + }, + "vcpus-count": 1, + "qom-path": "/machine/unattached/device[3]", + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 1, + "thread-id": 0, + "socket-id": 0, + "cluster-id": 0 + }, + "vcpus-count": 1, + "qom-path": "/machine/unattached/device[2]", + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 1, + "socket-id": 0, + "cluster-id": 0 + }, + "vcpus-count": 1, + "qom-path": "/machine/unattached/device[1]", + "type": "host-arm-cpu" + }, + { + "props": { + "core-id": 0, + "thread-id": 0, + "socket-id": 0, + "cluster-id": 0 + }, + "vcpus-count": 1, + "qom-path": "/machine/unattached/device[0]", + "type": "host-arm-cpu" + } + ] +} diff --git a/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters.data b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters.data new file mode 100644 index 0000000000..87e927e7a8 --- /dev/null +++ b/tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-aarch64-clusters.data @@ -0,0 +1,108 @@ +[vcpu libvirt-id='0'] + online=yes + hotpluggable=no + thread-id='284700' + enable-id='1' + query-cpus-id='0' + type='host-arm-cpu' + qom_path='/machine/unattached/device[0]' + topology: socket='0' cluster_id='0' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='1'] + online=yes + hotpluggable=no + thread-id='284701' + enable-id='2' + query-cpus-id='1' + type='host-arm-cpu' + qom_path='/machine/unattached/device[1]' + topology: socket='0' cluster_id='0' core='0' thread='1' vcpus='1' +[vcpu libvirt-id='2'] + online=yes + hotpluggable=no + thread-id='284702' + enable-id='3' + query-cpus-id='2' + type='host-arm-cpu' + qom_path='/machine/unattached/device[2]' + topology: socket='0' cluster_id='0' core='1' thread='0' vcpus='1' +[vcpu libvirt-id='3'] + online=yes + hotpluggable=no + thread-id='284703' + enable-id='4' + query-cpus-id='3' + type='host-arm-cpu' + qom_path='/machine/unattached/device[3]' + topology: socket='0' cluster_id='0' core='1' thread='1' vcpus='1' +[vcpu libvirt-id='4'] + online=yes + hotpluggable=no + thread-id='284704' + enable-id='5' + query-cpus-id='4' + type='host-arm-cpu' + qom_path='/machine/unattached/device[4]' + topology: socket='0' cluster_id='1' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='5'] + online=yes + hotpluggable=no + thread-id='284705' + enable-id='6' + query-cpus-id='5' + type='host-arm-cpu' + qom_path='/machine/unattached/device[5]' + topology: socket='0' cluster_id='1' core='0' thread='1' vcpus='1' +[vcpu libvirt-id='6'] + online=yes + hotpluggable=no + thread-id='284706' + enable-id='7' + query-cpus-id='6' + type='host-arm-cpu' + qom_path='/machine/unattached/device[6]' + topology: socket='0' cluster_id='1' core='1' thread='0' vcpus='1' +[vcpu libvirt-id='7'] + online=no + hotpluggable=yes + type='host-arm-cpu' + topology: socket='0' cluster_id='1' core='1' thread='1' vcpus='1' +[vcpu libvirt-id='8'] + online=no + hotpluggable=yes + type='host-arm-cpu' + topology: socket='1' cluster_id='0' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='9'] + online=no + hotpluggable=yes + type='host-arm-cpu' + topology: socket='1' cluster_id='0' core='0' thread='1' vcpus='1' +[vcpu libvirt-id='10'] + online=no + hotpluggable=yes + type='host-arm-cpu' + topology: socket='1' cluster_id='0' core='1' thread='0' vcpus='1' +[vcpu libvirt-id='11'] + online=no + hotpluggable=yes + type='host-arm-cpu' + topology: socket='1' cluster_id='0' core='1' thread='1' vcpus='1' +[vcpu libvirt-id='12'] + online=no + hotpluggable=yes + type='host-arm-cpu' + topology: socket='1' cluster_id='1' core='0' thread='0' vcpus='1' +[vcpu libvirt-id='13'] + online=no + hotpluggable=yes + type='host-arm-cpu' + topology: socket='1' cluster_id='1' core='0' thread='1' vcpus='1' +[vcpu libvirt-id='14'] + online=no + hotpluggable=yes + type='host-arm-cpu' + topology: socket='1' cluster_id='1' core='1' thread='0' vcpus='1' +[vcpu libvirt-id='15'] + online=no + hotpluggable=yes + type='host-arm-cpu' + topology: socket='1' cluster_id='1' core='1' thread='1' vcpus='1' diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index d9ebb429e7..45cee23798 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -2262,13 +2262,16 @@ testQemuMonitorCPUInfoFormat(qemuMonitorCPUInfo *vcpus, if (vcpu->qom_path) virBufferAsprintf(&buf, "qom_path='%s'\n", vcpu->qom_path); - if (vcpu->socket_id != -1 || vcpu->core_id != -1 || + if (vcpu->socket_id != -1 || vcpu->die_id != -1 || + vcpu->cluster_id != -1 || vcpu->core_id != -1 || vcpu->thread_id != -1 || vcpu->vcpus != 0) { virBufferAddLit(&buf, "topology:"); if (vcpu->socket_id != -1) virBufferAsprintf(&buf, " socket='%d'", vcpu->socket_id); if (vcpu->die_id != -1) virBufferAsprintf(&buf, " die='%d'", vcpu->die_id); + if (vcpu->cluster_id != -1) + virBufferAsprintf(&buf, " cluster_id='%d'", vcpu->cluster_id); if (vcpu->core_id != -1) virBufferAsprintf(&buf, " core='%d'", vcpu->core_id); if (vcpu->thread_id != -1) @@ -2919,6 +2922,10 @@ mymain(void) DO_TEST_CPU_INFO("ppc64-hotplug-4", 24); DO_TEST_CPU_INFO("ppc64-no-threads", 16); + /* aarch64 doesn't support CPU hotplug yet, so the data used in + * this test is partially synthetic */ + DO_TEST_CPU_INFO("aarch64-clusters", 16); + DO_TEST_CPU_INFO("s390", 2); -- Gitee From d2898e63a8b78a5ad231aa41e970a06fa117426b Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Mon, 8 Jan 2024 16:13:25 +0100 Subject: [PATCH 8/9] docs: Improve documentation for CPU topology commit 032d67311a10fe6ac196496c795e483649227916 upstream. On the guest configuration side, mention that support for the "dies" attribute was introduced in libvirt 6.1.0 and clarify that the ability to use non-default values is subject to architecture and machine limitations. On the host capabilities side, the documentation was pretty much entirely missing. It's still far from perfect, but anything is better than having no information at all. Signed-off-by: Andrea Bolognani Reviewed-by: Peter Krempa Signed-off-by: zhangxinghao --- docs/formatcaps.rst | 48 +++++++++++++++++++++++++++++++++++++------ docs/formatdomain.rst | 16 +++++++++------ 2 files changed, 52 insertions(+), 12 deletions(-) diff --git a/docs/formatcaps.rst b/docs/formatcaps.rst index 3cccf70882..60f8b7caca 100644 --- a/docs/formatcaps.rst +++ b/docs/formatcaps.rst @@ -37,6 +37,12 @@ The ```` element consists of the following child elements: The host UUID. ``cpu`` The host CPU architecture and features. + + Note that, while this element contains a ``topology`` sub-element, + the information contained therein is farily high-level and likely + not very useful when it comes to optimizing guest vCPU placement. + Look into the ``topology`` *element*, described below, for more + detailed information. ``power_management`` whether host is capable of memory suspend, disk hibernation, or hybrid suspend. @@ -44,12 +50,42 @@ The ```` element consists of the following child elements: This element exposes information on the hypervisor's migration capabilities, like live migration, supported URI transports, and so on. ``topology`` - This element embodies the host internal topology. Management applications may - want to learn this information when orchestrating new guests - e.g. due to - reduce inter-NUMA node transfers. Note that the ``sockets`` value reported - here is per-NUMA-node; this is in contrast to the value given in domain - definitions, which is interpreted as a total number of sockets for the - domain. + This element describes the host CPU topology in detail. + + Management applications may want to use this information when defining new + guests: for example, in order to ensure that all vCPUs are scheduled on + CPUs that are in the same NUMA node or even CPU core. + + The ``cells`` sub-element contains a list of NUMA nodes, each one + represented by a single ``cell`` element. Within each ``cell``, a ``cpus`` + sub-element contains a list of logical CPUs, each one represented by a + single ``cpu`` element. In both cases, the ``num`` attribute of the + top-level element contains the number of children. + + Each ``cpu`` element contains the following attributes: + + ``id`` + CPU identifier. Can be used to refer to it in the context of + `CPU tuning `__. + + ``socket_id`` + Identifier for the physical package the CPU is in. + + ``die_id`` + Identifier for the die the CPU is in. + + Note that not all architectures support CPU dies: if the current + architecture doesn't, the value will be 0 for all CPUs. + + ``core_id`` + Identifier for the core the CPU is in. + + ``siblings`` + List of CPUs that are in the same core. + + The list will include the current CPU, plus all other CPUs that have the + same values for ``socket_id``, ``die_id`` and ``core_id``. + ``secmodel`` To find out default security labels for different security models you need to parse this element. In contrast with the former elements, this is repeated diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index c5c069e6df..b63e0da451 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -1578,14 +1578,18 @@ In case no restrictions need to be put on CPU model and its features, a simpler supported vendors can be found in ``cpu_map/*_vendors.xml``. ``topology`` The ``topology`` element specifies requested topology of virtual CPU provided - to the guest. Four attributes, ``sockets``, ``dies``, ``cores``, and - ``threads``, accept non-zero positive integer values. They refer to the - total number of CPU sockets, number of dies per socket, number of cores per - die, and number of threads per core, respectively. The ``dies`` attribute is - optional and will default to 1 if omitted, while the other attributes are all - mandatory. Hypervisors may require that the maximum number of vCPUs specified + to the guest. + Its attributes ``sockets``, ``dies`` (:since:`Since 6.1.0`), ``cores``, + and ``threads`` accept non-zero positive integer values. + They refer to the total number of CPU sockets, number of dies per socket, + number of cores per die, and number of threads per core, respectively. + The ``dies`` attribute is optional and will default to 1 if omitted, while + the other attributes are all mandatory. + Hypervisors may require that the maximum number of vCPUs specified by the ``cpus`` element equals to the number of vcpus resulting from the topology. + Moreover, not all architectures and machine types support specifying a value + other than 1 for all attributes. ``feature`` The ``cpu`` element can contain zero or more ``feature`` elements used to fine-tune features provided by the selected CPU model. The list of known -- Gitee From 8276e7cdd0a6a4dfc34ec71e4e2c5231cca5fe86 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Mon, 8 Jan 2024 16:11:51 +0100 Subject: [PATCH 9/9] docs: Document CPU clusters commit 1968f69b012a3b4a75f14164f0802ebf98bcffda upstream. Signed-off-by: Andrea Bolognani Reviewed-by: Peter Krempa Signed-off-by: zhangxinghao --- docs/formatcaps.rst | 26 ++++++++++++++++---------- docs/formatdomain.rst | 18 ++++++++++-------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/docs/formatcaps.rst b/docs/formatcaps.rst index 60f8b7caca..f37532296f 100644 --- a/docs/formatcaps.rst +++ b/docs/formatcaps.rst @@ -77,6 +77,12 @@ The ```` element consists of the following child elements: Note that not all architectures support CPU dies: if the current architecture doesn't, the value will be 0 for all CPUs. + ``cluster_id`` + Identifier for the cluster the CPU is in. + + Note that not all architectures support CPU clusters: if the current + architecture doesn't, the value will be 0 for all CPUs. + ``core_id`` Identifier for the core the CPU is in. @@ -84,7 +90,7 @@ The ```` element consists of the following child elements: List of CPUs that are in the same core. The list will include the current CPU, plus all other CPUs that have the - same values for ``socket_id``, ``die_id`` and ``core_id``. + same values for ``socket_id``, ``die_id``, ``cluster_id`` and ``core_id``. ``secmodel`` To find out default security labels for different security models you need to @@ -196,7 +202,7 @@ capabilities enabled in the chip and BIOS you will see: - + @@ -261,14 +267,14 @@ capabilities enabled in the chip and BIOS you will see: - - - - - - - - + + + + + + + + diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index b63e0da451..c5c71f6f47 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -1377,7 +1377,7 @@ following collection of elements. :since:`Since 0.7.5` core2duo Intel - + @@ -1388,7 +1388,7 @@ following collection of elements. :since:`Since 0.7.5` - + ... @@ -1414,7 +1414,7 @@ In case no restrictions need to be put on CPU model and its features, a simpler ... - + ... @@ -1579,12 +1579,14 @@ In case no restrictions need to be put on CPU model and its features, a simpler ``topology`` The ``topology`` element specifies requested topology of virtual CPU provided to the guest. - Its attributes ``sockets``, ``dies`` (:since:`Since 6.1.0`), ``cores``, - and ``threads`` accept non-zero positive integer values. + Its attributes ``sockets``, ``dies`` (:since:`Since 6.1.0`), ``clusters`` + (:since:`Since 10.1.0`), ``cores``, and ``threads`` accept non-zero positive + integer values. They refer to the total number of CPU sockets, number of dies per socket, - number of cores per die, and number of threads per core, respectively. - The ``dies`` attribute is optional and will default to 1 if omitted, while - the other attributes are all mandatory. + number of clusters per die, number of cores per cluster, and number of + threads per core, respectively. + The ``dies`` and ``clusters`` attributes are optional and will default to 1 + if omitted, while the other attributes are all mandatory. Hypervisors may require that the maximum number of vCPUs specified by the ``cpus`` element equals to the number of vcpus resulting from the topology. -- Gitee