[libvirt] [PATCH 0/5] introduce support for CPU dies in host/guest topology

Latest generation CPUs (CascadeLake-AP) support a new topology level known as a 'die', sitting between a socket and a core. QEMU supports this with -smp arg since 4.1.0 Linux can report this via /sys/devices/system/cpu/cpuNNN/topology via 'die_id' and 'die_cpus' and 'die_cpus_list' files since 5.2 This series adds support for <topology> in guest XML to have a new 'dies' parameter, passed to QEMU, which defaults to '1' if omitted. It extends host capabilities so that NUMA topology reports a new 'die_id' attribute We can't expand 'virNodeInfoPtr' struct to have a die field, so this will remain forever reporting 'cores' as being 'dies * cores'. The <topology> in host capabilities XML is an interesting question. If we are strict with our API semantics we would *not* add a 'dies' parameter with any value other than '1' to <topology> in the host capabilities. If we reported a value other than 1, then any existing apps which multiple sockets*cores*threads will get the wrong total CPU count. We already know <topology> is broken by design for asymetric hardware, so we could simply document that it will forever be broken wrt to CPU dies too. In this case we might be better to not even report 'dies=1', just leave out the attr entirely. Interestingly though, <topology> is already more broken than it should be. For a VM with -smp 12,sockets=2,dies=3,cores=2,threads=1 it is reporting <topology sockets=1 dies=1 cores=12 threads=1>. It should at least do <topology sockets=2 dies=1 cores=6 threads=1>. I suspect the presence of dies is confusing the really incredibly horrible logic in virHostCPUGetInfoLinux. This will also impact virNodeInfoPtr data. So even if we don't report dies, I think we still have a bug that needs fixing here for the coarse node topology. I'm also confused about what I see with EPYC. IIUC, it was supposed to use the 'dies' concept, but in machines I've tested, Linux never reports die count other than 1. Perhaps only certain EPYC CPU models or generations use 'dies', or perhaps Linux isn't reporting correctly for EPYC, or perhaps I'm mislead into believeing it uses dies. Anyway, the upshot is I've not found any real hardware to test this series on. I've tested it only inside a QEMU guest with the suitable -smp arg to fake dies. Daniel P. Berrangé (5): conf: add support for specifying CPU "dies" parameter conf: remove unused virCapabilitiesSetHostCPU method qemu: add support for specifying CPU "dies" topology parameter hostcpu: add support for reporting die_id in NUMA topology tests: add host CPU data files for validating die_id docs/formatcaps.html.in | 2 +- docs/formatdomain.html.in | 14 +- docs/schemas/capability.rng | 3 + docs/schemas/cputypes.rng | 5 + src/bhyve/bhyve_command.c | 5 + src/conf/capabilities.c | 26 +- src/conf/capabilities.h | 7 +- src/conf/cpu_conf.c | 18 +- src/conf/cpu_conf.h | 1 + src/conf/domain_conf.c | 3 +- src/cpu/cpu.c | 1 + src/libvirt_linux.syms | 1 + src/libvirt_private.syms | 1 - src/libxl/libxl_capabilities.c | 1 + src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 12 +- src/util/virhostcpu.c | 16 + src/util/virhostcpu.h | 1 + src/vmx/vmx.c | 7 + .../x86_64-host+guest,model486-result.xml | 2 +- .../x86_64-host+guest,models-result.xml | 2 +- .../cputestdata/x86_64-host+guest-result.xml | 2 +- tests/cputestdata/x86_64-host+guest.xml | 2 +- .../x86_64-host+host-model-nofallback.xml | 2 +- ...t-Haswell-noTSX+Haswell,haswell-result.xml | 2 +- ...ell-noTSX+Haswell-noTSX,haswell-result.xml | 2 +- ...ost-Haswell-noTSX+Haswell-noTSX-result.xml | 2 +- .../x86_64-host-worse+guest-result.xml | 2 +- .../caps_4.1.0.x86_64.xml | 1 + .../caps_4.2.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + .../caps_4.2.0.x86_64.xml | 1 + .../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 +- .../x86-old-bulk-result-conf.xml | 2 +- .../x86-old-bulk-result-live.xml | 2 +- .../cpu-hotplug-granularity.xml | 2 +- .../qemuxml2argvdata/cpu-hotplug-startup.xml | 2 +- tests/qemuxml2argvdata/cpu-numa-disjoint.xml | 2 +- .../qemuxml2argvdata/cpu-numa-disordered.xml | 2 +- tests/qemuxml2argvdata/cpu-numa-memshared.xml | 2 +- .../cpu-numa-no-memory-element.xml | 2 +- tests/qemuxml2argvdata/cpu-numa1.xml | 2 +- tests/qemuxml2argvdata/cpu-numa2.xml | 2 +- tests/qemuxml2argvdata/cpu-numa3.xml | 2 +- tests/qemuxml2argvdata/cpu-topology1.xml | 2 +- tests/qemuxml2argvdata/cpu-topology2.xml | 2 +- tests/qemuxml2argvdata/cpu-topology3.xml | 2 +- .../fd-memory-no-numa-topology.xml | 2 +- .../fd-memory-numa-topology.xml | 2 +- .../fd-memory-numa-topology2.xml | 2 +- .../fd-memory-numa-topology3.xml | 2 +- .../graphics-spice-timeout.xml | 2 +- .../hugepages-nvdimm.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/hugepages-nvdimm.xml | 2 +- ...memory-default-hugepage.x86_64-latest.args | 2 +- .../memfd-memory-default-hugepage.xml | 2 +- .../memfd-memory-numa.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/memfd-memory-numa.xml | 2 +- tests/qemuxml2argvdata/memory-align-fail.xml | 2 +- .../memory-hotplug-dimm-addr.xml | 2 +- .../qemuxml2argvdata/memory-hotplug-dimm.xml | 2 +- ...y-hotplug-nvdimm-access.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-access.xml | 2 +- ...ry-hotplug-nvdimm-align.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-align.xml | 2 +- ...ry-hotplug-nvdimm-label.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-label.xml | 2 +- ...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-pmem.xml | 2 +- ...hotplug-nvdimm-readonly.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-readonly.xml | 2 +- .../memory-hotplug-nvdimm.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm.xml | 2 +- tests/qemuxml2argvdata/memory-hotplug.xml | 2 +- .../numad-auto-memory-vcpu-cpuset.xml | 2 +- ...to-memory-vcpu-no-cpuset-and-placement.xml | 2 +- .../numad-auto-vcpu-no-numatune.xml | 2 +- ...d-auto-vcpu-static-numatune-no-nodeset.xml | 2 +- .../numad-auto-vcpu-static-numatune.xml | 2 +- .../numad-static-memory-auto-vcpu.xml | 2 +- .../numad-static-vcpu-no-numatune.xml | 2 +- tests/qemuxml2argvdata/numad.xml | 2 +- .../numatune-auto-nodeset-invalid.xml | 2 +- .../numatune-memory-invalid-nodeset.xml | 2 +- tests/qemuxml2argvdata/numatune-memory.xml | 2 +- .../pci-expander-bus-bad-machine.xml | 2 +- tests/qemuxml2argvdata/pci-expander-bus.xml | 2 +- .../pcie-expander-bus-bad-bus.xml | 2 +- .../pcie-expander-bus-bad-machine.xml | 2 +- tests/qemuxml2argvdata/pcie-expander-bus.xml | 2 +- .../pseries-default-phb-numa-node.xml | 2 +- .../pseries-phb-numa-node.xml | 2 +- tests/qemuxml2argvdata/smp-dies.args | 29 ++ tests/qemuxml2argvdata/smp-dies.xml | 33 ++ tests/qemuxml2argvdata/smp.xml | 2 +- tests/qemuxml2argvtest.c | 1 + .../qemuxml2xmloutdata/cpu-numa-disjoint.xml | 2 +- .../cpu-numa-disordered.xml | 2 +- .../qemuxml2xmloutdata/cpu-numa-memshared.xml | 2 +- .../cpu-numa-no-memory-element.xml | 2 +- tests/qemuxml2xmloutdata/cpu-numa1.xml | 2 +- tests/qemuxml2xmloutdata/cpu-numa2.xml | 2 +- .../graphics-spice-timeout.xml | 2 +- .../memory-hotplug-dimm.xml | 2 +- tests/qemuxml2xmloutdata/memory-hotplug.xml | 2 +- .../numad-auto-memory-vcpu-cpuset.xml | 2 +- ...to-memory-vcpu-no-cpuset-and-placement.xml | 2 +- .../numad-auto-vcpu-no-numatune.xml | 2 +- .../numad-static-vcpu-no-numatune.xml | 2 +- tests/qemuxml2xmloutdata/pci-expander-bus.xml | 2 +- .../qemuxml2xmloutdata/pcie-expander-bus.xml | 2 +- .../pseries-phb-numa-node.xml | 2 +- tests/qemuxml2xmloutdata/smp.xml | 2 +- .../linux-basic-dies/system/cpu | 1 + .../linux-basic-dies/system/node | 1 + .../vircaps2xmldata/vircaps-aarch64-basic.xml | 32 +- .../vircaps-x86_64-basic-dies.xml | 35 ++ .../vircaps2xmldata/vircaps-x86_64-basic.xml | 32 +- .../vircaps2xmldata/vircaps-x86_64-caches.xml | 16 +- .../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 +- tests/vircaps2xmltest.c | 1 + .../cpu/cpu0/topology/core_cpus | 1 + .../cpu/cpu0/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu0/topology/core_id | 1 + .../cpu/cpu0/topology/core_siblings | 1 + .../cpu/cpu0/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu0/topology/die_cpus | 1 + .../cpu/cpu0/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu0/topology/die_id | 1 + .../cpu/cpu0/topology/package_cpus | 1 + .../cpu/cpu0/topology/package_cpus_list | 1 + .../cpu/cpu0/topology/physical_package_id | 1 + .../cpu/cpu0/topology/thread_siblings | 1 + .../cpu/cpu0/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu1/online | 1 + .../cpu/cpu1/topology/core_cpus | 1 + .../cpu/cpu1/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu1/topology/core_id | 1 + .../cpu/cpu1/topology/core_siblings | 1 + .../cpu/cpu1/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu1/topology/die_cpus | 1 + .../cpu/cpu1/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu1/topology/die_id | 1 + .../cpu/cpu1/topology/package_cpus | 1 + .../cpu/cpu1/topology/package_cpus_list | 1 + .../cpu/cpu1/topology/physical_package_id | 1 + .../cpu/cpu1/topology/thread_siblings | 1 + .../cpu/cpu1/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu10/online | 1 + .../cpu/cpu10/topology/core_cpus | 1 + .../cpu/cpu10/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu10/topology/core_id | 1 + .../cpu/cpu10/topology/core_siblings | 1 + .../cpu/cpu10/topology/core_siblings_list | 1 + .../cpu/cpu10/topology/die_cpus | 1 + .../cpu/cpu10/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu10/topology/die_id | 1 + .../cpu/cpu10/topology/package_cpus | 1 + .../cpu/cpu10/topology/package_cpus_list | 1 + .../cpu/cpu10/topology/physical_package_id | 1 + .../cpu/cpu10/topology/thread_siblings | 1 + .../cpu/cpu10/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu11/online | 1 + .../cpu/cpu11/topology/core_cpus | 1 + .../cpu/cpu11/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu11/topology/core_id | 1 + .../cpu/cpu11/topology/core_siblings | 1 + .../cpu/cpu11/topology/core_siblings_list | 1 + .../cpu/cpu11/topology/die_cpus | 1 + .../cpu/cpu11/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu11/topology/die_id | 1 + .../cpu/cpu11/topology/package_cpus | 1 + .../cpu/cpu11/topology/package_cpus_list | 1 + .../cpu/cpu11/topology/physical_package_id | 1 + .../cpu/cpu11/topology/thread_siblings | 1 + .../cpu/cpu11/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu2/online | 1 + .../cpu/cpu2/topology/core_cpus | 1 + .../cpu/cpu2/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu2/topology/core_id | 1 + .../cpu/cpu2/topology/core_siblings | 1 + .../cpu/cpu2/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu2/topology/die_cpus | 1 + .../cpu/cpu2/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu2/topology/die_id | 1 + .../cpu/cpu2/topology/package_cpus | 1 + .../cpu/cpu2/topology/package_cpus_list | 1 + .../cpu/cpu2/topology/physical_package_id | 1 + .../cpu/cpu2/topology/thread_siblings | 1 + .../cpu/cpu2/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu3/online | 1 + .../cpu/cpu3/topology/core_cpus | 1 + .../cpu/cpu3/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu3/topology/core_id | 1 + .../cpu/cpu3/topology/core_siblings | 1 + .../cpu/cpu3/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu3/topology/die_cpus | 1 + .../cpu/cpu3/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu3/topology/die_id | 1 + .../cpu/cpu3/topology/package_cpus | 1 + .../cpu/cpu3/topology/package_cpus_list | 1 + .../cpu/cpu3/topology/physical_package_id | 1 + .../cpu/cpu3/topology/thread_siblings | 1 + .../cpu/cpu3/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu4/online | 1 + .../cpu/cpu4/topology/core_cpus | 1 + .../cpu/cpu4/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu4/topology/core_id | 1 + .../cpu/cpu4/topology/core_siblings | 1 + .../cpu/cpu4/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu4/topology/die_cpus | 1 + .../cpu/cpu4/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu4/topology/die_id | 1 + .../cpu/cpu4/topology/package_cpus | 1 + .../cpu/cpu4/topology/package_cpus_list | 1 + .../cpu/cpu4/topology/physical_package_id | 1 + .../cpu/cpu4/topology/thread_siblings | 1 + .../cpu/cpu4/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu5/online | 1 + .../cpu/cpu5/topology/core_cpus | 1 + .../cpu/cpu5/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu5/topology/core_id | 1 + .../cpu/cpu5/topology/core_siblings | 1 + .../cpu/cpu5/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu5/topology/die_cpus | 1 + .../cpu/cpu5/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu5/topology/die_id | 1 + .../cpu/cpu5/topology/package_cpus | 1 + .../cpu/cpu5/topology/package_cpus_list | 1 + .../cpu/cpu5/topology/physical_package_id | 1 + .../cpu/cpu5/topology/thread_siblings | 1 + .../cpu/cpu5/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu6/online | 1 + .../cpu/cpu6/topology/core_cpus | 1 + .../cpu/cpu6/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu6/topology/core_id | 1 + .../cpu/cpu6/topology/core_siblings | 1 + .../cpu/cpu6/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu6/topology/die_cpus | 1 + .../cpu/cpu6/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu6/topology/die_id | 1 + .../cpu/cpu6/topology/package_cpus | 1 + .../cpu/cpu6/topology/package_cpus_list | 1 + .../cpu/cpu6/topology/physical_package_id | 1 + .../cpu/cpu6/topology/thread_siblings | 1 + .../cpu/cpu6/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu7/online | 1 + .../cpu/cpu7/topology/core_cpus | 1 + .../cpu/cpu7/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu7/topology/core_id | 1 + .../cpu/cpu7/topology/core_siblings | 1 + .../cpu/cpu7/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu7/topology/die_cpus | 1 + .../cpu/cpu7/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu7/topology/die_id | 1 + .../cpu/cpu7/topology/package_cpus | 1 + .../cpu/cpu7/topology/package_cpus_list | 1 + .../cpu/cpu7/topology/physical_package_id | 1 + .../cpu/cpu7/topology/thread_siblings | 1 + .../cpu/cpu7/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu8/online | 1 + .../cpu/cpu8/topology/core_cpus | 1 + .../cpu/cpu8/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu8/topology/core_id | 1 + .../cpu/cpu8/topology/core_siblings | 1 + .../cpu/cpu8/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu8/topology/die_cpus | 1 + .../cpu/cpu8/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu8/topology/die_id | 1 + .../cpu/cpu8/topology/package_cpus | 1 + .../cpu/cpu8/topology/package_cpus_list | 1 + .../cpu/cpu8/topology/physical_package_id | 1 + .../cpu/cpu8/topology/thread_siblings | 1 + .../cpu/cpu8/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu9/online | 1 + .../cpu/cpu9/topology/core_cpus | 1 + .../cpu/cpu9/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu9/topology/core_id | 1 + .../cpu/cpu9/topology/core_siblings | 1 + .../cpu/cpu9/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu9/topology/die_cpus | 1 + .../cpu/cpu9/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu9/topology/die_id | 1 + .../cpu/cpu9/topology/package_cpus | 1 + .../cpu/cpu9/topology/package_cpus_list | 1 + .../cpu/cpu9/topology/physical_package_id | 1 + .../cpu/cpu9/topology/thread_siblings | 1 + .../cpu/cpu9/topology/thread_siblings_list | 1 + .../virhostcpudata/linux-with-die/cpu/online | 1 + .../virhostcpudata/linux-with-die/cpu/present | 1 + .../linux-with-die/node/node0/cpu0 | 1 + .../linux-with-die/node/node0/cpu1 | 1 + .../linux-with-die/node/node0/cpu10 | 1 + .../linux-with-die/node/node0/cpu11 | 1 + .../linux-with-die/node/node0/cpu2 | 1 + .../linux-with-die/node/node0/cpu3 | 1 + .../linux-with-die/node/node0/cpu4 | 1 + .../linux-with-die/node/node0/cpu5 | 1 + .../linux-with-die/node/node0/cpu6 | 1 + .../linux-with-die/node/node0/cpu7 | 1 + .../linux-with-die/node/node0/cpu8 | 1 + .../linux-with-die/node/node0/cpu9 | 1 + .../linux-with-die/node/node0/cpulist | 1 + .../virhostcpudata/linux-with-die/node/online | 1 + .../linux-with-die/node/possible | 1 + .../linux-x86_64-with-die.cpuinfo | 324 ++++++++++++++++++ .../linux-x86_64-with-die.expected | 1 + tests/virhostcputest.c | 1 + .../vmx2xmldata/vmx2xml-esx-in-the-wild-8.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-9.xml | 2 +- 324 files changed, 887 insertions(+), 228 deletions(-) create mode 100644 tests/qemuxml2argvdata/smp-dies.args create mode 100644 tests/qemuxml2argvdata/smp-dies.xml create mode 120000 tests/vircaps2xmldata/linux-basic-dies/system/cpu create mode 120000 tests/vircaps2xmldata/linux-basic-dies/system/node create mode 100644 tests/vircaps2xmldata/vircaps-x86_64-basic-dies.xml create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/present create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu0 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu1 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu10 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu11 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu2 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu3 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu4 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu5 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu6 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu7 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu8 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu9 create mode 100644 tests/virhostcpudata/linux-with-die/node/node0/cpulist create mode 100644 tests/virhostcpudata/linux-with-die/node/online create mode 100644 tests/virhostcpudata/linux-with-die/node/possible create mode 100644 tests/virhostcpudata/linux-x86_64-with-die.cpuinfo create mode 100644 tests/virhostcpudata/linux-x86_64-with-die.expected -- 2.23.0

Recently CPU hardware vendors have started to support a new level of inside the CPU package topology known as a "die". Thus the hierarchy is now: sockets > dies > cores > threads This adds support for "dies" in the XML parser, with the value defaulting to 1 if not specified for backwards compatibility. For example a system with 64 logical CPUs might report <topology sockets="4" dies="2" cores="4" threads="2"/> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- docs/formatcaps.html.in | 2 +- docs/formatdomain.html.in | 14 +++++++------- docs/schemas/cputypes.rng | 5 +++++ src/bhyve/bhyve_command.c | 5 +++++ src/conf/cpu_conf.c | 18 ++++++++++++++++-- src/conf/cpu_conf.h | 1 + src/conf/domain_conf.c | 3 ++- 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 +- ...st-Haswell-noTSX+Haswell,haswell-result.xml | 2 +- ...well-noTSX+Haswell-noTSX,haswell-result.xml | 2 +- ...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 +- .../x86-old-bulk-result-conf.xml | 2 +- .../x86-old-bulk-result-live.xml | 2 +- .../cpu-hotplug-granularity.xml | 2 +- tests/qemuxml2argvdata/cpu-hotplug-startup.xml | 2 +- tests/qemuxml2argvdata/cpu-numa-disjoint.xml | 2 +- tests/qemuxml2argvdata/cpu-numa-disordered.xml | 2 +- tests/qemuxml2argvdata/cpu-numa-memshared.xml | 2 +- .../cpu-numa-no-memory-element.xml | 2 +- tests/qemuxml2argvdata/cpu-numa1.xml | 2 +- tests/qemuxml2argvdata/cpu-numa2.xml | 2 +- tests/qemuxml2argvdata/cpu-numa3.xml | 2 +- tests/qemuxml2argvdata/cpu-topology1.xml | 2 +- tests/qemuxml2argvdata/cpu-topology2.xml | 2 +- tests/qemuxml2argvdata/cpu-topology3.xml | 2 +- .../fd-memory-no-numa-topology.xml | 2 +- .../fd-memory-numa-topology.xml | 2 +- .../fd-memory-numa-topology2.xml | 2 +- .../fd-memory-numa-topology3.xml | 2 +- .../graphics-spice-timeout.xml | 2 +- tests/qemuxml2argvdata/hugepages-nvdimm.xml | 2 +- .../memfd-memory-default-hugepage.xml | 2 +- tests/qemuxml2argvdata/memfd-memory-numa.xml | 2 +- tests/qemuxml2argvdata/memory-align-fail.xml | 2 +- .../memory-hotplug-dimm-addr.xml | 2 +- tests/qemuxml2argvdata/memory-hotplug-dimm.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 +- .../qemuxml2argvdata/memory-hotplug-nvdimm.xml | 2 +- tests/qemuxml2argvdata/memory-hotplug.xml | 2 +- .../numad-auto-memory-vcpu-cpuset.xml | 2 +- ...uto-memory-vcpu-no-cpuset-and-placement.xml | 2 +- .../numad-auto-vcpu-no-numatune.xml | 2 +- ...ad-auto-vcpu-static-numatune-no-nodeset.xml | 2 +- .../numad-auto-vcpu-static-numatune.xml | 2 +- .../numad-static-memory-auto-vcpu.xml | 2 +- .../numad-static-vcpu-no-numatune.xml | 2 +- tests/qemuxml2argvdata/numad.xml | 2 +- .../numatune-auto-nodeset-invalid.xml | 2 +- .../numatune-memory-invalid-nodeset.xml | 2 +- tests/qemuxml2argvdata/numatune-memory.xml | 2 +- .../pci-expander-bus-bad-machine.xml | 2 +- tests/qemuxml2argvdata/pci-expander-bus.xml | 2 +- .../pcie-expander-bus-bad-bus.xml | 2 +- .../pcie-expander-bus-bad-machine.xml | 2 +- tests/qemuxml2argvdata/pcie-expander-bus.xml | 2 +- .../pseries-default-phb-numa-node.xml | 2 +- .../qemuxml2argvdata/pseries-phb-numa-node.xml | 2 +- tests/qemuxml2argvdata/smp.xml | 2 +- tests/qemuxml2xmloutdata/cpu-numa-disjoint.xml | 2 +- .../qemuxml2xmloutdata/cpu-numa-disordered.xml | 2 +- .../qemuxml2xmloutdata/cpu-numa-memshared.xml | 2 +- .../cpu-numa-no-memory-element.xml | 2 +- tests/qemuxml2xmloutdata/cpu-numa1.xml | 2 +- tests/qemuxml2xmloutdata/cpu-numa2.xml | 2 +- .../graphics-spice-timeout.xml | 2 +- .../qemuxml2xmloutdata/memory-hotplug-dimm.xml | 2 +- tests/qemuxml2xmloutdata/memory-hotplug.xml | 2 +- .../numad-auto-memory-vcpu-cpuset.xml | 2 +- ...uto-memory-vcpu-no-cpuset-and-placement.xml | 2 +- .../numad-auto-vcpu-no-numatune.xml | 2 +- .../numad-static-vcpu-no-numatune.xml | 2 +- tests/qemuxml2xmloutdata/pci-expander-bus.xml | 2 +- tests/qemuxml2xmloutdata/pcie-expander-bus.xml | 2 +- .../pseries-phb-numa-node.xml | 2 +- tests/qemuxml2xmloutdata/smp.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-8.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-9.xml | 2 +- 98 files changed, 138 insertions(+), 98 deletions(-) diff --git a/docs/formatcaps.html.in b/docs/formatcaps.html.in index 2a0aa963bb..59d21a7d9e 100644 --- a/docs/formatcaps.html.in +++ b/docs/formatcaps.html.in @@ -173,7 +173,7 @@ </features> <model>core2duo</model> <vendor>Intel</vendor> - <topology sockets="1" cores="2" threads="1"/> + <topology sockets="1" dies="1" cores="2" threads="1"/> <feature name="lahf_lm"/> <feature name='xtpr'/> ... diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index dd04a05f09..1433ff7043 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -1470,7 +1470,7 @@ <cpu match='exact'> <model fallback='allow'>core2duo</model> <vendor>Intel</vendor> - <topology sockets='1' cores='2' threads='1'/> + <topology sockets='1' dies='1' cores='2' threads='1'/> <cache level='3' mode='emulate'/> <feature policy='disable' name='lahf_lm'/> </cpu> @@ -1479,7 +1479,7 @@ <pre> <cpu mode='host-model'> <model fallback='forbid'/> - <topology sockets='1' cores='2' threads='1'/> + <topology sockets='1' dies='1' cores='2' threads='1'/> </cpu> ...</pre> @@ -1498,7 +1498,7 @@ <pre> ... <cpu> - <topology sockets='1' cores='2' threads='1'/> + <topology sockets='1' dies='1' cores='2' threads='1'/> </cpu> ...</pre> @@ -1675,10 +1675,10 @@ <dd>The <code>topology</code> element specifies requested topology of virtual CPU provided to the guest. Three non-zero values have to be given for <code>sockets</code>, <code>cores</code>, and - <code>threads</code>: total number of CPU sockets, number of cores per - socket, and number of threads per core, respectively. Hypervisors may - require that the maximum number of vCPUs specified by the - <code>cpus</code> element equals to the number of vcpus resulting + <code>threads</code>: total number of CPU sockets, dies per socket, + number of cores per die, and number of threads per core, respectively. + Hypervisors may require that the maximum number of vCPUs specified by + the <code>cpus</code> element equals to the number of vcpus resulting from the topology.</dd> <dt><code>feature</code></dt> diff --git a/docs/schemas/cputypes.rng b/docs/schemas/cputypes.rng index 1f1e0e36d5..e2744acad3 100644 --- a/docs/schemas/cputypes.rng +++ b/docs/schemas/cputypes.rng @@ -86,6 +86,11 @@ <attribute name="sockets"> <ref name="positiveInteger"/> </attribute> + <optional> + <attribute name="dies"> + <ref name="positiveInteger"/> + </attribute> + </optional> <attribute name="cores"> <ref name="positiveInteger"/> </attribute> diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c index 48336ffa1b..d78221aea8 100644 --- a/src/bhyve/bhyve_command.c +++ b/src/bhyve/bhyve_command.c @@ -453,6 +453,11 @@ virBhyveProcessBuildBhyveCmd(virConnectPtr conn, /* CPUs */ virCommandAddArg(cmd, "-c"); if (def->cpu && def->cpu->sockets) { + if (def->dies != 1) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Only 1 die per socket is supported")); + goto cleanup; + } if (nvcpus != def->cpu->sockets * def->cpu->cores * def->cpu->threads) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Invalid CPU topology: total number of vCPUs " diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 7490d6bf73..c874c47354 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -239,6 +239,7 @@ virCPUDefCopyWithoutModel(const virCPUDef *cpu) copy->check = cpu->check; copy->fallback = cpu->fallback; copy->sockets = cpu->sockets; + copy->dies = cpu->dies; copy->cores = cpu->cores; copy->threads = cpu->threads; copy->arch = cpu->arch; @@ -535,6 +536,12 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt, } def->sockets = (unsigned int) ul; + if (virXPathULong("string(./topology[1]/@dies)", ctxt, &ul) < 0) { + def->dies = 1; + } else { + def->dies = (unsigned int) ul; + } + if (virXPathULong("string(./topology[1]/@cores)", ctxt, &ul) < 0) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Missing 'cores' attribute in CPU topology")); @@ -549,7 +556,7 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt, } def->threads = (unsigned int) ul; - if (!def->sockets || !def->cores || !def->threads) { + if (!def->sockets || !def->cores || !def->threads || !def->dies) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Invalid CPU topology")); goto cleanup; @@ -817,9 +824,10 @@ virCPUDefFormatBuf(virBufferPtr buf, virBufferAddLit(buf, "/>\n"); } - if (def->sockets && def->cores && def->threads) { + if (def->sockets && def->dies && def->cores && def->threads) { virBufferAddLit(buf, "<topology"); virBufferAsprintf(buf, " sockets='%u'", def->sockets); + virBufferAsprintf(buf, " dies='%u'", def->dies); virBufferAsprintf(buf, " cores='%u'", def->cores); virBufferAsprintf(buf, " threads='%u'", def->threads); virBufferAddLit(buf, "/>\n"); @@ -1059,6 +1067,12 @@ virCPUDefIsEqual(virCPUDefPtr src, goto cleanup; } + if (src->dies != dst->dies) { + MISMATCH(_("Target CPU dies %d does not match source %d"), + dst->dies, src->dies); + goto cleanup; + } + if (src->cores != dst->cores) { MISMATCH(_("Target CPU cores %d does not match source %d"), dst->cores, src->cores); diff --git a/src/conf/cpu_conf.h b/src/conf/cpu_conf.h index ec3d2379cf..6cef9e9726 100644 --- a/src/conf/cpu_conf.h +++ b/src/conf/cpu_conf.h @@ -134,6 +134,7 @@ struct _virCPUDef { char *vendor; unsigned int microcodeVersion; unsigned int sockets; + unsigned int dies; unsigned int cores; unsigned int threads; size_t nfeatures; diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index afa072e17d..2134f2d022 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2053,7 +2053,8 @@ virDomainDefGetVcpusTopology(const virDomainDef *def, tmp = def->cpu->sockets; /* multiplication of 32bit numbers fits into a 64bit variable */ - if ((tmp *= def->cpu->cores) > UINT_MAX || + if ((tmp *= def->cpu->dies) > UINT_MAX || + (tmp *= def->cpu->cores) > UINT_MAX || (tmp *= def->cpu->threads) > UINT_MAX) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("cpu topology results in more than %u cpus"), UINT_MAX); diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index a2ae5b8c07..d9288cc85a 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -421,6 +421,7 @@ virCPUGetHost(virArch arch, if (nodeInfo) { cpu->sockets = nodeInfo->sockets; + cpu->dies = 1; cpu->cores = nodeInfo->cores; cpu->threads = nodeInfo->threads; } diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c index e9f958cd8a..beac8c8cfc 100644 --- a/src/libxl/libxl_capabilities.c +++ b/src/libxl/libxl_capabilities.c @@ -186,6 +186,7 @@ libxlCapsInitCPU(virCapsPtr caps, libxl_physinfo *phy_info, cpu->type = VIR_CPU_TYPE_HOST; cpu->cores = phy_info->cores_per_socket; cpu->threads = phy_info->threads_per_core; + cpu->dies = 1; cpu->sockets = phy_info->nr_cpus / (cpu->cores * cpu->threads); caps->host.cpu = cpu; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a8137b3a32..4066ecacd3 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7105,6 +7105,11 @@ qemuBuildSmpCommandLine(virCommandPtr cmd, /* sockets, cores, and threads are either all zero * or all non-zero, thus checking one of them is enough */ if (def->cpu && def->cpu->sockets) { + if (def->cpu->dies != 1) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Only 1 die per socket is supported")); + return -1; + } virBufferAsprintf(&buf, ",sockets=%u", def->cpu->sockets); virBufferAsprintf(&buf, ",cores=%u", def->cpu->cores); virBufferAsprintf(&buf, ",threads=%u", def->cpu->threads); diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 2afb0b2823..7b1a0bedfe 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -1485,6 +1485,7 @@ virVMXParseConfig(virVMXContext *ctx, "'numvcpus'")); goto cleanup; } + cpu->dies = 1; cpu->cores = coresPerSocket; cpu->threads = 1; @@ -3206,6 +3207,12 @@ virVMXFormatConfig(virVMXContext *ctx, virDomainXMLOptionPtr xmlopt, virDomainDe goto cleanup; } + if (def->cpu->dies != 1) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Only 1 die per socket 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 85564ff458..ea8e2d3a48 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 @@ <cpu mode='custom' match='exact'> <model fallback='allow'>486</model> - <topology sockets='2' cores='4' threads='1'/> + <topology sockets='2' dies='1' cores='4' threads='1'/> <feature policy='require' name='de'/> <feature policy='require' name='tsc'/> <feature policy='require' name='msr'/> diff --git a/tests/cputestdata/x86_64-host+guest,models-result.xml b/tests/cputestdata/x86_64-host+guest,models-result.xml index f79ed324c1..0dd6955898 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 @@ <cpu mode='custom' match='exact'> <model fallback='allow'>Nehalem</model> - <topology sockets='2' cores='4' threads='1'/> + <topology sockets='2' dies='1' cores='4' threads='1'/> <feature policy='force' name='pbe'/> <feature policy='force' name='monitor'/> <feature policy='require' name='xtpr'/> diff --git a/tests/cputestdata/x86_64-host+guest-result.xml b/tests/cputestdata/x86_64-host+guest-result.xml index 137a3d6647..28e3152cbf 100644 --- a/tests/cputestdata/x86_64-host+guest-result.xml +++ b/tests/cputestdata/x86_64-host+guest-result.xml @@ -1,6 +1,6 @@ <cpu mode='custom' match='exact'> <model fallback='allow'>Penryn</model> - <topology sockets='2' cores='4' threads='1'/> + <topology sockets='2' dies='1' cores='4' threads='1'/> <feature policy='require' name='dca'/> <feature policy='require' name='xtpr'/> <feature policy='disable' name='sse4.2'/> diff --git a/tests/cputestdata/x86_64-host+guest.xml b/tests/cputestdata/x86_64-host+guest.xml index 137a3d6647..28e3152cbf 100644 --- a/tests/cputestdata/x86_64-host+guest.xml +++ b/tests/cputestdata/x86_64-host+guest.xml @@ -1,6 +1,6 @@ <cpu mode='custom' match='exact'> <model fallback='allow'>Penryn</model> - <topology sockets='2' cores='4' threads='1'/> + <topology sockets='2' dies='1' cores='4' threads='1'/> <feature policy='require' name='dca'/> <feature policy='require' name='xtpr'/> <feature policy='disable' name='sse4.2'/> diff --git a/tests/cputestdata/x86_64-host+host-model-nofallback.xml b/tests/cputestdata/x86_64-host+host-model-nofallback.xml index 0c3ede0f6a..16d6e1daf2 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 @@ <cpu mode='custom' match='exact'> <model fallback='forbid'>Penryn</model> <vendor>Intel</vendor> - <topology sockets='1' cores='2' threads='1'/> + <topology sockets='1' dies='1' cores='2' threads='1'/> <feature policy='require' name='dca'/> <feature policy='require' name='xtpr'/> <feature policy='require' name='tm2'/> 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 2dbe06c314..8eda6684a0 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 @@ <cpu mode='custom' match='exact'> <model fallback='allow'>Haswell</model> - <topology sockets='1' cores='2' threads='2'/> + <topology sockets='1' dies='1' cores='2' threads='2'/> <feature policy='disable' name='rtm'/> <feature policy='disable' name='hle'/> </cpu> 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 5d149bb295..cb02449d60 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 @@ <cpu mode='custom' match='exact'> <model fallback='allow'>Haswell</model> - <topology sockets='1' cores='2' threads='2'/> + <topology sockets='1' dies='1' cores='2' threads='2'/> <feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> </cpu> 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 3b74089647..7ee926aba8 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 @@ <cpu mode='custom' match='exact'> <model fallback='allow'>Haswell-noTSX</model> - <topology sockets='1' cores='2' threads='2'/> + <topology sockets='1' dies='1' cores='2' threads='2'/> </cpu> diff --git a/tests/cputestdata/x86_64-host-worse+guest-result.xml b/tests/cputestdata/x86_64-host-worse+guest-result.xml index 2edc8756c4..9d54c66a8f 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 @@ <cpu mode='custom' match='exact'> <model fallback='allow'>Penryn</model> - <topology sockets='2' cores='4' threads='1'/> + <topology sockets='2' dies='1' cores='4' threads='1'/> <feature policy='disable' name='dca'/> <feature policy='disable' name='xtpr'/> <feature policy='disable' name='sse4.2'/> diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml index 1a769235a3..f80c4367df 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml @@ -43,7 +43,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='1' cores='4' threads='8'/> + <topology sockets='1' dies='1' cores='4' threads='8'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml index 43e6267250..7998b978fb 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml @@ -43,7 +43,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='1' cores='4' threads='8'/> + <topology sockets='1' dies='1' cores='4' threads='8'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml index cfb44cc433..2a48a97eef 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml @@ -43,7 +43,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='1' cores='4' threads='8'/> + <topology sockets='1' dies='1' cores='4' threads='8'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml index 0a8d372149..90518d1fa9 100644 --- a/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml +++ b/tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml @@ -43,7 +43,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='1' cores='4' threads='8'/> + <topology sockets='1' dies='1' cores='4' threads='8'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml index 6457f4056b..0d622fc8ae 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml @@ -19,7 +19,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='4' cores='2' threads='1'/> + <topology sockets='4' dies='1' cores='2' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml index fe9a81a091..ed9deaea4a 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml @@ -19,7 +19,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='4' cores='2' threads='1'/> + <topology sockets='4' dies='1' cores='2' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml index 58c088de88..342f172108 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml @@ -19,7 +19,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='4' cores='2' threads='1'/> + <topology sockets='4' dies='1' cores='2' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml index 12b28be5fe..b8341c74e5 100644 --- a/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml +++ b/tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml @@ -19,7 +19,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='4' cores='2' threads='1'/> + <topology sockets='4' dies='1' cores='2' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuhotplugtestcpus/x86-old-bulk-result-conf.xml b/tests/qemuhotplugtestcpus/x86-old-bulk-result-conf.xml index f635e37b82..29da89f5bc 100644 --- a/tests/qemuhotplugtestcpus/x86-old-bulk-result-conf.xml +++ b/tests/qemuhotplugtestcpus/x86-old-bulk-result-conf.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='4' cores='2' threads='1'/> + <topology sockets='4' dies='1' cores='2' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuhotplugtestcpus/x86-old-bulk-result-live.xml b/tests/qemuhotplugtestcpus/x86-old-bulk-result-live.xml index 6f50bb5c12..f81194db5b 100644 --- a/tests/qemuhotplugtestcpus/x86-old-bulk-result-live.xml +++ b/tests/qemuhotplugtestcpus/x86-old-bulk-result-live.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='4' cores='2' threads='1'/> + <topology sockets='4' dies='1' cores='2' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/cpu-hotplug-granularity.xml b/tests/qemuxml2argvdata/cpu-hotplug-granularity.xml index a94f41e46a..bf6a42c306 100644 --- a/tests/qemuxml2argvdata/cpu-hotplug-granularity.xml +++ b/tests/qemuxml2argvdata/cpu-hotplug-granularity.xml @@ -7,7 +7,7 @@ <type arch='ppc64' machine='pseries'>hvm</type> </os> <cpu> - <topology sockets='1' cores='2' threads='4'/> + <topology sockets='1' dies='1' cores='2' threads='4'/> </cpu> <devices> <emulator>/usr/bin/qemu-system-ppc64</emulator> diff --git a/tests/qemuxml2argvdata/cpu-hotplug-startup.xml b/tests/qemuxml2argvdata/cpu-hotplug-startup.xml index 99987ba15a..9d764e2f8c 100644 --- a/tests/qemuxml2argvdata/cpu-hotplug-startup.xml +++ b/tests/qemuxml2argvdata/cpu-hotplug-startup.xml @@ -17,7 +17,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets="3" cores="2" threads="1"/> + <topology sockets="3" dies="1" cores="2" threads="1"/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/cpu-numa-disjoint.xml b/tests/qemuxml2argvdata/cpu-numa-disjoint.xml index b022384e97..c164b15e82 100644 --- a/tests/qemuxml2argvdata/cpu-numa-disjoint.xml +++ b/tests/qemuxml2argvdata/cpu-numa-disjoint.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='0' cpus='0-3,8-11' memory='109550' unit='KiB'/> <cell id='1' cpus='4-7,12-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/cpu-numa-disordered.xml b/tests/qemuxml2argvdata/cpu-numa-disordered.xml index e209150a55..6e00b91281 100644 --- a/tests/qemuxml2argvdata/cpu-numa-disordered.xml +++ b/tests/qemuxml2argvdata/cpu-numa-disordered.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='0' cpus='0-5' memory='109550' unit='KiB'/> <cell id='2' cpus='6-10' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/cpu-numa-memshared.xml b/tests/qemuxml2argvdata/cpu-numa-memshared.xml index 7e05916f78..f2ef035b00 100644 --- a/tests/qemuxml2argvdata/cpu-numa-memshared.xml +++ b/tests/qemuxml2argvdata/cpu-numa-memshared.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='0' cpus='0-7' memory='109550' unit='KiB' memAccess='shared'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB' memAccess='private'/> diff --git a/tests/qemuxml2argvdata/cpu-numa-no-memory-element.xml b/tests/qemuxml2argvdata/cpu-numa-no-memory-element.xml index ee6b6aa870..97dac01e84 100644 --- a/tests/qemuxml2argvdata/cpu-numa-no-memory-element.xml +++ b/tests/qemuxml2argvdata/cpu-numa-no-memory-element.xml @@ -8,7 +8,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/cpu-numa1.xml b/tests/qemuxml2argvdata/cpu-numa1.xml index b21941d51a..867d21e152 100644 --- a/tests/qemuxml2argvdata/cpu-numa1.xml +++ b/tests/qemuxml2argvdata/cpu-numa1.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell cpus='0-7' memory='109550' unit='KiB'/> <cell cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/cpu-numa2.xml b/tests/qemuxml2argvdata/cpu-numa2.xml index b85b19f5e0..e589948dc7 100644 --- a/tests/qemuxml2argvdata/cpu-numa2.xml +++ b/tests/qemuxml2argvdata/cpu-numa2.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/cpu-numa3.xml b/tests/qemuxml2argvdata/cpu-numa3.xml index e2b9e9014d..350fbe7c07 100644 --- a/tests/qemuxml2argvdata/cpu-numa3.xml +++ b/tests/qemuxml2argvdata/cpu-numa3.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='1' cpus='0-7' memory='109550' unit='KiB'/> <cell id='2' cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/cpu-topology1.xml b/tests/qemuxml2argvdata/cpu-topology1.xml index 9d77d10a5c..af82a1c51a 100644 --- a/tests/qemuxml2argvdata/cpu-topology1.xml +++ b/tests/qemuxml2argvdata/cpu-topology1.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets="3" cores="2" threads="1"/> + <topology sockets="3" dies="1" cores="2" threads="1"/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/cpu-topology2.xml b/tests/qemuxml2argvdata/cpu-topology2.xml index 9d9701914a..1b113b8b13 100644 --- a/tests/qemuxml2argvdata/cpu-topology2.xml +++ b/tests/qemuxml2argvdata/cpu-topology2.xml @@ -10,7 +10,7 @@ </os> <cpu match='exact'> <model>core2duo</model> - <topology sockets="1" cores="2" threads="3"/> + <topology sockets="1" dies="1" cores="2" threads="3"/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/cpu-topology3.xml b/tests/qemuxml2argvdata/cpu-topology3.xml index 9d77d10a5c..af82a1c51a 100644 --- a/tests/qemuxml2argvdata/cpu-topology3.xml +++ b/tests/qemuxml2argvdata/cpu-topology3.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets="3" cores="2" threads="1"/> + <topology sockets="3" dies="1" cores="2" threads="1"/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/fd-memory-no-numa-topology.xml b/tests/qemuxml2argvdata/fd-memory-no-numa-topology.xml index 4c30761110..eb3300b1fb 100644 --- a/tests/qemuxml2argvdata/fd-memory-no-numa-topology.xml +++ b/tests/qemuxml2argvdata/fd-memory-no-numa-topology.xml @@ -14,7 +14,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='8' cores='1' threads='1'/> + <topology sockets='8' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/fd-memory-numa-topology.xml b/tests/qemuxml2argvdata/fd-memory-numa-topology.xml index f22a8e81f8..b7b5a19166 100644 --- a/tests/qemuxml2argvdata/fd-memory-numa-topology.xml +++ b/tests/qemuxml2argvdata/fd-memory-numa-topology.xml @@ -14,7 +14,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='1' cores='8' threads='1'/> + <topology sockets='1' dies='1' cores='8' threads='1'/> <numa> <cell id='0' cpus='0-7' memory='14680064' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/fd-memory-numa-topology2.xml b/tests/qemuxml2argvdata/fd-memory-numa-topology2.xml index 925f39b6ab..07de0bd717 100644 --- a/tests/qemuxml2argvdata/fd-memory-numa-topology2.xml +++ b/tests/qemuxml2argvdata/fd-memory-numa-topology2.xml @@ -14,7 +14,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='1' cores='8' threads='1'/> + <topology sockets='1' dies='1' cores='8' threads='1'/> <numa> <cell id='0' cpus='0-7' memory='14680064' unit='KiB'/> <cell id='1' cpus='8-15' memory='14680064' unit='KiB' memAccess='shared'/> diff --git a/tests/qemuxml2argvdata/fd-memory-numa-topology3.xml b/tests/qemuxml2argvdata/fd-memory-numa-topology3.xml index 71a8e083c9..8711641b68 100644 --- a/tests/qemuxml2argvdata/fd-memory-numa-topology3.xml +++ b/tests/qemuxml2argvdata/fd-memory-numa-topology3.xml @@ -14,7 +14,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='1' cores='24' threads='1'/> + <topology sockets='1' dies='1' cores='24' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='14680064' unit='KiB'/> <cell id='1' cpus='2-3' memory='14680064' unit='KiB' memAccess='shared'/> diff --git a/tests/qemuxml2argvdata/graphics-spice-timeout.xml b/tests/qemuxml2argvdata/graphics-spice-timeout.xml index 6bb4eb8f4c..d96f519bf8 100644 --- a/tests/qemuxml2argvdata/graphics-spice-timeout.xml +++ b/tests/qemuxml2argvdata/graphics-spice-timeout.xml @@ -18,7 +18,7 @@ <cpu match='exact'> <model>core2duo</model> <vendor>Intel</vendor> - <topology sockets='1' cores='2' threads='1'/> + <topology sockets='1' dies='1' cores='2' threads='1'/> <feature policy='require' name='ds'/> <feature policy='require' name='acpi'/> <feature policy='require' name='ss'/> diff --git a/tests/qemuxml2argvdata/hugepages-nvdimm.xml b/tests/qemuxml2argvdata/hugepages-nvdimm.xml index b784777805..144d02b56e 100644 --- a/tests/qemuxml2argvdata/hugepages-nvdimm.xml +++ b/tests/qemuxml2argvdata/hugepages-nvdimm.xml @@ -16,7 +16,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memfd-memory-default-hugepage.xml b/tests/qemuxml2argvdata/memfd-memory-default-hugepage.xml index 45ff012711..ded56dd538 100644 --- a/tests/qemuxml2argvdata/memfd-memory-default-hugepage.xml +++ b/tests/qemuxml2argvdata/memfd-memory-default-hugepage.xml @@ -18,7 +18,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='1' cores='8' threads='1'/> + <topology sockets='1' dies='1' cores='8' threads='1'/> <numa> <cell id='0' cpus='0-7' memory='14680064' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memfd-memory-numa.xml b/tests/qemuxml2argvdata/memfd-memory-numa.xml index f088f01d11..ebe638f600 100644 --- a/tests/qemuxml2argvdata/memfd-memory-numa.xml +++ b/tests/qemuxml2argvdata/memfd-memory-numa.xml @@ -20,7 +20,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='1' cores='8' threads='1'/> + <topology sockets='1' dies='1' cores='8' threads='1'/> <numa> <cell id='0' cpus='0-7' memory='14680064' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memory-align-fail.xml b/tests/qemuxml2argvdata/memory-align-fail.xml index 75c1a46068..636f0e3d8e 100644 --- a/tests/qemuxml2argvdata/memory-align-fail.xml +++ b/tests/qemuxml2argvdata/memory-align-fail.xml @@ -10,7 +10,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='9007199254740991' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memory-hotplug-dimm-addr.xml b/tests/qemuxml2argvdata/memory-hotplug-dimm-addr.xml index c289fdd5ff..ea4f4fd745 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-dimm-addr.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-dimm-addr.xml @@ -10,7 +10,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memory-hotplug-dimm.xml b/tests/qemuxml2argvdata/memory-hotplug-dimm.xml index c68336f871..585e0a5f51 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-dimm.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-dimm.xml @@ -14,7 +14,7 @@ <gid start='0' target='1000' count='10'/> </idmap> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.xml index 4e62dd0e18..a1cc1264eb 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.xml @@ -14,7 +14,7 @@ <gid start='0' target='1000' count='10'/> </idmap> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.xml index defa109e80..018a693aaf 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.xml @@ -14,7 +14,7 @@ <gid start='0' target='1000' count='10'/> </idmap> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.xml index 89d01d672f..c9d54a6088 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.xml @@ -14,7 +14,7 @@ <gid start='0' target='1000' count='10'/> </idmap> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.xml index e6a4f7901a..391d70f20e 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.xml @@ -14,7 +14,7 @@ <gid start='0' target='1000' count='10'/> </idmap> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.xml index dd48540712..09b2c5c833 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.xml @@ -14,7 +14,7 @@ <gid start='0' target='1000' count='10'/> </idmap> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm.xml b/tests/qemuxml2argvdata/memory-hotplug-nvdimm.xml index 9c76dda6c8..a32474da06 100644 --- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm.xml +++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm.xml @@ -14,7 +14,7 @@ <gid start='0' target='1000' count='10'/> </idmap> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/memory-hotplug.xml b/tests/qemuxml2argvdata/memory-hotplug.xml index e1f086567b..8d09856e95 100644 --- a/tests/qemuxml2argvdata/memory-hotplug.xml +++ b/tests/qemuxml2argvdata/memory-hotplug.xml @@ -10,7 +10,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/numad-auto-memory-vcpu-cpuset.xml b/tests/qemuxml2argvdata/numad-auto-memory-vcpu-cpuset.xml index 50dbc3c466..5758e65d09 100644 --- a/tests/qemuxml2argvdata/numad-auto-memory-vcpu-cpuset.xml +++ b/tests/qemuxml2argvdata/numad-auto-memory-vcpu-cpuset.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/numad-auto-memory-vcpu-no-cpuset-and-placement.xml b/tests/qemuxml2argvdata/numad-auto-memory-vcpu-no-cpuset-and-placement.xml index d9cd6b83f1..80314d05a3 100644 --- a/tests/qemuxml2argvdata/numad-auto-memory-vcpu-no-cpuset-and-placement.xml +++ b/tests/qemuxml2argvdata/numad-auto-memory-vcpu-no-cpuset-and-placement.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/numad-auto-vcpu-no-numatune.xml b/tests/qemuxml2argvdata/numad-auto-vcpu-no-numatune.xml index f21ba0a786..0edf8ee46f 100644 --- a/tests/qemuxml2argvdata/numad-auto-vcpu-no-numatune.xml +++ b/tests/qemuxml2argvdata/numad-auto-vcpu-no-numatune.xml @@ -9,7 +9,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune-no-nodeset.xml b/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune-no-nodeset.xml index 378d17face..517dd5dbd7 100644 --- a/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune-no-nodeset.xml +++ b/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune-no-nodeset.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune.xml b/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune.xml index e20bd8db0b..a7f32b6802 100644 --- a/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune.xml +++ b/tests/qemuxml2argvdata/numad-auto-vcpu-static-numatune.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/numad-static-memory-auto-vcpu.xml b/tests/qemuxml2argvdata/numad-static-memory-auto-vcpu.xml index 50dbc3c466..5758e65d09 100644 --- a/tests/qemuxml2argvdata/numad-static-memory-auto-vcpu.xml +++ b/tests/qemuxml2argvdata/numad-static-memory-auto-vcpu.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/numad-static-vcpu-no-numatune.xml b/tests/qemuxml2argvdata/numad-static-vcpu-no-numatune.xml index 7ccaa5aff4..3237e7c7c5 100644 --- a/tests/qemuxml2argvdata/numad-static-vcpu-no-numatune.xml +++ b/tests/qemuxml2argvdata/numad-static-vcpu-no-numatune.xml @@ -9,7 +9,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/numad.xml b/tests/qemuxml2argvdata/numad.xml index 081a59a013..ae995e2d6b 100644 --- a/tests/qemuxml2argvdata/numad.xml +++ b/tests/qemuxml2argvdata/numad.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/numatune-auto-nodeset-invalid.xml b/tests/qemuxml2argvdata/numatune-auto-nodeset-invalid.xml index 44ec55a810..e6ca895b0d 100644 --- a/tests/qemuxml2argvdata/numatune-auto-nodeset-invalid.xml +++ b/tests/qemuxml2argvdata/numatune-auto-nodeset-invalid.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/numatune-memory-invalid-nodeset.xml b/tests/qemuxml2argvdata/numatune-memory-invalid-nodeset.xml index 441f2b8989..70e7b92f34 100644 --- a/tests/qemuxml2argvdata/numatune-memory-invalid-nodeset.xml +++ b/tests/qemuxml2argvdata/numatune-memory-invalid-nodeset.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/numatune-memory.xml b/tests/qemuxml2argvdata/numatune-memory.xml index c9887dbebc..93ee70cc0b 100644 --- a/tests/qemuxml2argvdata/numatune-memory.xml +++ b/tests/qemuxml2argvdata/numatune-memory.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2argvdata/pci-expander-bus-bad-machine.xml b/tests/qemuxml2argvdata/pci-expander-bus-bad-machine.xml index 606ddfd73c..5093944a1c 100644 --- a/tests/qemuxml2argvdata/pci-expander-bus-bad-machine.xml +++ b/tests/qemuxml2argvdata/pci-expander-bus-bad-machine.xml @@ -8,7 +8,7 @@ <type arch='x86_64' machine='q35'>hvm</type> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell cpus='0-7' memory='109550' unit='KiB'/> <cell cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/pci-expander-bus.xml b/tests/qemuxml2argvdata/pci-expander-bus.xml index 79c959346d..d9aeda1757 100644 --- a/tests/qemuxml2argvdata/pci-expander-bus.xml +++ b/tests/qemuxml2argvdata/pci-expander-bus.xml @@ -8,7 +8,7 @@ <type arch='x86_64' machine='pc-i440fx-2.5'>hvm</type> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell cpus='0-7' memory='109550' unit='KiB'/> <cell cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/pcie-expander-bus-bad-bus.xml b/tests/qemuxml2argvdata/pcie-expander-bus-bad-bus.xml index f0ab0a16d1..4a6cb492bb 100644 --- a/tests/qemuxml2argvdata/pcie-expander-bus-bad-bus.xml +++ b/tests/qemuxml2argvdata/pcie-expander-bus-bad-bus.xml @@ -9,7 +9,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell cpus='0-7' memory='109550' unit='KiB'/> <cell cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/pcie-expander-bus-bad-machine.xml b/tests/qemuxml2argvdata/pcie-expander-bus-bad-machine.xml index dc64d97b83..1c27047b75 100644 --- a/tests/qemuxml2argvdata/pcie-expander-bus-bad-machine.xml +++ b/tests/qemuxml2argvdata/pcie-expander-bus-bad-machine.xml @@ -8,7 +8,7 @@ <type arch='x86_64' machine='pc-i440fx-2.5'>hvm</type> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell cpus='0-7' memory='109550' unit='KiB'/> <cell cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/pcie-expander-bus.xml b/tests/qemuxml2argvdata/pcie-expander-bus.xml index 5c5d34d1e0..80693f8a1c 100644 --- a/tests/qemuxml2argvdata/pcie-expander-bus.xml +++ b/tests/qemuxml2argvdata/pcie-expander-bus.xml @@ -9,7 +9,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell cpus='0-7' memory='109550' unit='KiB'/> <cell cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/pseries-default-phb-numa-node.xml b/tests/qemuxml2argvdata/pseries-default-phb-numa-node.xml index 12d277aaf8..27f211d59d 100644 --- a/tests/qemuxml2argvdata/pseries-default-phb-numa-node.xml +++ b/tests/qemuxml2argvdata/pseries-default-phb-numa-node.xml @@ -7,7 +7,7 @@ <memnode cellid="0" mode="strict" nodeset="1"/> </numatune> <cpu> - <topology sockets='3' cores='1' threads='8'/> + <topology sockets='3' dies='1' cores='1' threads='8'/> <numa> <cell id='0' cpus='0-23' memory='1048576' unit='KiB'/> </numa> diff --git a/tests/qemuxml2argvdata/pseries-phb-numa-node.xml b/tests/qemuxml2argvdata/pseries-phb-numa-node.xml index aeccb14dfb..52c39d5dbd 100644 --- a/tests/qemuxml2argvdata/pseries-phb-numa-node.xml +++ b/tests/qemuxml2argvdata/pseries-phb-numa-node.xml @@ -8,7 +8,7 @@ <memnode cellid="1" mode="strict" nodeset="2"/> </numatune> <cpu> - <topology sockets='2' cores='1' threads='4'/> + <topology sockets='2' dies='1' cores='1' threads='4'/> <numa> <cell id='0' cpus='0-3' memory='1048576' unit='KiB'/> <cell id='1' cpus='4-7' memory='1048576' unit='KiB'/> diff --git a/tests/qemuxml2argvdata/smp.xml b/tests/qemuxml2argvdata/smp.xml index 55d5cdeff2..6041506ed8 100644 --- a/tests/qemuxml2argvdata/smp.xml +++ b/tests/qemuxml2argvdata/smp.xml @@ -9,7 +9,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2xmloutdata/cpu-numa-disjoint.xml b/tests/qemuxml2xmloutdata/cpu-numa-disjoint.xml index f0ca39b5d3..d7f5372fbc 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa-disjoint.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa-disjoint.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='0' cpus='0-3,8-11' memory='109550' unit='KiB'/> <cell id='1' cpus='4-7,12-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2xmloutdata/cpu-numa-disordered.xml b/tests/qemuxml2xmloutdata/cpu-numa-disordered.xml index 1e672adc44..487ced1008 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa-disordered.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa-disordered.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='0' cpus='0-5' memory='109550' unit='KiB'/> <cell id='1' cpus='11-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2xmloutdata/cpu-numa-memshared.xml b/tests/qemuxml2xmloutdata/cpu-numa-memshared.xml index 3db0db047c..f472bffec3 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa-memshared.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa-memshared.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='0' cpus='0-7' memory='109550' unit='KiB' memAccess='shared'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB' memAccess='private'/> diff --git a/tests/qemuxml2xmloutdata/cpu-numa-no-memory-element.xml b/tests/qemuxml2xmloutdata/cpu-numa-no-memory-element.xml index 8596baae6c..2ef7f84646 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa-no-memory-element.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa-no-memory-element.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2xmloutdata/cpu-numa1.xml b/tests/qemuxml2xmloutdata/cpu-numa1.xml index 8596baae6c..2ef7f84646 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa1.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa1.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2xmloutdata/cpu-numa2.xml b/tests/qemuxml2xmloutdata/cpu-numa2.xml index 8596baae6c..2ef7f84646 100644 --- a/tests/qemuxml2xmloutdata/cpu-numa2.xml +++ b/tests/qemuxml2xmloutdata/cpu-numa2.xml @@ -9,7 +9,7 @@ <boot dev='network'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2xmloutdata/graphics-spice-timeout.xml b/tests/qemuxml2xmloutdata/graphics-spice-timeout.xml index 3f0babd8fc..6e23652448 100644 --- a/tests/qemuxml2xmloutdata/graphics-spice-timeout.xml +++ b/tests/qemuxml2xmloutdata/graphics-spice-timeout.xml @@ -18,7 +18,7 @@ <cpu mode='custom' match='exact' check='partial'> <model fallback='allow'>core2duo</model> <vendor>Intel</vendor> - <topology sockets='1' cores='2' threads='1'/> + <topology sockets='1' dies='1' cores='2' threads='1'/> <feature policy='require' name='ds'/> <feature policy='require' name='acpi'/> <feature policy='require' name='ss'/> diff --git a/tests/qemuxml2xmloutdata/memory-hotplug-dimm.xml b/tests/qemuxml2xmloutdata/memory-hotplug-dimm.xml index f4a118cea5..326b5c954c 100644 --- a/tests/qemuxml2xmloutdata/memory-hotplug-dimm.xml +++ b/tests/qemuxml2xmloutdata/memory-hotplug-dimm.xml @@ -14,7 +14,7 @@ <gid start='0' target='1000' count='10'/> </idmap> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/> </numa> diff --git a/tests/qemuxml2xmloutdata/memory-hotplug.xml b/tests/qemuxml2xmloutdata/memory-hotplug.xml index 0e02f210bc..0e5295dcd0 100644 --- a/tests/qemuxml2xmloutdata/memory-hotplug.xml +++ b/tests/qemuxml2xmloutdata/memory-hotplug.xml @@ -10,7 +10,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> <numa> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/> </numa> diff --git a/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-cpuset.xml b/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-cpuset.xml index 133177b679..841ea699a1 100644 --- a/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-cpuset.xml +++ b/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-cpuset.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-no-cpuset-and-placement.xml b/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-no-cpuset-and-placement.xml index dc14ecd139..2e3998e155 100644 --- a/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-no-cpuset-and-placement.xml +++ b/tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-no-cpuset-and-placement.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2xmloutdata/numad-auto-vcpu-no-numatune.xml b/tests/qemuxml2xmloutdata/numad-auto-vcpu-no-numatune.xml index 76d7c3b835..7c1f18c216 100644 --- a/tests/qemuxml2xmloutdata/numad-auto-vcpu-no-numatune.xml +++ b/tests/qemuxml2xmloutdata/numad-auto-vcpu-no-numatune.xml @@ -12,7 +12,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2xmloutdata/numad-static-vcpu-no-numatune.xml b/tests/qemuxml2xmloutdata/numad-static-vcpu-no-numatune.xml index 523962117e..3d05790c0e 100644 --- a/tests/qemuxml2xmloutdata/numad-static-vcpu-no-numatune.xml +++ b/tests/qemuxml2xmloutdata/numad-static-vcpu-no-numatune.xml @@ -9,7 +9,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/qemuxml2xmloutdata/pci-expander-bus.xml b/tests/qemuxml2xmloutdata/pci-expander-bus.xml index e0d787e57c..60e4e4af7f 100644 --- a/tests/qemuxml2xmloutdata/pci-expander-bus.xml +++ b/tests/qemuxml2xmloutdata/pci-expander-bus.xml @@ -9,7 +9,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2xmloutdata/pcie-expander-bus.xml b/tests/qemuxml2xmloutdata/pcie-expander-bus.xml index 643b4823bb..452d476da6 100644 --- a/tests/qemuxml2xmloutdata/pcie-expander-bus.xml +++ b/tests/qemuxml2xmloutdata/pcie-expander-bus.xml @@ -9,7 +9,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='4' threads='2'/> + <topology sockets='2' dies='1' cores='4' threads='2'/> <numa> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/> diff --git a/tests/qemuxml2xmloutdata/pseries-phb-numa-node.xml b/tests/qemuxml2xmloutdata/pseries-phb-numa-node.xml index 80b771e89d..b05ac334a6 100644 --- a/tests/qemuxml2xmloutdata/pseries-phb-numa-node.xml +++ b/tests/qemuxml2xmloutdata/pseries-phb-numa-node.xml @@ -13,7 +13,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='4'/> + <topology sockets='2' dies='1' cores='1' threads='4'/> <numa> <cell id='0' cpus='0-3' memory='1048576' unit='KiB'/> <cell id='1' cpus='4-7' memory='1048576' unit='KiB'/> diff --git a/tests/qemuxml2xmloutdata/smp.xml b/tests/qemuxml2xmloutdata/smp.xml index d3712cb7df..3e00f578e5 100644 --- a/tests/qemuxml2xmloutdata/smp.xml +++ b/tests/qemuxml2xmloutdata/smp.xml @@ -9,7 +9,7 @@ <boot dev='hd'/> </os> <cpu> - <topology sockets='2' cores='1' threads='1'/> + <topology sockets='2' dies='1' cores='1' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-8.xml b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-8.xml index eba5f4734a..2011bfb3b9 100644 --- a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-8.xml +++ b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-8.xml @@ -11,7 +11,7 @@ <type arch='x86_64'>hvm</type> </os> <cpu> - <topology sockets='4' cores='2' threads='1'/> + <topology sockets='4' dies='1' cores='2' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> diff --git a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-9.xml b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-9.xml index f1fe6dd4c9..fa428c1986 100644 --- a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-9.xml +++ b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-9.xml @@ -12,7 +12,7 @@ <type arch='x86_64'>hvm</type> </os> <cpu> - <topology sockets='4' cores='4' threads='1'/> + <topology sockets='4' dies='1' cores='4' threads='1'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> -- 2.23.0

FWIW, this patch is conflicting with current master to apply due to changes of labels made recently. The fix is rather simple: On 12/19/19 9:42 AM, Daniel P. Berrangé wrote:
Recently CPU hardware vendors have started to support a new level of inside the CPU package topology known as a "die". Thus the hierarchy is now:
sockets > dies > cores > threads
This adds support for "dies" in the XML parser, with the value defaulting to 1 if not specified for backwards compatibility.
For example a system with 64 logical CPUs might report
<topology sockets="4" dies="2" cores="4" threads="2"/>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- docs/formatcaps.html.in | 2 +-
[...]
@@ -1059,6 +1067,12 @@ virCPUDefIsEqual(virCPUDefPtr src, goto cleanup; }
+ if (src->dies != dst->dies) { + MISMATCH(_("Target CPU dies %d does not match source %d"), + dst->dies, src->dies); + goto cleanup; + } + if (src->cores != dst->cores) { MISMATCH(_("Target CPU cores %d does not match source %d"), dst->cores, src->cores);
In this chunk there is no 'cleanup' anymore, thus you'll just 'return false' in the new code you're adding.

On Thu, Dec 19, 2019 at 12:42:04 +0000, Daniel P. Berrangé wrote:
Recently CPU hardware vendors have started to support a new level of inside the CPU package topology known as a "die". Thus the hierarchy
Level of what? Looks like a missing word between "level of" and "inside".
is now:
sockets > dies > cores > threads
This adds support for "dies" in the XML parser, with the value defaulting to 1 if not specified for backwards compatibility.
For example a system with 64 logical CPUs might report
<topology sockets="4" dies="2" cores="4" threads="2"/>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> ... diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index dd04a05f09..1433ff7043 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in ... @@ -1675,10 +1675,10 @@ <dd>The <code>topology</code> element specifies requested topology of virtual CPU provided to the guest. Three non-zero values have to be given for <code>sockets</code>, <code>cores</code>, and - <code>threads</code>: total number of CPU sockets, number of cores per - socket, and number of threads per core, respectively. Hypervisors may - require that the maximum number of vCPUs specified by the - <code>cpus</code> element equals to the number of vcpus resulting + <code>threads</code>: total number of CPU sockets, dies per socket, + number of cores per die, and number of threads per core, respectively. + Hypervisors may require that the maximum number of vCPUs specified by + the <code>cpus</code> element equals to the number of vcpus resulting from the topology.</dd>
This needs to be rewritten from scratch, I believe. The current version doesn't work because the first part talks about three attributes, while the rest documents four attributes. And just adding the dies attribute there wouldn't fix it as sockets, cores, and threads are required, but dies is optional.
<dt><code>feature</code></dt>
...
diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 7490d6bf73..c874c47354 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c ... @@ -535,6 +536,12 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt, } def->sockets = (unsigned int) ul;
+ if (virXPathULong("string(./topology[1]/@dies)", ctxt, &ul) < 0) { + def->dies = 1; + } else { + def->dies = (unsigned int) ul; + } +
I don't think you want to silently ignore dies='-5' or dies='foo' and use 1 instead. You should report an error if dies is specified, but it contains an incorrect value.
if (virXPathULong("string(./topology[1]/@cores)", ctxt, &ul) < 0) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Missing 'cores' attribute in CPU topology"));
... Jirka

On Wed, Jan 08, 2020 at 03:34:34PM +0100, Jiri Denemark wrote:
On Thu, Dec 19, 2019 at 12:42:04 +0000, Daniel P. Berrangé wrote:
Recently CPU hardware vendors have started to support a new level of inside the CPU package topology known as a "die". Thus the hierarchy
Level of what? Looks like a missing word between "level of" and "inside".
Really it was just saying 'a new level inside the CPU'.
@@ -1675,10 +1675,10 @@ <dd>The <code>topology</code> element specifies requested topology of virtual CPU provided to the guest. Three non-zero values have to be given for <code>sockets</code>, <code>cores</code>, and - <code>threads</code>: total number of CPU sockets, number of cores per - socket, and number of threads per core, respectively. Hypervisors may - require that the maximum number of vCPUs specified by the - <code>cpus</code> element equals to the number of vcpus resulting + <code>threads</code>: total number of CPU sockets, dies per socket, + number of cores per die, and number of threads per core, respectively. + Hypervisors may require that the maximum number of vCPUs specified by + the <code>cpus</code> element equals to the number of vcpus resulting from the topology.</dd>
This needs to be rewritten from scratch, I believe. The current version doesn't work because the first part talks about three attributes, while the rest documents four attributes. And just adding the dies attribute there wouldn't fix it as sockets, cores, and threads are required, but dies is optional.
Sigh, yes. Next time i'll actually read it.
<dt><code>feature</code></dt>
...
diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 7490d6bf73..c874c47354 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c ... @@ -535,6 +536,12 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt, } def->sockets = (unsigned int) ul;
+ if (virXPathULong("string(./topology[1]/@dies)", ctxt, &ul) < 0) { + def->dies = 1; + } else { + def->dies = (unsigned int) ul; + } +
I don't think you want to silently ignore dies='-5' or dies='foo' and use 1 instead. You should report an error if dies is specified, but it contains an incorrect value.
This is a bit of a long standing design flaw in our virXPathULong usage in many places in fact.
if (virXPathULong("string(./topology[1]/@cores)", ctxt, &ul) < 0) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Missing 'cores' attribute in CPU topology"));
...
Jirka
Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/conf/capabilities.c | 21 --------------------- src/conf/capabilities.h | 6 ------ src/libvirt_private.syms | 1 - 3 files changed, 28 deletions(-) diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index da54591c11..e54e46f54e 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -368,27 +368,6 @@ virCapabilitiesHostNUMAAddCell(virCapsHostNUMAPtr caps, g_ptr_array_add(caps->cells, cell); } - -/** - * virCapabilitiesSetHostCPU: - * @caps: capabilities to extend - * @cpu: CPU definition - * - * Sets host CPU specification - */ -int -virCapabilitiesSetHostCPU(virCapsPtr caps, - virCPUDefPtr cpu) -{ - if (cpu == NULL) - return -1; - - caps->host.cpu = cpu; - - return 0; -} - - /** * virCapabilitiesAllocMachines: * @machines: machine variants for emulator ('pc', or 'isapc', etc) diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h index f604e7b95e..4a49e94aa5 100644 --- a/src/conf/capabilities.h +++ b/src/conf/capabilities.h @@ -258,12 +258,6 @@ virCapabilitiesHostNUMAAddCell(virCapsHostNUMAPtr caps, int npageinfo, virCapsHostNUMACellPageInfoPtr pageinfo); - -int -virCapabilitiesSetHostCPU(virCapsPtr caps, - virCPUDefPtr cpu); - - virCapsGuestMachinePtr * virCapabilitiesAllocMachines(const char *const *names, int nnames); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index a7b1ef23bc..5799ac8270 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -77,7 +77,6 @@ virCapabilitiesHostSecModelAddBaseLabel; virCapabilitiesInitCaches; virCapabilitiesInitPages; virCapabilitiesNew; -virCapabilitiesSetHostCPU; virCapabilitiesSetNetPrefix; -- 2.23.0

On Thu, Dec 19, 2019 at 12:42:05 +0000, Daniel P. Berrangé wrote:
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/conf/capabilities.c | 21 --------------------- src/conf/capabilities.h | 6 ------ src/libvirt_private.syms | 1 - 3 files changed, 28 deletions(-)
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>

QEMU since 4.1.0 supports the "dies" parameter for -smp Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 9 +++-- .../caps_4.1.0.x86_64.xml | 1 + .../caps_4.2.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + .../caps_4.2.0.x86_64.xml | 1 + .../hugepages-nvdimm.x86_64-latest.args | 2 +- ...memory-default-hugepage.x86_64-latest.args | 2 +- .../memfd-memory-numa.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 +- ...hotplug-nvdimm-readonly.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/smp-dies.args | 29 ++++++++++++++++ tests/qemuxml2argvdata/smp-dies.xml | 33 +++++++++++++++++++ tests/qemuxml2argvtest.c | 1 + 20 files changed, 86 insertions(+), 12 deletions(-) create mode 100644 tests/qemuxml2argvdata/smp-dies.args create mode 100644 tests/qemuxml2argvdata/smp-dies.xml diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 2223589058..29a0d48d4a 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -553,6 +553,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "blockdev-file-dynamic-auto-read-only", "savevm-monitor-nodes", "drive-nvme", + "smp-dies", ); @@ -2966,6 +2967,7 @@ static struct virQEMUCapsCommandLineProps virQEMUCapsCommandLine[] = { { "sandbox", "elevateprivileges", QEMU_CAPS_SECCOMP_BLACKLIST }, { "chardev", "fd", QEMU_CAPS_CHARDEV_FD_PASS }, { "overcommit", NULL, QEMU_CAPS_OVERCOMMIT }, + { "smp-opts", "dies", QEMU_CAPS_SMP_DIES }, }; static int diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 1b2522126c..2f92b479bd 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -534,6 +534,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ QEMU_CAPS_BLOCK_FILE_AUTO_READONLY_DYNAMIC, /* the auto-read-only property of block backends for files is dynamic */ QEMU_CAPS_SAVEVM_MONITOR_NODES, /* 'savevm' handles monitor-owned nodes properly */ QEMU_CAPS_DRIVE_NVME, /* -drive file.driver=nvme */ + QEMU_CAPS_SMP_DIES, /* -smp dies= */ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 4066ecacd3..83a77c2348 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7080,7 +7080,8 @@ qemuBuildTSEGCommandLine(virCommandPtr cmd, static int qemuBuildSmpCommandLine(virCommandPtr cmd, - virDomainDefPtr def) + virDomainDefPtr def, + virQEMUCapsPtr qemuCaps) { g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; unsigned int maxvcpus = virDomainDefGetVcpusMax(def); @@ -7105,12 +7106,14 @@ qemuBuildSmpCommandLine(virCommandPtr cmd, /* sockets, cores, and threads are either all zero * or all non-zero, thus checking one of them is enough */ if (def->cpu && def->cpu->sockets) { - if (def->cpu->dies != 1) { + if (def->cpu->dies != 1 && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_SMP_DIES)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Only 1 die per socket 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); virBufferAsprintf(&buf, ",cores=%u", def->cpu->cores); virBufferAsprintf(&buf, ",threads=%u", def->cpu->threads); } else { @@ -9798,7 +9801,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, if (qemuBuildMemCommandLine(cmd, cfg, def, qemuCaps, priv) < 0) return NULL; - if (qemuBuildSmpCommandLine(cmd, def) < 0) + if (qemuBuildSmpCommandLine(cmd, def, qemuCaps) < 0) return NULL; if (qemuBuildIOThreadCommandLine(cmd, def) < 0) diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml index 2bc9672063..12a538cb54 100644 --- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml @@ -214,6 +214,7 @@ <flag name='ramfb'/> <flag name='blockdev-file-dynamic-auto-read-only'/> <flag name='drive-nvme'/> + <flag name='smp-dies'/> <version>4001000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100241</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml index 588e682064..3c038983d4 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml @@ -174,6 +174,7 @@ <flag name='blockdev-file-dynamic-auto-read-only'/> <flag name='savevm-monitor-nodes'/> <flag name='drive-nvme'/> + <flag name='smp-dies'/> <version>4001050</version> <kvmVersion>0</kvmVersion> <microcodeVersion>61700242</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml index 9a480c4eb3..21d36f444c 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml @@ -175,6 +175,7 @@ <flag name='machine.pseries.cap-ccf-assist'/> <flag name='blockdev-file-dynamic-auto-read-only'/> <flag name='drive-nvme'/> + <flag name='smp-dies'/> <version>4001050</version> <kvmVersion>0</kvmVersion> <microcodeVersion>42900242</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml index 505b3adcb6..7531acf200 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml @@ -134,6 +134,7 @@ <flag name='query-cpu-model-comparison'/> <flag name='blockdev-file-dynamic-auto-read-only'/> <flag name='drive-nvme'/> + <flag name='smp-dies'/> <version>4001050</version> <kvmVersion>0</kvmVersion> <microcodeVersion>39100242</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml index 7d886d9a87..a9daefd514 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml @@ -217,6 +217,7 @@ <flag name='blockdev-file-dynamic-auto-read-only'/> <flag name='savevm-monitor-nodes'/> <flag name='drive-nvme'/> + <flag name='smp-dies'/> <version>4002000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100242</microcodeVersion> diff --git a/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args b/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args index 9056e56cb7..0d795dca91 100644 --- a/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args +++ b/tests/qemuxml2argvdata/hugepages-nvdimm.x86_64-latest.args @@ -15,7 +15,7 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \ -m size=1048576k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,cores=1,threads=1 \ -object memory-backend-file,id=ram-node0,prealloc=yes,\ mem-path=/dev/hugepages2M/libvirt/qemu/-1-QEMUGuest1,share=yes,size=1073741824 \ -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ 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 998c9f98bd..a655fb1f7c 100644 --- a/tests/qemuxml2argvdata/memfd-memory-default-hugepage.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memfd-memory-default-hugepage.x86_64-latest.args @@ -16,7 +16,7 @@ file=/tmp/lib/domain--1-instance-00000092/master-key.aes \ -m 14336 \ -mem-prealloc \ -overcommit mem-lock=off \ --smp 8,sockets=1,cores=8,threads=1 \ +-smp 8,sockets=1,dies=1,cores=8,threads=1 \ -object memory-backend-memfd,id=ram-node0,hugetlb=yes,hugetlbsize=2097152,\ share=yes,size=15032385536,host-nodes=3,policy=preferred \ -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 998c9f98bd..a655fb1f7c 100644 --- a/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args +++ b/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args @@ -16,7 +16,7 @@ file=/tmp/lib/domain--1-instance-00000092/master-key.aes \ -m 14336 \ -mem-prealloc \ -overcommit mem-lock=off \ --smp 8,sockets=1,cores=8,threads=1 \ +-smp 8,sockets=1,dies=1,cores=8,threads=1 \ -object memory-backend-memfd,id=ram-node0,hugetlb=yes,hugetlbsize=2097152,\ share=yes,size=15032385536,host-nodes=3,policy=preferred \ -numa node,nodeid=0,cpus=0-7,memdev=ram-node0 \ 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 beac9ab22a..c8a6ec5755 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 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,cores=1,threads=1 \ -numa node,nodeid=0,cpus=0-1,mem=214 \ -object memory-backend-file,id=memnvdimm0,prealloc=yes,mem-path=/tmp/nvdimm,\ share=no,size=536870912 \ 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 3e599098f0..60e9e80039 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 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,cores=1,threads=1 \ -numa node,nodeid=0,cpus=0-1,mem=214 \ -object memory-backend-file,id=memnvdimm0,prealloc=yes,mem-path=/tmp/nvdimm,\ share=no,size=536870912,align=2097152 \ 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 05a473dbcc..8c5e483cbb 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 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,cores=1,threads=1 \ -numa node,nodeid=0,cpus=0-1,mem=214 \ -object memory-backend-file,id=memnvdimm0,prealloc=yes,mem-path=/tmp/nvdimm,\ share=no,size=536870912 \ 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 c3554ac101..7f77ab9fce 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 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,cores=1,threads=1 \ -numa node,nodeid=0,cpus=0-1,mem=214 \ -object memory-backend-file,id=memnvdimm0,prealloc=yes,mem-path=/tmp/nvdimm,\ share=no,size=536870912,pmem=on \ 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 e1d3fc57a4..631835a380 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 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \ -m size=219136k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,cores=1,threads=1 \ -numa node,nodeid=0,cpus=0-1,mem=214 \ -object memory-backend-file,id=memnvdimm0,prealloc=yes,mem-path=/tmp/nvdimm,\ share=no,size=536870912 \ diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm.x86_64-latest.args index dc6ddd3a0e..48221a5526 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 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -machine pc,accel=tcg,usb=off,dump-guest-core=off,nvdimm=on \ -m size=1048576k,slots=16,maxmem=1099511627776k \ -overcommit mem-lock=off \ --smp 2,sockets=2,cores=1,threads=1 \ +-smp 2,sockets=2,dies=1,cores=1,threads=1 \ -numa node,nodeid=0,cpus=0-1,mem=1024 \ -object memory-backend-file,id=memnvdimm0,prealloc=yes,mem-path=/tmp/nvdimm,\ size=536870912 \ diff --git a/tests/qemuxml2argvdata/smp-dies.args b/tests/qemuxml2argvdata/smp-dies.args new file mode 100644 index 0000000000..632e9d8e34 --- /dev/null +++ b/tests/qemuxml2argvdata/smp-dies.args @@ -0,0 +1,29 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-i386 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=tcg,usb=off,dump-guest-core=off \ +-m 214 \ +-realtime mlock=off \ +-smp 1,maxcpus=4,sockets=2,dies=2,cores=1,threads=1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ +-device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 diff --git a/tests/qemuxml2argvdata/smp-dies.xml b/tests/qemuxml2argvdata/smp-dies.xml new file mode 100644 index 0000000000..caadaef8b5 --- /dev/null +++ b/tests/qemuxml2argvdata/smp-dies.xml @@ -0,0 +1,33 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219136</memory> + <currentMemory unit='KiB'>219136</currentMemory> + <vcpu placement='static' current='1'>4</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <cpu> + <topology sockets='2' dies='2' cores='1' threads='1'/> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-i386</emulator> + <disk type='block' device='disk'> + <driver name='qemu' type='raw'/> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <input type='mouse' bus='ps2'/> + <input type='keyboard' bus='ps2'/> + <memballoon model='none'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index bfbed5c31d..ba5b7cbf56 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1689,6 +1689,7 @@ mymain(void) DO_TEST("qemu-ns-alt", NONE); DO_TEST("smp", NONE); + DO_TEST("smp-dies", QEMU_CAPS_SMP_DIES); DO_TEST("iothreads", QEMU_CAPS_OBJECT_IOTHREAD); DO_TEST("iothreads-ids", QEMU_CAPS_OBJECT_IOTHREAD); -- 2.23.0

On Thu, Dec 19, 2019 at 12:42:06 +0000, Daniel P. Berrangé wrote:
QEMU since 4.1.0 supports the "dies" parameter for -smp
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 9 +++-- .../caps_4.1.0.x86_64.xml | 1 + .../caps_4.2.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + .../caps_4.2.0.x86_64.xml | 1 + .../hugepages-nvdimm.x86_64-latest.args | 2 +- ...memory-default-hugepage.x86_64-latest.args | 2 +- .../memfd-memory-numa.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 +- ...hotplug-nvdimm-readonly.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/smp-dies.args | 29 ++++++++++++++++ tests/qemuxml2argvdata/smp-dies.xml | 33 +++++++++++++++++++ tests/qemuxml2argvtest.c | 1 + 20 files changed, 86 insertions(+), 12 deletions(-) create mode 100644 tests/qemuxml2argvdata/smp-dies.args create mode 100644 tests/qemuxml2argvdata/smp-dies.xml
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>

Update the host CPU code to report the die_id in the NUMA topology capabilities. On systems with mulitple dies, this fixes the bug where CPU cores can't be distinguished: <cpus num='12'> <cpu id='0' socket_id='0' core_id='0' siblings='0'/> <cpu id='1' socket_id='0' core_id='1' siblings='1'/> <cpu id='2' socket_id='0' core_id='0' siblings='2'/> <cpu id='3' socket_id='0' core_id='1' siblings='3'/> </cpus> Notes core_id is repeated within the scope of the socket. It now reports <cpus num='12'> <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> <cpu id='2' socket_id='0' die_id='1' core_id='0' siblings='2'/> <cpu id='3' socket_id='0' die_id='1' core_id='1' siblings='3'/> </cpus> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- docs/schemas/capability.rng | 3 ++ src/conf/capabilities.c | 5 ++- src/conf/capabilities.h | 1 + src/libvirt_linux.syms | 1 + src/util/virhostcpu.c | 16 ++++++++++ src/util/virhostcpu.h | 1 + .../vircaps2xmldata/vircaps-aarch64-basic.xml | 32 +++++++++---------- .../vircaps2xmldata/vircaps-x86_64-basic.xml | 32 +++++++++---------- .../vircaps2xmldata/vircaps-x86_64-caches.xml | 16 +++++----- .../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 +++++++------- 15 files changed, 116 insertions(+), 91 deletions(-) diff --git a/docs/schemas/capability.rng b/docs/schemas/capability.rng index 26d313d652..165f704ef3 100644 --- a/docs/schemas/capability.rng +++ b/docs/schemas/capability.rng @@ -265,6 +265,9 @@ <attribute name='socket_id'> <ref name='unsignedInt'/> </attribute> + <attribute name='die_id'> + <ref name='unsignedInt'/> + </attribute> <attribute name='core_id'> <ref name='unsignedInt'/> </attribute> diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index e54e46f54e..2324a7cb8a 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -885,8 +885,9 @@ virCapabilitiesHostNUMAFormat(virCapsHostNUMAPtr caps, return -1; virBufferAsprintf(buf, - " socket_id='%d' core_id='%d' siblings='%s'", + " socket_id='%d' die_id='%d' core_id='%d' siblings='%s'", cell->cpus[j].socket_id, + cell->cpus[j].die_id, cell->cpus[j].core_id, siblings); VIR_FREE(siblings); @@ -1477,6 +1478,7 @@ virCapabilitiesFillCPUInfo(int cpu_id G_GNUC_UNUSED, cpu->id = cpu_id; if (virHostCPUGetSocket(cpu_id, &cpu->socket_id) < 0 || + virHostCPUGetDie(cpu_id, &cpu->die_id) < 0 || virHostCPUGetCore(cpu_id, &cpu->core_id) < 0) return -1; @@ -1605,6 +1607,7 @@ virCapabilitiesHostNUMAInitFake(virCapsHostNUMAPtr caps) goto error; if (tmp) { cpus[cid].id = id; + cpus[cid].die_id = 0; cpus[cid].socket_id = s; cpus[cid].core_id = c; if (!(cpus[cid].siblings = virBitmapNew(ncpus))) diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h index 4a49e94aa5..75f29666c9 100644 --- a/src/conf/capabilities.h +++ b/src/conf/capabilities.h @@ -88,6 +88,7 @@ struct _virCapsGuest { struct _virCapsHostNUMACellCPU { unsigned int id; unsigned int socket_id; + unsigned int die_id; unsigned int core_id; virBitmapPtr siblings; }; diff --git a/src/libvirt_linux.syms b/src/libvirt_linux.syms index 5fa2c790ef..55649ae39c 100644 --- a/src/libvirt_linux.syms +++ b/src/libvirt_linux.syms @@ -4,6 +4,7 @@ # util/virhostcpu.h virHostCPUGetCore; +virHostCPUGetDie; virHostCPUGetInfoPopulateLinux; virHostCPUGetSiblingsList; virHostCPUGetSocket; diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c index 22102f2c75..0c174702a4 100644 --- a/src/util/virhostcpu.c +++ b/src/util/virhostcpu.c @@ -218,6 +218,22 @@ virHostCPUGetSocket(unsigned int cpu, unsigned int *socket) return 0; } +int +virHostCPUGetDie(unsigned int cpu, unsigned int *die) +{ + int ret = virFileReadValueUint(die, + "%s/cpu/cpu%u/topology/die_id", + SYSFS_SYSTEM_PATH, cpu); + + /* If the file is not there, it's 0 */ + if (ret == -2) + *die = 0; + else if (ret < 0) + return -1; + + return 0; +} + int virHostCPUGetCore(unsigned int cpu, unsigned int *core) { diff --git a/src/util/virhostcpu.h b/src/util/virhostcpu.h index d95d380d4a..9be2e51a38 100644 --- a/src/util/virhostcpu.h +++ b/src/util/virhostcpu.h @@ -65,6 +65,7 @@ int virHostCPUStatsAssign(virNodeCPUStatsPtr param, #ifdef __linux__ int virHostCPUGetSocket(unsigned int cpu, unsigned int *socket); +int virHostCPUGetDie(unsigned int cpu, unsigned int *die); int virHostCPUGetCore(unsigned int cpu, unsigned int *core); virBitmapPtr virHostCPUGetSiblingsList(unsigned int cpu); diff --git a/tests/vircaps2xmldata/vircaps-aarch64-basic.xml b/tests/vircaps2xmldata/vircaps-aarch64-basic.xml index 50466f9162..0a04052c40 100644 --- a/tests/vircaps2xmldata/vircaps-aarch64-basic.xml +++ b/tests/vircaps2xmldata/vircaps-aarch64-basic.xml @@ -16,10 +16,10 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='4'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> </cpus> </cell> <cell id='1'> @@ -28,10 +28,10 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='4'> - <cpu id='4' socket_id='1' core_id='4' siblings='4'/> - <cpu id='5' socket_id='1' core_id='5' siblings='5'/> - <cpu id='6' socket_id='1' core_id='6' siblings='6'/> - <cpu id='7' socket_id='1' core_id='7' siblings='7'/> + <cpu id='4' socket_id='1' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='1' die_id='0' core_id='5' siblings='5'/> + <cpu id='6' socket_id='1' die_id='0' core_id='6' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='7' siblings='7'/> </cpus> </cell> <cell id='2'> @@ -40,10 +40,10 @@ <pages unit='KiB' size='2048'>8192</pages> <pages unit='KiB' size='1048576'>10240</pages> <cpus num='4'> - <cpu id='8' socket_id='2' core_id='8' siblings='8'/> - <cpu id='9' socket_id='2' core_id='9' siblings='9'/> - <cpu id='10' socket_id='2' core_id='10' siblings='10'/> - <cpu id='11' socket_id='2' core_id='11' siblings='11'/> + <cpu id='8' socket_id='2' die_id='0' core_id='8' siblings='8'/> + <cpu id='9' socket_id='2' die_id='0' core_id='9' siblings='9'/> + <cpu id='10' socket_id='2' die_id='0' core_id='10' siblings='10'/> + <cpu id='11' socket_id='2' die_id='0' core_id='11' siblings='11'/> </cpus> </cell> <cell id='3'> @@ -52,10 +52,10 @@ <pages unit='KiB' size='2048'>10240</pages> <pages unit='KiB' size='1048576'>12288</pages> <cpus num='4'> - <cpu id='12' socket_id='3' core_id='12' siblings='12'/> - <cpu id='13' socket_id='3' core_id='13' siblings='13'/> - <cpu id='14' socket_id='3' core_id='14' siblings='14'/> - <cpu id='15' socket_id='3' core_id='15' siblings='15'/> + <cpu id='12' socket_id='3' die_id='0' core_id='12' siblings='12'/> + <cpu id='13' socket_id='3' die_id='0' core_id='13' siblings='13'/> + <cpu id='14' socket_id='3' die_id='0' core_id='14' siblings='14'/> + <cpu id='15' socket_id='3' die_id='0' core_id='15' siblings='15'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-basic.xml b/tests/vircaps2xmldata/vircaps-x86_64-basic.xml index e7be6def3e..4da09f889c 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-basic.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-basic.xml @@ -14,10 +14,10 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='4'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> </cpus> </cell> <cell id='1'> @@ -26,10 +26,10 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='4'> - <cpu id='4' socket_id='1' core_id='4' siblings='4'/> - <cpu id='5' socket_id='1' core_id='5' siblings='5'/> - <cpu id='6' socket_id='1' core_id='6' siblings='6'/> - <cpu id='7' socket_id='1' core_id='7' siblings='7'/> + <cpu id='4' socket_id='1' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='1' die_id='0' core_id='5' siblings='5'/> + <cpu id='6' socket_id='1' die_id='0' core_id='6' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='7' siblings='7'/> </cpus> </cell> <cell id='2'> @@ -38,10 +38,10 @@ <pages unit='KiB' size='2048'>8192</pages> <pages unit='KiB' size='1048576'>10240</pages> <cpus num='4'> - <cpu id='8' socket_id='2' core_id='8' siblings='8'/> - <cpu id='9' socket_id='2' core_id='9' siblings='9'/> - <cpu id='10' socket_id='2' core_id='10' siblings='10'/> - <cpu id='11' socket_id='2' core_id='11' siblings='11'/> + <cpu id='8' socket_id='2' die_id='0' core_id='8' siblings='8'/> + <cpu id='9' socket_id='2' die_id='0' core_id='9' siblings='9'/> + <cpu id='10' socket_id='2' die_id='0' core_id='10' siblings='10'/> + <cpu id='11' socket_id='2' die_id='0' core_id='11' siblings='11'/> </cpus> </cell> <cell id='3'> @@ -50,10 +50,10 @@ <pages unit='KiB' size='2048'>10240</pages> <pages unit='KiB' size='1048576'>12288</pages> <cpus num='4'> - <cpu id='12' socket_id='3' core_id='12' siblings='12'/> - <cpu id='13' socket_id='3' core_id='13' siblings='13'/> - <cpu id='14' socket_id='3' core_id='14' siblings='14'/> - <cpu id='15' socket_id='3' core_id='15' siblings='15'/> + <cpu id='12' socket_id='3' die_id='0' core_id='12' siblings='12'/> + <cpu id='13' socket_id='3' die_id='0' core_id='13' siblings='13'/> + <cpu id='14' socket_id='3' die_id='0' core_id='14' siblings='14'/> + <cpu id='15' socket_id='3' die_id='0' core_id='15' siblings='15'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-caches.xml b/tests/vircaps2xmldata/vircaps-x86_64-caches.xml index ca671a1640..28f00c0a90 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-caches.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-caches.xml @@ -17,14 +17,14 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='8'> - <cpu id='0' socket_id='0' core_id='0' siblings='0,4'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1,5'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2,6'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3,7'/> - <cpu id='4' socket_id='0' core_id='0' siblings='0,4'/> - <cpu id='5' socket_id='0' core_id='1' siblings='1,5'/> - <cpu id='6' socket_id='0' core_id='2' siblings='2,6'/> - <cpu id='7' socket_id='0' core_id='3' siblings='3,7'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0,4'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1,5'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2,6'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3,7'/> + <cpu id='4' socket_id='0' die_id='0' core_id='0' siblings='0,4'/> + <cpu id='5' socket_id='0' die_id='0' core_id='1' siblings='1,5'/> + <cpu id='6' socket_id='0' die_id='0' core_id='2' siblings='2,6'/> + <cpu id='7' socket_id='0' die_id='0' core_id='3' siblings='3,7'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml index 1d3df318c5..ee26fe9464 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml @@ -17,12 +17,12 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='6'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> - <cpu id='4' socket_id='0' core_id='4' siblings='4'/> - <cpu id='5' socket_id='0' core_id='5' siblings='5'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> + <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/> </cpus> </cell> <cell id='1'> @@ -31,12 +31,12 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='6'> - <cpu id='6' socket_id='1' core_id='0' siblings='6'/> - <cpu id='7' socket_id='1' core_id='1' siblings='7'/> - <cpu id='8' socket_id='1' core_id='2' siblings='8'/> - <cpu id='9' socket_id='1' core_id='3' siblings='9'/> - <cpu id='10' socket_id='1' core_id='4' siblings='10'/> - <cpu id='11' socket_id='1' core_id='5' siblings='11'/> + <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/> + <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/> + <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/> + <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/> + <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml index 6a8cd0e909..acdd97ec58 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml @@ -17,12 +17,12 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='6'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> - <cpu id='4' socket_id='0' core_id='4' siblings='4'/> - <cpu id='5' socket_id='0' core_id='5' siblings='5'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> + <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/> </cpus> </cell> <cell id='1'> @@ -31,12 +31,12 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='6'> - <cpu id='6' socket_id='1' core_id='0' siblings='6'/> - <cpu id='7' socket_id='1' core_id='1' siblings='7'/> - <cpu id='8' socket_id='1' core_id='2' siblings='8'/> - <cpu id='9' socket_id='1' core_id='3' siblings='9'/> - <cpu id='10' socket_id='1' core_id='4' siblings='10'/> - <cpu id='11' socket_id='1' core_id='5' siblings='11'/> + <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/> + <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/> + <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/> + <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/> + <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml index 4e46ead616..5f3678e072 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 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='6'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> - <cpu id='4' socket_id='0' core_id='4' siblings='4'/> - <cpu id='5' socket_id='0' core_id='5' siblings='5'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> + <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/> </cpus> </cell> <cell id='1'> @@ -31,12 +31,12 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='6'> - <cpu id='6' socket_id='1' core_id='0' siblings='6'/> - <cpu id='7' socket_id='1' core_id='1' siblings='7'/> - <cpu id='8' socket_id='1' core_id='2' siblings='8'/> - <cpu id='9' socket_id='1' core_id='3' siblings='9'/> - <cpu id='10' socket_id='1' core_id='4' siblings='10'/> - <cpu id='11' socket_id='1' core_id='5' siblings='11'/> + <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/> + <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/> + <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/> + <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/> + <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml index 44c1042afe..6769bd0591 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 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='1'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml index 8382a26c7a..bc52480905 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml @@ -17,7 +17,7 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='1'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml index a27b3e247e..c386edd4b0 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml @@ -17,12 +17,12 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='6'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> - <cpu id='4' socket_id='0' core_id='4' siblings='4'/> - <cpu id='5' socket_id='0' core_id='5' siblings='5'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> + <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/> </cpus> </cell> <cell id='1'> @@ -31,12 +31,12 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='6'> - <cpu id='6' socket_id='1' core_id='0' siblings='6'/> - <cpu id='7' socket_id='1' core_id='1' siblings='7'/> - <cpu id='8' socket_id='1' core_id='2' siblings='8'/> - <cpu id='9' socket_id='1' core_id='3' siblings='9'/> - <cpu id='10' socket_id='1' core_id='4' siblings='10'/> - <cpu id='11' socket_id='1' core_id='5' siblings='11'/> + <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/> + <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/> + <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/> + <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/> + <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/> </cpus> </cell> </cells> -- 2.23.0

On 12/19/19 9:42 AM, Daniel P. Berrangé wrote:
Update the host CPU code to report the die_id in the NUMA topology capabilities. On systems with mulitple dies, this fixes the bug
s/mulitple/multiple
where CPU cores can't be distinguished:
<cpus num='12'> <cpu id='0' socket_id='0' core_id='0' siblings='0'/> <cpu id='1' socket_id='0' core_id='1' siblings='1'/> <cpu id='2' socket_id='0' core_id='0' siblings='2'/> <cpu id='3' socket_id='0' core_id='1' siblings='3'/> </cpus>
Notes core_id is repeated within the scope of the socket.
Not sure what you meant by 'Notes code_id'. 'Note that code_id ...' perhaps?
It now reports
<cpus num='12'> <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> <cpu id='2' socket_id='0' die_id='1' core_id='0' siblings='2'/> <cpu id='3' socket_id='0' die_id='1' core_id='1' siblings='3'/> </cpus>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- docs/schemas/capability.rng | 3 ++ src/conf/capabilities.c | 5 ++- src/conf/capabilities.h | 1 + src/libvirt_linux.syms | 1 + src/util/virhostcpu.c | 16 ++++++++++ src/util/virhostcpu.h | 1 + .../vircaps2xmldata/vircaps-aarch64-basic.xml | 32 +++++++++---------- .../vircaps2xmldata/vircaps-x86_64-basic.xml | 32 +++++++++---------- .../vircaps2xmldata/vircaps-x86_64-caches.xml | 16 +++++----- .../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 +++++++------- 15 files changed, 116 insertions(+), 91 deletions(-)
diff --git a/docs/schemas/capability.rng b/docs/schemas/capability.rng index 26d313d652..165f704ef3 100644 --- a/docs/schemas/capability.rng +++ b/docs/schemas/capability.rng @@ -265,6 +265,9 @@ <attribute name='socket_id'> <ref name='unsignedInt'/> </attribute> + <attribute name='die_id'> + <ref name='unsignedInt'/> + </attribute> <attribute name='core_id'> <ref name='unsignedInt'/> </attribute> diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index e54e46f54e..2324a7cb8a 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -885,8 +885,9 @@ virCapabilitiesHostNUMAFormat(virCapsHostNUMAPtr caps, return -1;
virBufferAsprintf(buf, - " socket_id='%d' core_id='%d' siblings='%s'", + " socket_id='%d' die_id='%d' core_id='%d' siblings='%s'", cell->cpus[j].socket_id, + cell->cpus[j].die_id, cell->cpus[j].core_id, siblings); VIR_FREE(siblings); @@ -1477,6 +1478,7 @@ virCapabilitiesFillCPUInfo(int cpu_id G_GNUC_UNUSED, cpu->id = cpu_id;
if (virHostCPUGetSocket(cpu_id, &cpu->socket_id) < 0 || + virHostCPUGetDie(cpu_id, &cpu->die_id) < 0 || virHostCPUGetCore(cpu_id, &cpu->core_id) < 0) return -1;
@@ -1605,6 +1607,7 @@ virCapabilitiesHostNUMAInitFake(virCapsHostNUMAPtr caps) goto error; if (tmp) { cpus[cid].id = id; + cpus[cid].die_id = 0; cpus[cid].socket_id = s; cpus[cid].core_id = c; if (!(cpus[cid].siblings = virBitmapNew(ncpus))) diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h index 4a49e94aa5..75f29666c9 100644 --- a/src/conf/capabilities.h +++ b/src/conf/capabilities.h @@ -88,6 +88,7 @@ struct _virCapsGuest { struct _virCapsHostNUMACellCPU { unsigned int id; unsigned int socket_id; + unsigned int die_id; unsigned int core_id; virBitmapPtr siblings; }; diff --git a/src/libvirt_linux.syms b/src/libvirt_linux.syms index 5fa2c790ef..55649ae39c 100644 --- a/src/libvirt_linux.syms +++ b/src/libvirt_linux.syms @@ -4,6 +4,7 @@
# util/virhostcpu.h virHostCPUGetCore; +virHostCPUGetDie; virHostCPUGetInfoPopulateLinux; virHostCPUGetSiblingsList; virHostCPUGetSocket; diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c index 22102f2c75..0c174702a4 100644 --- a/src/util/virhostcpu.c +++ b/src/util/virhostcpu.c @@ -218,6 +218,22 @@ virHostCPUGetSocket(unsigned int cpu, unsigned int *socket) return 0; }
+int +virHostCPUGetDie(unsigned int cpu, unsigned int *die) +{ + int ret = virFileReadValueUint(die, + "%s/cpu/cpu%u/topology/die_id", + SYSFS_SYSTEM_PATH, cpu); + + /* If the file is not there, it's 0 */ + if (ret == -2) + *die = 0; + else if (ret < 0) + return -1; + + return 0; +} + int virHostCPUGetCore(unsigned int cpu, unsigned int *core) { diff --git a/src/util/virhostcpu.h b/src/util/virhostcpu.h index d95d380d4a..9be2e51a38 100644 --- a/src/util/virhostcpu.h +++ b/src/util/virhostcpu.h @@ -65,6 +65,7 @@ int virHostCPUStatsAssign(virNodeCPUStatsPtr param,
#ifdef __linux__ int virHostCPUGetSocket(unsigned int cpu, unsigned int *socket); +int virHostCPUGetDie(unsigned int cpu, unsigned int *die); int virHostCPUGetCore(unsigned int cpu, unsigned int *core);
virBitmapPtr virHostCPUGetSiblingsList(unsigned int cpu); diff --git a/tests/vircaps2xmldata/vircaps-aarch64-basic.xml b/tests/vircaps2xmldata/vircaps-aarch64-basic.xml index 50466f9162..0a04052c40 100644 --- a/tests/vircaps2xmldata/vircaps-aarch64-basic.xml +++ b/tests/vircaps2xmldata/vircaps-aarch64-basic.xml @@ -16,10 +16,10 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='4'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> </cpus> </cell> <cell id='1'> @@ -28,10 +28,10 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='4'> - <cpu id='4' socket_id='1' core_id='4' siblings='4'/> - <cpu id='5' socket_id='1' core_id='5' siblings='5'/> - <cpu id='6' socket_id='1' core_id='6' siblings='6'/> - <cpu id='7' socket_id='1' core_id='7' siblings='7'/> + <cpu id='4' socket_id='1' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='1' die_id='0' core_id='5' siblings='5'/> + <cpu id='6' socket_id='1' die_id='0' core_id='6' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='7' siblings='7'/> </cpus> </cell> <cell id='2'> @@ -40,10 +40,10 @@ <pages unit='KiB' size='2048'>8192</pages> <pages unit='KiB' size='1048576'>10240</pages> <cpus num='4'> - <cpu id='8' socket_id='2' core_id='8' siblings='8'/> - <cpu id='9' socket_id='2' core_id='9' siblings='9'/> - <cpu id='10' socket_id='2' core_id='10' siblings='10'/> - <cpu id='11' socket_id='2' core_id='11' siblings='11'/> + <cpu id='8' socket_id='2' die_id='0' core_id='8' siblings='8'/> + <cpu id='9' socket_id='2' die_id='0' core_id='9' siblings='9'/> + <cpu id='10' socket_id='2' die_id='0' core_id='10' siblings='10'/> + <cpu id='11' socket_id='2' die_id='0' core_id='11' siblings='11'/> </cpus> </cell> <cell id='3'> @@ -52,10 +52,10 @@ <pages unit='KiB' size='2048'>10240</pages> <pages unit='KiB' size='1048576'>12288</pages> <cpus num='4'> - <cpu id='12' socket_id='3' core_id='12' siblings='12'/> - <cpu id='13' socket_id='3' core_id='13' siblings='13'/> - <cpu id='14' socket_id='3' core_id='14' siblings='14'/> - <cpu id='15' socket_id='3' core_id='15' siblings='15'/> + <cpu id='12' socket_id='3' die_id='0' core_id='12' siblings='12'/> + <cpu id='13' socket_id='3' die_id='0' core_id='13' siblings='13'/> + <cpu id='14' socket_id='3' die_id='0' core_id='14' siblings='14'/> + <cpu id='15' socket_id='3' die_id='0' core_id='15' siblings='15'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-basic.xml b/tests/vircaps2xmldata/vircaps-x86_64-basic.xml index e7be6def3e..4da09f889c 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-basic.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-basic.xml @@ -14,10 +14,10 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='4'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> </cpus> </cell> <cell id='1'> @@ -26,10 +26,10 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='4'> - <cpu id='4' socket_id='1' core_id='4' siblings='4'/> - <cpu id='5' socket_id='1' core_id='5' siblings='5'/> - <cpu id='6' socket_id='1' core_id='6' siblings='6'/> - <cpu id='7' socket_id='1' core_id='7' siblings='7'/> + <cpu id='4' socket_id='1' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='1' die_id='0' core_id='5' siblings='5'/> + <cpu id='6' socket_id='1' die_id='0' core_id='6' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='7' siblings='7'/> </cpus> </cell> <cell id='2'> @@ -38,10 +38,10 @@ <pages unit='KiB' size='2048'>8192</pages> <pages unit='KiB' size='1048576'>10240</pages> <cpus num='4'> - <cpu id='8' socket_id='2' core_id='8' siblings='8'/> - <cpu id='9' socket_id='2' core_id='9' siblings='9'/> - <cpu id='10' socket_id='2' core_id='10' siblings='10'/> - <cpu id='11' socket_id='2' core_id='11' siblings='11'/> + <cpu id='8' socket_id='2' die_id='0' core_id='8' siblings='8'/> + <cpu id='9' socket_id='2' die_id='0' core_id='9' siblings='9'/> + <cpu id='10' socket_id='2' die_id='0' core_id='10' siblings='10'/> + <cpu id='11' socket_id='2' die_id='0' core_id='11' siblings='11'/> </cpus> </cell> <cell id='3'> @@ -50,10 +50,10 @@ <pages unit='KiB' size='2048'>10240</pages> <pages unit='KiB' size='1048576'>12288</pages> <cpus num='4'> - <cpu id='12' socket_id='3' core_id='12' siblings='12'/> - <cpu id='13' socket_id='3' core_id='13' siblings='13'/> - <cpu id='14' socket_id='3' core_id='14' siblings='14'/> - <cpu id='15' socket_id='3' core_id='15' siblings='15'/> + <cpu id='12' socket_id='3' die_id='0' core_id='12' siblings='12'/> + <cpu id='13' socket_id='3' die_id='0' core_id='13' siblings='13'/> + <cpu id='14' socket_id='3' die_id='0' core_id='14' siblings='14'/> + <cpu id='15' socket_id='3' die_id='0' core_id='15' siblings='15'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-caches.xml b/tests/vircaps2xmldata/vircaps-x86_64-caches.xml index ca671a1640..28f00c0a90 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-caches.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-caches.xml @@ -17,14 +17,14 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='8'> - <cpu id='0' socket_id='0' core_id='0' siblings='0,4'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1,5'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2,6'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3,7'/> - <cpu id='4' socket_id='0' core_id='0' siblings='0,4'/> - <cpu id='5' socket_id='0' core_id='1' siblings='1,5'/> - <cpu id='6' socket_id='0' core_id='2' siblings='2,6'/> - <cpu id='7' socket_id='0' core_id='3' siblings='3,7'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0,4'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1,5'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2,6'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3,7'/> + <cpu id='4' socket_id='0' die_id='0' core_id='0' siblings='0,4'/> + <cpu id='5' socket_id='0' die_id='0' core_id='1' siblings='1,5'/> + <cpu id='6' socket_id='0' die_id='0' core_id='2' siblings='2,6'/> + <cpu id='7' socket_id='0' die_id='0' core_id='3' siblings='3,7'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml index 1d3df318c5..ee26fe9464 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cdp.xml @@ -17,12 +17,12 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='6'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> - <cpu id='4' socket_id='0' core_id='4' siblings='4'/> - <cpu id='5' socket_id='0' core_id='5' siblings='5'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> + <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/> </cpus> </cell> <cell id='1'> @@ -31,12 +31,12 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='6'> - <cpu id='6' socket_id='1' core_id='0' siblings='6'/> - <cpu id='7' socket_id='1' core_id='1' siblings='7'/> - <cpu id='8' socket_id='1' core_id='2' siblings='8'/> - <cpu id='9' socket_id='1' core_id='3' siblings='9'/> - <cpu id='10' socket_id='1' core_id='4' siblings='10'/> - <cpu id='11' socket_id='1' core_id='5' siblings='11'/> + <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/> + <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/> + <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/> + <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/> + <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml index 6a8cd0e909..acdd97ec58 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-cmt.xml @@ -17,12 +17,12 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='6'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> - <cpu id='4' socket_id='0' core_id='4' siblings='4'/> - <cpu id='5' socket_id='0' core_id='5' siblings='5'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> + <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/> </cpus> </cell> <cell id='1'> @@ -31,12 +31,12 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='6'> - <cpu id='6' socket_id='1' core_id='0' siblings='6'/> - <cpu id='7' socket_id='1' core_id='1' siblings='7'/> - <cpu id='8' socket_id='1' core_id='2' siblings='8'/> - <cpu id='9' socket_id='1' core_id='3' siblings='9'/> - <cpu id='10' socket_id='1' core_id='4' siblings='10'/> - <cpu id='11' socket_id='1' core_id='5' siblings='11'/> + <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/> + <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/> + <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/> + <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/> + <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-fake-feature.xml index 4e46ead616..5f3678e072 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 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='6'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> - <cpu id='4' socket_id='0' core_id='4' siblings='4'/> - <cpu id='5' socket_id='0' core_id='5' siblings='5'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> + <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/> </cpus> </cell> <cell id='1'> @@ -31,12 +31,12 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='6'> - <cpu id='6' socket_id='1' core_id='0' siblings='6'/> - <cpu id='7' socket_id='1' core_id='1' siblings='7'/> - <cpu id='8' socket_id='1' core_id='2' siblings='8'/> - <cpu id='9' socket_id='1' core_id='3' siblings='9'/> - <cpu id='10' socket_id='1' core_id='4' siblings='10'/> - <cpu id='11' socket_id='1' core_id='5' siblings='11'/> + <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/> + <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/> + <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/> + <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/> + <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx-twocaches.xml index 44c1042afe..6769bd0591 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 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='1'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml index 8382a26c7a..bc52480905 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl-skx.xml @@ -17,7 +17,7 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='1'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> </cpus> </cell> </cells> diff --git a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml b/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml index a27b3e247e..c386edd4b0 100644 --- a/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml +++ b/tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml @@ -17,12 +17,12 @@ <pages unit='KiB' size='2048'>4096</pages> <pages unit='KiB' size='1048576'>6144</pages> <cpus num='6'> - <cpu id='0' socket_id='0' core_id='0' siblings='0'/> - <cpu id='1' socket_id='0' core_id='1' siblings='1'/> - <cpu id='2' socket_id='0' core_id='2' siblings='2'/> - <cpu id='3' socket_id='0' core_id='3' siblings='3'/> - <cpu id='4' socket_id='0' core_id='4' siblings='4'/> - <cpu id='5' socket_id='0' core_id='5' siblings='5'/> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='0' core_id='2' siblings='2'/> + <cpu id='3' socket_id='0' die_id='0' core_id='3' siblings='3'/> + <cpu id='4' socket_id='0' die_id='0' core_id='4' siblings='4'/> + <cpu id='5' socket_id='0' die_id='0' core_id='5' siblings='5'/> </cpus> </cell> <cell id='1'> @@ -31,12 +31,12 @@ <pages unit='KiB' size='2048'>6144</pages> <pages unit='KiB' size='1048576'>8192</pages> <cpus num='6'> - <cpu id='6' socket_id='1' core_id='0' siblings='6'/> - <cpu id='7' socket_id='1' core_id='1' siblings='7'/> - <cpu id='8' socket_id='1' core_id='2' siblings='8'/> - <cpu id='9' socket_id='1' core_id='3' siblings='9'/> - <cpu id='10' socket_id='1' core_id='4' siblings='10'/> - <cpu id='11' socket_id='1' core_id='5' siblings='11'/> + <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/> + <cpu id='8' socket_id='1' die_id='0' core_id='2' siblings='8'/> + <cpu id='9' socket_id='1' die_id='0' core_id='3' siblings='9'/> + <cpu id='10' socket_id='1' die_id='0' core_id='4' siblings='10'/> + <cpu id='11' socket_id='1' die_id='0' core_id='5' siblings='11'/> </cpus> </cell> </cells>

On Thu, Dec 19, 2019 at 12:42:07 +0000, Daniel P. Berrangé wrote:
Update the host CPU code to report the die_id in the NUMA topology capabilities. On systems with mulitple dies, this fixes the bug where CPU cores can't be distinguished:
<cpus num='12'> <cpu id='0' socket_id='0' core_id='0' siblings='0'/> <cpu id='1' socket_id='0' core_id='1' siblings='1'/> <cpu id='2' socket_id='0' core_id='0' siblings='2'/> <cpu id='3' socket_id='0' core_id='1' siblings='3'/> </cpus>
Notes core_id is repeated within the scope of the socket.
It now reports
<cpus num='12'> <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> <cpu id='2' socket_id='0' die_id='1' core_id='0' siblings='2'/> <cpu id='3' socket_id='0' die_id='1' core_id='1' siblings='3'/> </cpus>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>

Only Cascadelake-AP CPUs appear to report "die_id" values != 0 on Linux right now - AMD EPYC's don't report "die_id" (at least with Fedora 31 kernel). Lacking access to Cascadelake-AP CPUs, this test data was from a Fedora 31 QEMU guest launched with -cpu qemu64 -smp sockets=2,dies=3,cores=2,threads=1 Ideally we'd replace this data with some from a real machine reporting "die_id", to ensure we're not mislead by QEMU's impl. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- .../linux-basic-dies/system/cpu | 1 + .../linux-basic-dies/system/node | 1 + .../vircaps-x86_64-basic-dies.xml | 35 ++ tests/vircaps2xmltest.c | 1 + .../cpu/cpu0/topology/core_cpus | 1 + .../cpu/cpu0/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu0/topology/core_id | 1 + .../cpu/cpu0/topology/core_siblings | 1 + .../cpu/cpu0/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu0/topology/die_cpus | 1 + .../cpu/cpu0/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu0/topology/die_id | 1 + .../cpu/cpu0/topology/package_cpus | 1 + .../cpu/cpu0/topology/package_cpus_list | 1 + .../cpu/cpu0/topology/physical_package_id | 1 + .../cpu/cpu0/topology/thread_siblings | 1 + .../cpu/cpu0/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu1/online | 1 + .../cpu/cpu1/topology/core_cpus | 1 + .../cpu/cpu1/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu1/topology/core_id | 1 + .../cpu/cpu1/topology/core_siblings | 1 + .../cpu/cpu1/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu1/topology/die_cpus | 1 + .../cpu/cpu1/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu1/topology/die_id | 1 + .../cpu/cpu1/topology/package_cpus | 1 + .../cpu/cpu1/topology/package_cpus_list | 1 + .../cpu/cpu1/topology/physical_package_id | 1 + .../cpu/cpu1/topology/thread_siblings | 1 + .../cpu/cpu1/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu10/online | 1 + .../cpu/cpu10/topology/core_cpus | 1 + .../cpu/cpu10/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu10/topology/core_id | 1 + .../cpu/cpu10/topology/core_siblings | 1 + .../cpu/cpu10/topology/core_siblings_list | 1 + .../cpu/cpu10/topology/die_cpus | 1 + .../cpu/cpu10/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu10/topology/die_id | 1 + .../cpu/cpu10/topology/package_cpus | 1 + .../cpu/cpu10/topology/package_cpus_list | 1 + .../cpu/cpu10/topology/physical_package_id | 1 + .../cpu/cpu10/topology/thread_siblings | 1 + .../cpu/cpu10/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu11/online | 1 + .../cpu/cpu11/topology/core_cpus | 1 + .../cpu/cpu11/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu11/topology/core_id | 1 + .../cpu/cpu11/topology/core_siblings | 1 + .../cpu/cpu11/topology/core_siblings_list | 1 + .../cpu/cpu11/topology/die_cpus | 1 + .../cpu/cpu11/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu11/topology/die_id | 1 + .../cpu/cpu11/topology/package_cpus | 1 + .../cpu/cpu11/topology/package_cpus_list | 1 + .../cpu/cpu11/topology/physical_package_id | 1 + .../cpu/cpu11/topology/thread_siblings | 1 + .../cpu/cpu11/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu2/online | 1 + .../cpu/cpu2/topology/core_cpus | 1 + .../cpu/cpu2/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu2/topology/core_id | 1 + .../cpu/cpu2/topology/core_siblings | 1 + .../cpu/cpu2/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu2/topology/die_cpus | 1 + .../cpu/cpu2/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu2/topology/die_id | 1 + .../cpu/cpu2/topology/package_cpus | 1 + .../cpu/cpu2/topology/package_cpus_list | 1 + .../cpu/cpu2/topology/physical_package_id | 1 + .../cpu/cpu2/topology/thread_siblings | 1 + .../cpu/cpu2/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu3/online | 1 + .../cpu/cpu3/topology/core_cpus | 1 + .../cpu/cpu3/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu3/topology/core_id | 1 + .../cpu/cpu3/topology/core_siblings | 1 + .../cpu/cpu3/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu3/topology/die_cpus | 1 + .../cpu/cpu3/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu3/topology/die_id | 1 + .../cpu/cpu3/topology/package_cpus | 1 + .../cpu/cpu3/topology/package_cpus_list | 1 + .../cpu/cpu3/topology/physical_package_id | 1 + .../cpu/cpu3/topology/thread_siblings | 1 + .../cpu/cpu3/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu4/online | 1 + .../cpu/cpu4/topology/core_cpus | 1 + .../cpu/cpu4/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu4/topology/core_id | 1 + .../cpu/cpu4/topology/core_siblings | 1 + .../cpu/cpu4/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu4/topology/die_cpus | 1 + .../cpu/cpu4/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu4/topology/die_id | 1 + .../cpu/cpu4/topology/package_cpus | 1 + .../cpu/cpu4/topology/package_cpus_list | 1 + .../cpu/cpu4/topology/physical_package_id | 1 + .../cpu/cpu4/topology/thread_siblings | 1 + .../cpu/cpu4/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu5/online | 1 + .../cpu/cpu5/topology/core_cpus | 1 + .../cpu/cpu5/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu5/topology/core_id | 1 + .../cpu/cpu5/topology/core_siblings | 1 + .../cpu/cpu5/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu5/topology/die_cpus | 1 + .../cpu/cpu5/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu5/topology/die_id | 1 + .../cpu/cpu5/topology/package_cpus | 1 + .../cpu/cpu5/topology/package_cpus_list | 1 + .../cpu/cpu5/topology/physical_package_id | 1 + .../cpu/cpu5/topology/thread_siblings | 1 + .../cpu/cpu5/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu6/online | 1 + .../cpu/cpu6/topology/core_cpus | 1 + .../cpu/cpu6/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu6/topology/core_id | 1 + .../cpu/cpu6/topology/core_siblings | 1 + .../cpu/cpu6/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu6/topology/die_cpus | 1 + .../cpu/cpu6/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu6/topology/die_id | 1 + .../cpu/cpu6/topology/package_cpus | 1 + .../cpu/cpu6/topology/package_cpus_list | 1 + .../cpu/cpu6/topology/physical_package_id | 1 + .../cpu/cpu6/topology/thread_siblings | 1 + .../cpu/cpu6/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu7/online | 1 + .../cpu/cpu7/topology/core_cpus | 1 + .../cpu/cpu7/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu7/topology/core_id | 1 + .../cpu/cpu7/topology/core_siblings | 1 + .../cpu/cpu7/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu7/topology/die_cpus | 1 + .../cpu/cpu7/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu7/topology/die_id | 1 + .../cpu/cpu7/topology/package_cpus | 1 + .../cpu/cpu7/topology/package_cpus_list | 1 + .../cpu/cpu7/topology/physical_package_id | 1 + .../cpu/cpu7/topology/thread_siblings | 1 + .../cpu/cpu7/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu8/online | 1 + .../cpu/cpu8/topology/core_cpus | 1 + .../cpu/cpu8/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu8/topology/core_id | 1 + .../cpu/cpu8/topology/core_siblings | 1 + .../cpu/cpu8/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu8/topology/die_cpus | 1 + .../cpu/cpu8/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu8/topology/die_id | 1 + .../cpu/cpu8/topology/package_cpus | 1 + .../cpu/cpu8/topology/package_cpus_list | 1 + .../cpu/cpu8/topology/physical_package_id | 1 + .../cpu/cpu8/topology/thread_siblings | 1 + .../cpu/cpu8/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu9/online | 1 + .../cpu/cpu9/topology/core_cpus | 1 + .../cpu/cpu9/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu9/topology/core_id | 1 + .../cpu/cpu9/topology/core_siblings | 1 + .../cpu/cpu9/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu9/topology/die_cpus | 1 + .../cpu/cpu9/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu9/topology/die_id | 1 + .../cpu/cpu9/topology/package_cpus | 1 + .../cpu/cpu9/topology/package_cpus_list | 1 + .../cpu/cpu9/topology/physical_package_id | 1 + .../cpu/cpu9/topology/thread_siblings | 1 + .../cpu/cpu9/topology/thread_siblings_list | 1 + .../virhostcpudata/linux-with-die/cpu/online | 1 + .../virhostcpudata/linux-with-die/cpu/present | 1 + .../linux-with-die/node/node0/cpu0 | 1 + .../linux-with-die/node/node0/cpu1 | 1 + .../linux-with-die/node/node0/cpu10 | 1 + .../linux-with-die/node/node0/cpu11 | 1 + .../linux-with-die/node/node0/cpu2 | 1 + .../linux-with-die/node/node0/cpu3 | 1 + .../linux-with-die/node/node0/cpu4 | 1 + .../linux-with-die/node/node0/cpu5 | 1 + .../linux-with-die/node/node0/cpu6 | 1 + .../linux-with-die/node/node0/cpu7 | 1 + .../linux-with-die/node/node0/cpu8 | 1 + .../linux-with-die/node/node0/cpu9 | 1 + .../linux-with-die/node/node0/cpulist | 1 + .../virhostcpudata/linux-with-die/node/online | 1 + .../linux-with-die/node/possible | 1 + .../linux-x86_64-with-die.cpuinfo | 324 ++++++++++++++++++ .../linux-x86_64-with-die.expected | 1 + tests/virhostcputest.c | 1 + 191 files changed, 548 insertions(+) create mode 120000 tests/vircaps2xmldata/linux-basic-dies/system/cpu create mode 120000 tests/vircaps2xmldata/linux-basic-dies/system/node create mode 100644 tests/vircaps2xmldata/vircaps-x86_64-basic-dies.xml create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/present create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu0 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu1 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu10 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu11 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu2 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu3 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu4 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu5 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu6 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu7 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu8 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu9 create mode 100644 tests/virhostcpudata/linux-with-die/node/node0/cpulist create mode 100644 tests/virhostcpudata/linux-with-die/node/online create mode 100644 tests/virhostcpudata/linux-with-die/node/possible create mode 100644 tests/virhostcpudata/linux-x86_64-with-die.cpuinfo create mode 100644 tests/virhostcpudata/linux-x86_64-with-die.expected diff --git a/tests/vircaps2xmldata/linux-basic-dies/system/cpu b/tests/vircaps2xmldata/linux-basic-dies/system/cpu new file mode 120000 index 0000000000..af158a7097 --- /dev/null +++ b/tests/vircaps2xmldata/linux-basic-dies/system/cpu @@ -0,0 +1 @@ +../../../virhostcpudata/linux-with-die/cpu \ No newline at end of file diff --git a/tests/vircaps2xmldata/linux-basic-dies/system/node b/tests/vircaps2xmldata/linux-basic-dies/system/node new file mode 120000 index 0000000000..68bc88ea14 --- /dev/null +++ b/tests/vircaps2xmldata/linux-basic-dies/system/node @@ -0,0 +1 @@ +../../../virhostcpudata/linux-with-die/node \ No newline at end of file diff --git a/tests/vircaps2xmldata/vircaps-x86_64-basic-dies.xml b/tests/vircaps2xmldata/vircaps-x86_64-basic-dies.xml new file mode 100644 index 0000000000..8a3ca2d13c --- /dev/null +++ b/tests/vircaps2xmldata/vircaps-x86_64-basic-dies.xml @@ -0,0 +1,35 @@ +<capabilities> + + <host> + <cpu> + <arch>x86_64</arch> + </cpu> + <power_management/> + <iommu support='no'/> + <topology> + <cells num='1'> + <cell id='0'> + <memory unit='KiB'>1048576</memory> + <pages unit='KiB' size='4'>2048</pages> + <pages unit='KiB' size='2048'>4096</pages> + <pages unit='KiB' size='1048576'>6144</pages> + <cpus num='12'> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='0' die_id='0' core_id='1' siblings='1'/> + <cpu id='2' socket_id='0' die_id='1' core_id='0' siblings='2'/> + <cpu id='3' socket_id='0' die_id='1' core_id='1' siblings='3'/> + <cpu id='4' socket_id='0' die_id='2' core_id='0' siblings='4'/> + <cpu id='5' socket_id='0' die_id='2' core_id='1' siblings='5'/> + <cpu id='6' socket_id='1' die_id='0' core_id='0' siblings='6'/> + <cpu id='7' socket_id='1' die_id='0' core_id='1' siblings='7'/> + <cpu id='8' socket_id='1' die_id='1' core_id='0' siblings='8'/> + <cpu id='9' socket_id='1' die_id='1' core_id='1' siblings='9'/> + <cpu id='10' socket_id='1' die_id='2' core_id='0' siblings='10'/> + <cpu id='11' socket_id='1' die_id='2' core_id='1' siblings='11'/> + </cpus> + </cell> + </cells> + </topology> + </host> + +</capabilities> diff --git a/tests/vircaps2xmltest.c b/tests/vircaps2xmltest.c index 6c08a26ec4..17cd600a7a 100644 --- a/tests/vircaps2xmltest.c +++ b/tests/vircaps2xmltest.c @@ -102,6 +102,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("caches", VIR_ARCH_X86_64, true, true); diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus new file mode 100644 index 0000000000..5325a8dff7 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus @@ -0,0 +1 @@ +001 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus_list new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus_list @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus new file mode 100644 index 0000000000..d7887218f9 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus @@ -0,0 +1 @@ +003 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus_list new file mode 100644 index 0000000000..8b0fab869c --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus_list @@ -0,0 +1 @@ +0-1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/physical_package_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/physical_package_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings new file mode 100644 index 0000000000..5325a8dff7 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings @@ -0,0 +1 @@ +001 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings_list new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings_list @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/online b/tests/virhostcpudata/linux-with-die/cpu/cpu1/online new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/online @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus new file mode 100644 index 0000000000..5902f77e7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus @@ -0,0 +1 @@ +002 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus_list new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus_list @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus new file mode 100644 index 0000000000..d7887218f9 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus @@ -0,0 +1 @@ +003 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus_list new file mode 100644 index 0000000000..8b0fab869c --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus_list @@ -0,0 +1 @@ +0-1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/physical_package_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/physical_package_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings new file mode 100644 index 0000000000..5902f77e7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings @@ -0,0 +1 @@ +002 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings_list new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings_list @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/online b/tests/virhostcpudata/linux-with-die/cpu/cpu10/online new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/online @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus new file mode 100644 index 0000000000..d411bb7c1a --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus @@ -0,0 +1 @@ +400 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus_list new file mode 100644 index 0000000000..f599e28b8a --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus_list @@ -0,0 +1 @@ +10 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus new file mode 100644 index 0000000000..a94266dd91 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus @@ -0,0 +1 @@ +c00 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus_list new file mode 100644 index 0000000000..ac93dc4496 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus_list @@ -0,0 +1 @@ +10-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_id new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_id @@ -0,0 +1 @@ +2 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/physical_package_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/physical_package_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings new file mode 100644 index 0000000000..d411bb7c1a --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings @@ -0,0 +1 @@ +400 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings_list new file mode 100644 index 0000000000..f599e28b8a --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings_list @@ -0,0 +1 @@ +10 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/online b/tests/virhostcpudata/linux-with-die/cpu/cpu11/online new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/online @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus new file mode 100644 index 0000000000..5ae5aef844 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus @@ -0,0 +1 @@ +800 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus_list new file mode 100644 index 0000000000..b4de394767 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus_list @@ -0,0 +1 @@ +11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus new file mode 100644 index 0000000000..a94266dd91 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus @@ -0,0 +1 @@ +c00 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus_list new file mode 100644 index 0000000000..ac93dc4496 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus_list @@ -0,0 +1 @@ +10-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_id new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_id @@ -0,0 +1 @@ +2 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/physical_package_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/physical_package_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings new file mode 100644 index 0000000000..5ae5aef844 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings @@ -0,0 +1 @@ +800 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings_list new file mode 100644 index 0000000000..b4de394767 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings_list @@ -0,0 +1 @@ +11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/online b/tests/virhostcpudata/linux-with-die/cpu/cpu2/online new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/online @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus new file mode 100644 index 0000000000..8f3cca4f01 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus @@ -0,0 +1 @@ +004 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus_list new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus_list @@ -0,0 +1 @@ +2 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus new file mode 100644 index 0000000000..3138e83a00 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus @@ -0,0 +1 @@ +00c diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus_list new file mode 100644 index 0000000000..7a9857542a --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus_list @@ -0,0 +1 @@ +2-3 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/physical_package_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/physical_package_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings new file mode 100644 index 0000000000..8f3cca4f01 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings @@ -0,0 +1 @@ +004 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings_list new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings_list @@ -0,0 +1 @@ +2 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/online b/tests/virhostcpudata/linux-with-die/cpu/cpu3/online new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/online @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus new file mode 100644 index 0000000000..e195199bee --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus @@ -0,0 +1 @@ +008 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus_list new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus_list @@ -0,0 +1 @@ +3 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus new file mode 100644 index 0000000000..3138e83a00 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus @@ -0,0 +1 @@ +00c diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus_list new file mode 100644 index 0000000000..7a9857542a --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus_list @@ -0,0 +1 @@ +2-3 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/physical_package_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/physical_package_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings new file mode 100644 index 0000000000..e195199bee --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings @@ -0,0 +1 @@ +008 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings_list new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings_list @@ -0,0 +1 @@ +3 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/online b/tests/virhostcpudata/linux-with-die/cpu/cpu4/online new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/online @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus new file mode 100644 index 0000000000..9e8493eaee --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus @@ -0,0 +1 @@ +010 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus_list new file mode 100644 index 0000000000..b8626c4cff --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus_list @@ -0,0 +1 @@ +4 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus new file mode 100644 index 0000000000..cadb715e0d --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus @@ -0,0 +1 @@ +030 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus_list new file mode 100644 index 0000000000..e66d883ade --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus_list @@ -0,0 +1 @@ +4-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_id new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_id @@ -0,0 +1 @@ +2 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/physical_package_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/physical_package_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings new file mode 100644 index 0000000000..9e8493eaee --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings @@ -0,0 +1 @@ +010 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings_list new file mode 100644 index 0000000000..b8626c4cff --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings_list @@ -0,0 +1 @@ +4 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/online b/tests/virhostcpudata/linux-with-die/cpu/cpu5/online new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/online @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus new file mode 100644 index 0000000000..fb6187e9e0 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus @@ -0,0 +1 @@ +020 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus_list new file mode 100644 index 0000000000..7ed6ff82de --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus_list @@ -0,0 +1 @@ +5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus new file mode 100644 index 0000000000..cadb715e0d --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus @@ -0,0 +1 @@ +030 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus_list new file mode 100644 index 0000000000..e66d883ade --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus_list @@ -0,0 +1 @@ +4-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_id new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_id @@ -0,0 +1 @@ +2 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus new file mode 100644 index 0000000000..d37ac748bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus @@ -0,0 +1 @@ +03f diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus_list new file mode 100644 index 0000000000..82a99f2907 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus_list @@ -0,0 +1 @@ +0-5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/physical_package_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/physical_package_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings new file mode 100644 index 0000000000..fb6187e9e0 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings @@ -0,0 +1 @@ +020 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings_list new file mode 100644 index 0000000000..7ed6ff82de --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings_list @@ -0,0 +1 @@ +5 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/online b/tests/virhostcpudata/linux-with-die/cpu/cpu6/online new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/online @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus new file mode 100644 index 0000000000..9070bc3017 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus @@ -0,0 +1 @@ +040 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus_list new file mode 100644 index 0000000000..1e8b314962 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus_list @@ -0,0 +1 @@ +6 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus new file mode 100644 index 0000000000..8f0552ead0 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus @@ -0,0 +1 @@ +0c0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus_list new file mode 100644 index 0000000000..fdd9f37517 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus_list @@ -0,0 +1 @@ +6-7 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/physical_package_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/physical_package_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings new file mode 100644 index 0000000000..9070bc3017 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings @@ -0,0 +1 @@ +040 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings_list new file mode 100644 index 0000000000..1e8b314962 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings_list @@ -0,0 +1 @@ +6 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/online b/tests/virhostcpudata/linux-with-die/cpu/cpu7/online new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/online @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus new file mode 100644 index 0000000000..fa5c7835bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus @@ -0,0 +1 @@ +080 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus_list new file mode 100644 index 0000000000..7f8f011eb7 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus_list @@ -0,0 +1 @@ +7 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus new file mode 100644 index 0000000000..8f0552ead0 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus @@ -0,0 +1 @@ +0c0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus_list new file mode 100644 index 0000000000..fdd9f37517 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus_list @@ -0,0 +1 @@ +6-7 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/physical_package_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/physical_package_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings new file mode 100644 index 0000000000..fa5c7835bd --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings @@ -0,0 +1 @@ +080 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings_list new file mode 100644 index 0000000000..7f8f011eb7 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings_list @@ -0,0 +1 @@ +7 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/online b/tests/virhostcpudata/linux-with-die/cpu/cpu8/online new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/online @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus new file mode 100644 index 0000000000..29d6383b52 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus @@ -0,0 +1 @@ +100 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus_list new file mode 100644 index 0000000000..45a4fb75db --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus_list @@ -0,0 +1 @@ +8 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus new file mode 100644 index 0000000000..697cb3a26d --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus @@ -0,0 +1 @@ +300 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus_list new file mode 100644 index 0000000000..63edceec1e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus_list @@ -0,0 +1 @@ +8-9 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/physical_package_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/physical_package_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings new file mode 100644 index 0000000000..29d6383b52 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings @@ -0,0 +1 @@ +100 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings_list new file mode 100644 index 0000000000..45a4fb75db --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings_list @@ -0,0 +1 @@ +8 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/online b/tests/virhostcpudata/linux-with-die/cpu/cpu9/online new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/online @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus new file mode 100644 index 0000000000..08839f6bb2 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus @@ -0,0 +1 @@ +200 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus_list new file mode 100644 index 0000000000..ec635144f6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus_list @@ -0,0 +1 @@ +9 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_id b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus new file mode 100644 index 0000000000..697cb3a26d --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus @@ -0,0 +1 @@ +300 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus_list new file mode 100644 index 0000000000..63edceec1e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus_list @@ -0,0 +1 @@ +8-9 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_id b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus new file mode 100644 index 0000000000..6c3274debe --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus @@ -0,0 +1 @@ +fc0 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus_list b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus_list new file mode 100644 index 0000000000..fd6c445982 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus_list @@ -0,0 +1 @@ +6-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/physical_package_id b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/physical_package_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/physical_package_id @@ -0,0 +1 @@ +1 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings new file mode 100644 index 0000000000..08839f6bb2 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings @@ -0,0 +1 @@ +200 diff --git a/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings_list b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings_list new file mode 100644 index 0000000000..ec635144f6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings_list @@ -0,0 +1 @@ +9 diff --git a/tests/virhostcpudata/linux-with-die/cpu/online b/tests/virhostcpudata/linux-with-die/cpu/online new file mode 100644 index 0000000000..536e621dcc --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/online @@ -0,0 +1 @@ +0-11 diff --git a/tests/virhostcpudata/linux-with-die/cpu/present b/tests/virhostcpudata/linux-with-die/cpu/present new file mode 100644 index 0000000000..536e621dcc --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/cpu/present @@ -0,0 +1 @@ +0-11 diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu0 b/tests/virhostcpudata/linux-with-die/node/node0/cpu0 new file mode 120000 index 0000000000..c841bea28b --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu0 @@ -0,0 +1 @@ +../../cpu/cpu0 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu1 b/tests/virhostcpudata/linux-with-die/node/node0/cpu1 new file mode 120000 index 0000000000..5f4536279e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu1 @@ -0,0 +1 @@ +../../cpu/cpu1 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu10 b/tests/virhostcpudata/linux-with-die/node/node0/cpu10 new file mode 120000 index 0000000000..a6dc6bb10e --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu10 @@ -0,0 +1 @@ +../../cpu/cpu10 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu11 b/tests/virhostcpudata/linux-with-die/node/node0/cpu11 new file mode 120000 index 0000000000..e29d898284 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu11 @@ -0,0 +1 @@ +../../cpu/cpu11 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu2 b/tests/virhostcpudata/linux-with-die/node/node0/cpu2 new file mode 120000 index 0000000000..2dcca332ce --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu2 @@ -0,0 +1 @@ +../../cpu/cpu2 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu3 b/tests/virhostcpudata/linux-with-die/node/node0/cpu3 new file mode 120000 index 0000000000..c7690e5aa6 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu3 @@ -0,0 +1 @@ +../../cpu/cpu3 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu4 b/tests/virhostcpudata/linux-with-die/node/node0/cpu4 new file mode 120000 index 0000000000..9e77a64eb4 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu4 @@ -0,0 +1 @@ +../../cpu/cpu4 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu5 b/tests/virhostcpudata/linux-with-die/node/node0/cpu5 new file mode 120000 index 0000000000..cc07c3b97b --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu5 @@ -0,0 +1 @@ +../../cpu/cpu5 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu6 b/tests/virhostcpudata/linux-with-die/node/node0/cpu6 new file mode 120000 index 0000000000..2e7576354f --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu6 @@ -0,0 +1 @@ +../../cpu/cpu6 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu7 b/tests/virhostcpudata/linux-with-die/node/node0/cpu7 new file mode 120000 index 0000000000..09e3f79b43 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu7 @@ -0,0 +1 @@ +../../cpu/cpu7 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu8 b/tests/virhostcpudata/linux-with-die/node/node0/cpu8 new file mode 120000 index 0000000000..bda10cc343 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu8 @@ -0,0 +1 @@ +../../cpu/cpu8 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpu9 b/tests/virhostcpudata/linux-with-die/node/node0/cpu9 new file mode 120000 index 0000000000..1ec1db255a --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpu9 @@ -0,0 +1 @@ +../../cpu/cpu9 \ No newline at end of file diff --git a/tests/virhostcpudata/linux-with-die/node/node0/cpulist b/tests/virhostcpudata/linux-with-die/node/node0/cpulist new file mode 100644 index 0000000000..536e621dcc --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/node0/cpulist @@ -0,0 +1 @@ +0-11 diff --git a/tests/virhostcpudata/linux-with-die/node/online b/tests/virhostcpudata/linux-with-die/node/online new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/online @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-with-die/node/possible b/tests/virhostcpudata/linux-with-die/node/possible new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/virhostcpudata/linux-with-die/node/possible @@ -0,0 +1 @@ +0 diff --git a/tests/virhostcpudata/linux-x86_64-with-die.cpuinfo b/tests/virhostcpudata/linux-x86_64-with-die.cpuinfo new file mode 100644 index 0000000000..027dc6a037 --- /dev/null +++ b/tests/virhostcpudata/linux-x86_64-with-die.cpuinfo @@ -0,0 +1,324 @@ +processor : 0 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 0 +initial apicid : 0 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 1 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 1 +initial apicid : 1 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 2 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 2 +initial apicid : 2 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 3 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 3 +initial apicid : 3 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 4 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 4 +initial apicid : 4 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 5 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 5 +initial apicid : 5 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 6 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 8 +initial apicid : 8 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 7 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 9 +initial apicid : 9 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 8 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 10 +initial apicid : 10 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 9 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 11 +initial apicid : 11 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 10 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 12 +initial apicid : 12 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 11 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 13 +initial apicid : 13 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + diff --git a/tests/virhostcpudata/linux-x86_64-with-die.expected b/tests/virhostcpudata/linux-x86_64-with-die.expected new file mode 100644 index 0000000000..3c045f483a --- /dev/null +++ b/tests/virhostcpudata/linux-x86_64-with-die.expected @@ -0,0 +1 @@ +CPUs: 12/12, MHz: 1897, Nodes: 1, Sockets: 1, Cores: 12, Threads: 1 diff --git a/tests/virhostcputest.c b/tests/virhostcputest.c index 05c6f5acfb..7865b61578 100644 --- a/tests/virhostcputest.c +++ b/tests/virhostcputest.c @@ -248,6 +248,7 @@ mymain(void) /* subcores, invalid configuration */ {"subcores3", VIR_ARCH_PPC64}, {"with-frequency", VIR_ARCH_S390X}, + {"with-die", VIR_ARCH_X86_64}, }; if (virInitialize() < 0) -- 2.23.0

This patch made git am complain about whitespace errors: Applying: tests: add host CPU data files for validating die_id .git/rebase-apply/patch:2068: new blank line at EOF. + warning: 1 line adds whitespace errors. If I have to guess, I think it's right ... On 12/19/19 9:42 AM, Daniel P. Berrangé wrote:
Only Cascadelake-AP CPUs appear to report "die_id" values != 0 on Linux right now - AMD EPYC's don't report "die_id" (at least with Fedora 31 kernel). Lacking access to Cascadelake-AP CPUs, this test data was from a Fedora 31 QEMU guest launched with
-cpu qemu64 -smp sockets=2,dies=3,cores=2,threads=1
Ideally we'd replace this data with some from a real machine reporting "die_id", to ensure we're not mislead by QEMU's impl.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- .../linux-basic-dies/system/cpu | 1 + .../linux-basic-dies/system/node | 1 + .../vircaps-x86_64-basic-dies.xml | 35 ++ tests/vircaps2xmltest.c | 1 + .../cpu/cpu0/topology/core_cpus | 1 +
[...]
diff --git a/tests/virhostcpudata/linux-x86_64-with-die.cpuinfo b/tests/virhostcpudata/linux-x86_64-with-die.cpuinfo new file mode 100644 index 0000000000..027dc6a037 --- /dev/null +++ b/tests/virhostcpudata/linux-x86_64-with-die.cpuinfo @@ -0,0 +1,324 @@ +processor : 0 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 0 +initial apicid : 0 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 1 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 1 +initial apicid : 1 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 2 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 2 +initial apicid : 2 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 3 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 3 +initial apicid : 3 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 4 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 4 +initial apicid : 4 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 5 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 0 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 5 +initial apicid : 5 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 6 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 8 +initial apicid : 8 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 7 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 9 +initial apicid : 9 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 8 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 10 +initial apicid : 10 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 9 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 11 +initial apicid : 11 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 10 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 12 +initial apicid : 12 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: + +processor : 11 +vendor_id : GenuineIntel +cpu family : 6 +model : 6 +model name : QEMU Virtual CPU version 2.5+ +stepping : 3 +microcode : 0x1 +cpu MHz : 1897.801 +cache size : 16384 KB +physical id : 1 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 13 +initial apicid : 13 +fpu : yes +fpu_exception : yes +cpuid level : 31 +wp : yes +flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ht syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti +bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs +bogomips : 3795.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +power management: +
Here ^

On Thu, Dec 19, 2019 at 12:42:08 +0000, Daniel P. Berrangé wrote:
Only Cascadelake-AP CPUs appear to report "die_id" values != 0 on Linux right now - AMD EPYC's don't report "die_id" (at least with Fedora 31 kernel). Lacking access to Cascadelake-AP CPUs, this test data was from a Fedora 31 QEMU guest launched with
-cpu qemu64 -smp sockets=2,dies=3,cores=2,threads=1
Ideally we'd replace this data with some from a real machine reporting "die_id", to ensure we're not mislead by QEMU's impl.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>

Ping On Thu, Dec 19, 2019 at 12:42:03PM +0000, Daniel P. Berrangé wrote:
Latest generation CPUs (CascadeLake-AP) support a new topology level known as a 'die', sitting between a socket and a core.
QEMU supports this with -smp arg since 4.1.0
Linux can report this via /sys/devices/system/cpu/cpuNNN/topology via 'die_id' and 'die_cpus' and 'die_cpus_list' files since 5.2
This series adds support for <topology> in guest XML to have a new 'dies' parameter, passed to QEMU, which defaults to '1' if omitted.
It extends host capabilities so that NUMA topology reports a new 'die_id' attribute
We can't expand 'virNodeInfoPtr' struct to have a die field, so this will remain forever reporting 'cores' as being 'dies * cores'.
The <topology> in host capabilities XML is an interesting question.
If we are strict with our API semantics we would *not* add a 'dies' parameter with any value other than '1' to <topology> in the host capabilities. If we reported a value other than 1, then any existing apps which multiple sockets*cores*threads will get the wrong total CPU count.
We already know <topology> is broken by design for asymetric hardware, so we could simply document that it will forever be broken wrt to CPU dies too. In this case we might be better to not even report 'dies=1', just leave out the attr entirely.
Interestingly though, <topology> is already more broken than it should be. For a VM with -smp 12,sockets=2,dies=3,cores=2,threads=1 it is reporting <topology sockets=1 dies=1 cores=12 threads=1>. It should at least do <topology sockets=2 dies=1 cores=6 threads=1>.
I suspect the presence of dies is confusing the really incredibly horrible logic in virHostCPUGetInfoLinux. This will also impact virNodeInfoPtr data.
So even if we don't report dies, I think we still have a bug that needs fixing here for the coarse node topology.
I'm also confused about what I see with EPYC. IIUC, it was supposed to use the 'dies' concept, but in machines I've tested, Linux never reports die count other than 1. Perhaps only certain EPYC CPU models or generations use 'dies', or perhaps Linux isn't reporting correctly for EPYC, or perhaps I'm mislead into believeing it uses dies.
Anyway, the upshot is I've not found any real hardware to test this series on. I've tested it only inside a QEMU guest with the suitable -smp arg to fake dies.
Daniel P. Berrangé (5): conf: add support for specifying CPU "dies" parameter conf: remove unused virCapabilitiesSetHostCPU method qemu: add support for specifying CPU "dies" topology parameter hostcpu: add support for reporting die_id in NUMA topology tests: add host CPU data files for validating die_id
docs/formatcaps.html.in | 2 +- docs/formatdomain.html.in | 14 +- docs/schemas/capability.rng | 3 + docs/schemas/cputypes.rng | 5 + src/bhyve/bhyve_command.c | 5 + src/conf/capabilities.c | 26 +- src/conf/capabilities.h | 7 +- src/conf/cpu_conf.c | 18 +- src/conf/cpu_conf.h | 1 + src/conf/domain_conf.c | 3 +- src/cpu/cpu.c | 1 + src/libvirt_linux.syms | 1 + src/libvirt_private.syms | 1 - src/libxl/libxl_capabilities.c | 1 + src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 12 +- src/util/virhostcpu.c | 16 + src/util/virhostcpu.h | 1 + src/vmx/vmx.c | 7 + .../x86_64-host+guest,model486-result.xml | 2 +- .../x86_64-host+guest,models-result.xml | 2 +- .../cputestdata/x86_64-host+guest-result.xml | 2 +- tests/cputestdata/x86_64-host+guest.xml | 2 +- .../x86_64-host+host-model-nofallback.xml | 2 +- ...t-Haswell-noTSX+Haswell,haswell-result.xml | 2 +- ...ell-noTSX+Haswell-noTSX,haswell-result.xml | 2 +- ...ost-Haswell-noTSX+Haswell-noTSX-result.xml | 2 +- .../x86_64-host-worse+guest-result.xml | 2 +- .../caps_4.1.0.x86_64.xml | 1 + .../caps_4.2.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + .../caps_4.2.0.x86_64.xml | 1 + .../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 +- .../x86-old-bulk-result-conf.xml | 2 +- .../x86-old-bulk-result-live.xml | 2 +- .../cpu-hotplug-granularity.xml | 2 +- .../qemuxml2argvdata/cpu-hotplug-startup.xml | 2 +- tests/qemuxml2argvdata/cpu-numa-disjoint.xml | 2 +- .../qemuxml2argvdata/cpu-numa-disordered.xml | 2 +- tests/qemuxml2argvdata/cpu-numa-memshared.xml | 2 +- .../cpu-numa-no-memory-element.xml | 2 +- tests/qemuxml2argvdata/cpu-numa1.xml | 2 +- tests/qemuxml2argvdata/cpu-numa2.xml | 2 +- tests/qemuxml2argvdata/cpu-numa3.xml | 2 +- tests/qemuxml2argvdata/cpu-topology1.xml | 2 +- tests/qemuxml2argvdata/cpu-topology2.xml | 2 +- tests/qemuxml2argvdata/cpu-topology3.xml | 2 +- .../fd-memory-no-numa-topology.xml | 2 +- .../fd-memory-numa-topology.xml | 2 +- .../fd-memory-numa-topology2.xml | 2 +- .../fd-memory-numa-topology3.xml | 2 +- .../graphics-spice-timeout.xml | 2 +- .../hugepages-nvdimm.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/hugepages-nvdimm.xml | 2 +- ...memory-default-hugepage.x86_64-latest.args | 2 +- .../memfd-memory-default-hugepage.xml | 2 +- .../memfd-memory-numa.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/memfd-memory-numa.xml | 2 +- tests/qemuxml2argvdata/memory-align-fail.xml | 2 +- .../memory-hotplug-dimm-addr.xml | 2 +- .../qemuxml2argvdata/memory-hotplug-dimm.xml | 2 +- ...y-hotplug-nvdimm-access.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-access.xml | 2 +- ...ry-hotplug-nvdimm-align.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-align.xml | 2 +- ...ry-hotplug-nvdimm-label.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-label.xml | 2 +- ...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-pmem.xml | 2 +- ...hotplug-nvdimm-readonly.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-readonly.xml | 2 +- .../memory-hotplug-nvdimm.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm.xml | 2 +- tests/qemuxml2argvdata/memory-hotplug.xml | 2 +- .../numad-auto-memory-vcpu-cpuset.xml | 2 +- ...to-memory-vcpu-no-cpuset-and-placement.xml | 2 +- .../numad-auto-vcpu-no-numatune.xml | 2 +- ...d-auto-vcpu-static-numatune-no-nodeset.xml | 2 +- .../numad-auto-vcpu-static-numatune.xml | 2 +- .../numad-static-memory-auto-vcpu.xml | 2 +- .../numad-static-vcpu-no-numatune.xml | 2 +- tests/qemuxml2argvdata/numad.xml | 2 +- .../numatune-auto-nodeset-invalid.xml | 2 +- .../numatune-memory-invalid-nodeset.xml | 2 +- tests/qemuxml2argvdata/numatune-memory.xml | 2 +- .../pci-expander-bus-bad-machine.xml | 2 +- tests/qemuxml2argvdata/pci-expander-bus.xml | 2 +- .../pcie-expander-bus-bad-bus.xml | 2 +- .../pcie-expander-bus-bad-machine.xml | 2 +- tests/qemuxml2argvdata/pcie-expander-bus.xml | 2 +- .../pseries-default-phb-numa-node.xml | 2 +- .../pseries-phb-numa-node.xml | 2 +- tests/qemuxml2argvdata/smp-dies.args | 29 ++ tests/qemuxml2argvdata/smp-dies.xml | 33 ++ tests/qemuxml2argvdata/smp.xml | 2 +- tests/qemuxml2argvtest.c | 1 + .../qemuxml2xmloutdata/cpu-numa-disjoint.xml | 2 +- .../cpu-numa-disordered.xml | 2 +- .../qemuxml2xmloutdata/cpu-numa-memshared.xml | 2 +- .../cpu-numa-no-memory-element.xml | 2 +- tests/qemuxml2xmloutdata/cpu-numa1.xml | 2 +- tests/qemuxml2xmloutdata/cpu-numa2.xml | 2 +- .../graphics-spice-timeout.xml | 2 +- .../memory-hotplug-dimm.xml | 2 +- tests/qemuxml2xmloutdata/memory-hotplug.xml | 2 +- .../numad-auto-memory-vcpu-cpuset.xml | 2 +- ...to-memory-vcpu-no-cpuset-and-placement.xml | 2 +- .../numad-auto-vcpu-no-numatune.xml | 2 +- .../numad-static-vcpu-no-numatune.xml | 2 +- tests/qemuxml2xmloutdata/pci-expander-bus.xml | 2 +- .../qemuxml2xmloutdata/pcie-expander-bus.xml | 2 +- .../pseries-phb-numa-node.xml | 2 +- tests/qemuxml2xmloutdata/smp.xml | 2 +- .../linux-basic-dies/system/cpu | 1 + .../linux-basic-dies/system/node | 1 + .../vircaps2xmldata/vircaps-aarch64-basic.xml | 32 +- .../vircaps-x86_64-basic-dies.xml | 35 ++ .../vircaps2xmldata/vircaps-x86_64-basic.xml | 32 +- .../vircaps2xmldata/vircaps-x86_64-caches.xml | 16 +- .../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 +- tests/vircaps2xmltest.c | 1 + .../cpu/cpu0/topology/core_cpus | 1 + .../cpu/cpu0/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu0/topology/core_id | 1 + .../cpu/cpu0/topology/core_siblings | 1 + .../cpu/cpu0/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu0/topology/die_cpus | 1 + .../cpu/cpu0/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu0/topology/die_id | 1 + .../cpu/cpu0/topology/package_cpus | 1 + .../cpu/cpu0/topology/package_cpus_list | 1 + .../cpu/cpu0/topology/physical_package_id | 1 + .../cpu/cpu0/topology/thread_siblings | 1 + .../cpu/cpu0/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu1/online | 1 + .../cpu/cpu1/topology/core_cpus | 1 + .../cpu/cpu1/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu1/topology/core_id | 1 + .../cpu/cpu1/topology/core_siblings | 1 + .../cpu/cpu1/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu1/topology/die_cpus | 1 + .../cpu/cpu1/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu1/topology/die_id | 1 + .../cpu/cpu1/topology/package_cpus | 1 + .../cpu/cpu1/topology/package_cpus_list | 1 + .../cpu/cpu1/topology/physical_package_id | 1 + .../cpu/cpu1/topology/thread_siblings | 1 + .../cpu/cpu1/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu10/online | 1 + .../cpu/cpu10/topology/core_cpus | 1 + .../cpu/cpu10/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu10/topology/core_id | 1 + .../cpu/cpu10/topology/core_siblings | 1 + .../cpu/cpu10/topology/core_siblings_list | 1 + .../cpu/cpu10/topology/die_cpus | 1 + .../cpu/cpu10/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu10/topology/die_id | 1 + .../cpu/cpu10/topology/package_cpus | 1 + .../cpu/cpu10/topology/package_cpus_list | 1 + .../cpu/cpu10/topology/physical_package_id | 1 + .../cpu/cpu10/topology/thread_siblings | 1 + .../cpu/cpu10/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu11/online | 1 + .../cpu/cpu11/topology/core_cpus | 1 + .../cpu/cpu11/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu11/topology/core_id | 1 + .../cpu/cpu11/topology/core_siblings | 1 + .../cpu/cpu11/topology/core_siblings_list | 1 + .../cpu/cpu11/topology/die_cpus | 1 + .../cpu/cpu11/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu11/topology/die_id | 1 + .../cpu/cpu11/topology/package_cpus | 1 + .../cpu/cpu11/topology/package_cpus_list | 1 + .../cpu/cpu11/topology/physical_package_id | 1 + .../cpu/cpu11/topology/thread_siblings | 1 + .../cpu/cpu11/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu2/online | 1 + .../cpu/cpu2/topology/core_cpus | 1 + .../cpu/cpu2/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu2/topology/core_id | 1 + .../cpu/cpu2/topology/core_siblings | 1 + .../cpu/cpu2/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu2/topology/die_cpus | 1 + .../cpu/cpu2/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu2/topology/die_id | 1 + .../cpu/cpu2/topology/package_cpus | 1 + .../cpu/cpu2/topology/package_cpus_list | 1 + .../cpu/cpu2/topology/physical_package_id | 1 + .../cpu/cpu2/topology/thread_siblings | 1 + .../cpu/cpu2/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu3/online | 1 + .../cpu/cpu3/topology/core_cpus | 1 + .../cpu/cpu3/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu3/topology/core_id | 1 + .../cpu/cpu3/topology/core_siblings | 1 + .../cpu/cpu3/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu3/topology/die_cpus | 1 + .../cpu/cpu3/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu3/topology/die_id | 1 + .../cpu/cpu3/topology/package_cpus | 1 + .../cpu/cpu3/topology/package_cpus_list | 1 + .../cpu/cpu3/topology/physical_package_id | 1 + .../cpu/cpu3/topology/thread_siblings | 1 + .../cpu/cpu3/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu4/online | 1 + .../cpu/cpu4/topology/core_cpus | 1 + .../cpu/cpu4/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu4/topology/core_id | 1 + .../cpu/cpu4/topology/core_siblings | 1 + .../cpu/cpu4/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu4/topology/die_cpus | 1 + .../cpu/cpu4/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu4/topology/die_id | 1 + .../cpu/cpu4/topology/package_cpus | 1 + .../cpu/cpu4/topology/package_cpus_list | 1 + .../cpu/cpu4/topology/physical_package_id | 1 + .../cpu/cpu4/topology/thread_siblings | 1 + .../cpu/cpu4/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu5/online | 1 + .../cpu/cpu5/topology/core_cpus | 1 + .../cpu/cpu5/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu5/topology/core_id | 1 + .../cpu/cpu5/topology/core_siblings | 1 + .../cpu/cpu5/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu5/topology/die_cpus | 1 + .../cpu/cpu5/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu5/topology/die_id | 1 + .../cpu/cpu5/topology/package_cpus | 1 + .../cpu/cpu5/topology/package_cpus_list | 1 + .../cpu/cpu5/topology/physical_package_id | 1 + .../cpu/cpu5/topology/thread_siblings | 1 + .../cpu/cpu5/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu6/online | 1 + .../cpu/cpu6/topology/core_cpus | 1 + .../cpu/cpu6/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu6/topology/core_id | 1 + .../cpu/cpu6/topology/core_siblings | 1 + .../cpu/cpu6/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu6/topology/die_cpus | 1 + .../cpu/cpu6/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu6/topology/die_id | 1 + .../cpu/cpu6/topology/package_cpus | 1 + .../cpu/cpu6/topology/package_cpus_list | 1 + .../cpu/cpu6/topology/physical_package_id | 1 + .../cpu/cpu6/topology/thread_siblings | 1 + .../cpu/cpu6/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu7/online | 1 + .../cpu/cpu7/topology/core_cpus | 1 + .../cpu/cpu7/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu7/topology/core_id | 1 + .../cpu/cpu7/topology/core_siblings | 1 + .../cpu/cpu7/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu7/topology/die_cpus | 1 + .../cpu/cpu7/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu7/topology/die_id | 1 + .../cpu/cpu7/topology/package_cpus | 1 + .../cpu/cpu7/topology/package_cpus_list | 1 + .../cpu/cpu7/topology/physical_package_id | 1 + .../cpu/cpu7/topology/thread_siblings | 1 + .../cpu/cpu7/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu8/online | 1 + .../cpu/cpu8/topology/core_cpus | 1 + .../cpu/cpu8/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu8/topology/core_id | 1 + .../cpu/cpu8/topology/core_siblings | 1 + .../cpu/cpu8/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu8/topology/die_cpus | 1 + .../cpu/cpu8/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu8/topology/die_id | 1 + .../cpu/cpu8/topology/package_cpus | 1 + .../cpu/cpu8/topology/package_cpus_list | 1 + .../cpu/cpu8/topology/physical_package_id | 1 + .../cpu/cpu8/topology/thread_siblings | 1 + .../cpu/cpu8/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu9/online | 1 + .../cpu/cpu9/topology/core_cpus | 1 + .../cpu/cpu9/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu9/topology/core_id | 1 + .../cpu/cpu9/topology/core_siblings | 1 + .../cpu/cpu9/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu9/topology/die_cpus | 1 + .../cpu/cpu9/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu9/topology/die_id | 1 + .../cpu/cpu9/topology/package_cpus | 1 + .../cpu/cpu9/topology/package_cpus_list | 1 + .../cpu/cpu9/topology/physical_package_id | 1 + .../cpu/cpu9/topology/thread_siblings | 1 + .../cpu/cpu9/topology/thread_siblings_list | 1 + .../virhostcpudata/linux-with-die/cpu/online | 1 + .../virhostcpudata/linux-with-die/cpu/present | 1 + .../linux-with-die/node/node0/cpu0 | 1 + .../linux-with-die/node/node0/cpu1 | 1 + .../linux-with-die/node/node0/cpu10 | 1 + .../linux-with-die/node/node0/cpu11 | 1 + .../linux-with-die/node/node0/cpu2 | 1 + .../linux-with-die/node/node0/cpu3 | 1 + .../linux-with-die/node/node0/cpu4 | 1 + .../linux-with-die/node/node0/cpu5 | 1 + .../linux-with-die/node/node0/cpu6 | 1 + .../linux-with-die/node/node0/cpu7 | 1 + .../linux-with-die/node/node0/cpu8 | 1 + .../linux-with-die/node/node0/cpu9 | 1 + .../linux-with-die/node/node0/cpulist | 1 + .../virhostcpudata/linux-with-die/node/online | 1 + .../linux-with-die/node/possible | 1 + .../linux-x86_64-with-die.cpuinfo | 324 ++++++++++++++++++ .../linux-x86_64-with-die.expected | 1 + tests/virhostcputest.c | 1 + .../vmx2xmldata/vmx2xml-esx-in-the-wild-8.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-9.xml | 2 +- 324 files changed, 887 insertions(+), 228 deletions(-) create mode 100644 tests/qemuxml2argvdata/smp-dies.args create mode 100644 tests/qemuxml2argvdata/smp-dies.xml create mode 120000 tests/vircaps2xmldata/linux-basic-dies/system/cpu create mode 120000 tests/vircaps2xmldata/linux-basic-dies/system/node create mode 100644 tests/vircaps2xmldata/vircaps-x86_64-basic-dies.xml create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/present create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu0 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu1 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu10 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu11 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu2 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu3 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu4 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu5 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu6 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu7 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu8 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu9 create mode 100644 tests/virhostcpudata/linux-with-die/node/node0/cpulist create mode 100644 tests/virhostcpudata/linux-with-die/node/online create mode 100644 tests/virhostcpudata/linux-with-die/node/possible create mode 100644 tests/virhostcpudata/linux-x86_64-with-die.cpuinfo create mode 100644 tests/virhostcpudata/linux-x86_64-with-die.expected
-- 2.23.0
Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

A few nits and minor comments but LGTM. All patches: Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> On 1/7/20 11:50 AM, Daniel P. Berrangé wrote:
Ping
On Thu, Dec 19, 2019 at 12:42:03PM +0000, Daniel P. Berrangé wrote:
Latest generation CPUs (CascadeLake-AP) support a new topology level known as a 'die', sitting between a socket and a core.
QEMU supports this with -smp arg since 4.1.0
Linux can report this via /sys/devices/system/cpu/cpuNNN/topology via 'die_id' and 'die_cpus' and 'die_cpus_list' files since 5.2
This series adds support for <topology> in guest XML to have a new 'dies' parameter, passed to QEMU, which defaults to '1' if omitted.
It extends host capabilities so that NUMA topology reports a new 'die_id' attribute
We can't expand 'virNodeInfoPtr' struct to have a die field, so this will remain forever reporting 'cores' as being 'dies * cores'.
The <topology> in host capabilities XML is an interesting question.
If we are strict with our API semantics we would *not* add a 'dies' parameter with any value other than '1' to <topology> in the host capabilities. If we reported a value other than 1, then any existing apps which multiple sockets*cores*threads will get the wrong total CPU count.
We already know <topology> is broken by design for asymetric hardware, so we could simply document that it will forever be broken wrt to CPU dies too. In this case we might be better to not even report 'dies=1', just leave out the attr entirely.
Interestingly though, <topology> is already more broken than it should be. For a VM with -smp 12,sockets=2,dies=3,cores=2,threads=1 it is reporting <topology sockets=1 dies=1 cores=12 threads=1>. It should at least do <topology sockets=2 dies=1 cores=6 threads=1>.
I suspect the presence of dies is confusing the really incredibly horrible logic in virHostCPUGetInfoLinux. This will also impact virNodeInfoPtr data.
So even if we don't report dies, I think we still have a bug that needs fixing here for the coarse node topology.
I'm also confused about what I see with EPYC. IIUC, it was supposed to use the 'dies' concept, but in machines I've tested, Linux never reports die count other than 1. Perhaps only certain EPYC CPU models or generations use 'dies', or perhaps Linux isn't reporting correctly for EPYC, or perhaps I'm mislead into believeing it uses dies.
Anyway, the upshot is I've not found any real hardware to test this series on. I've tested it only inside a QEMU guest with the suitable -smp arg to fake dies.
Daniel P. Berrangé (5): conf: add support for specifying CPU "dies" parameter conf: remove unused virCapabilitiesSetHostCPU method qemu: add support for specifying CPU "dies" topology parameter hostcpu: add support for reporting die_id in NUMA topology tests: add host CPU data files for validating die_id
docs/formatcaps.html.in | 2 +- docs/formatdomain.html.in | 14 +- docs/schemas/capability.rng | 3 + docs/schemas/cputypes.rng | 5 + src/bhyve/bhyve_command.c | 5 + src/conf/capabilities.c | 26 +- src/conf/capabilities.h | 7 +- src/conf/cpu_conf.c | 18 +- src/conf/cpu_conf.h | 1 + src/conf/domain_conf.c | 3 +- src/cpu/cpu.c | 1 + src/libvirt_linux.syms | 1 + src/libvirt_private.syms | 1 - src/libxl/libxl_capabilities.c | 1 + src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 12 +- src/util/virhostcpu.c | 16 + src/util/virhostcpu.h | 1 + src/vmx/vmx.c | 7 + .../x86_64-host+guest,model486-result.xml | 2 +- .../x86_64-host+guest,models-result.xml | 2 +- .../cputestdata/x86_64-host+guest-result.xml | 2 +- tests/cputestdata/x86_64-host+guest.xml | 2 +- .../x86_64-host+host-model-nofallback.xml | 2 +- ...t-Haswell-noTSX+Haswell,haswell-result.xml | 2 +- ...ell-noTSX+Haswell-noTSX,haswell-result.xml | 2 +- ...ost-Haswell-noTSX+Haswell-noTSX-result.xml | 2 +- .../x86_64-host-worse+guest-result.xml | 2 +- .../caps_4.1.0.x86_64.xml | 1 + .../caps_4.2.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + .../caps_4.2.0.x86_64.xml | 1 + .../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 +- .../x86-old-bulk-result-conf.xml | 2 +- .../x86-old-bulk-result-live.xml | 2 +- .../cpu-hotplug-granularity.xml | 2 +- .../qemuxml2argvdata/cpu-hotplug-startup.xml | 2 +- tests/qemuxml2argvdata/cpu-numa-disjoint.xml | 2 +- .../qemuxml2argvdata/cpu-numa-disordered.xml | 2 +- tests/qemuxml2argvdata/cpu-numa-memshared.xml | 2 +- .../cpu-numa-no-memory-element.xml | 2 +- tests/qemuxml2argvdata/cpu-numa1.xml | 2 +- tests/qemuxml2argvdata/cpu-numa2.xml | 2 +- tests/qemuxml2argvdata/cpu-numa3.xml | 2 +- tests/qemuxml2argvdata/cpu-topology1.xml | 2 +- tests/qemuxml2argvdata/cpu-topology2.xml | 2 +- tests/qemuxml2argvdata/cpu-topology3.xml | 2 +- .../fd-memory-no-numa-topology.xml | 2 +- .../fd-memory-numa-topology.xml | 2 +- .../fd-memory-numa-topology2.xml | 2 +- .../fd-memory-numa-topology3.xml | 2 +- .../graphics-spice-timeout.xml | 2 +- .../hugepages-nvdimm.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/hugepages-nvdimm.xml | 2 +- ...memory-default-hugepage.x86_64-latest.args | 2 +- .../memfd-memory-default-hugepage.xml | 2 +- .../memfd-memory-numa.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/memfd-memory-numa.xml | 2 +- tests/qemuxml2argvdata/memory-align-fail.xml | 2 +- .../memory-hotplug-dimm-addr.xml | 2 +- .../qemuxml2argvdata/memory-hotplug-dimm.xml | 2 +- ...y-hotplug-nvdimm-access.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-access.xml | 2 +- ...ry-hotplug-nvdimm-align.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-align.xml | 2 +- ...ry-hotplug-nvdimm-label.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-label.xml | 2 +- ...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-pmem.xml | 2 +- ...hotplug-nvdimm-readonly.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm-readonly.xml | 2 +- .../memory-hotplug-nvdimm.x86_64-latest.args | 2 +- .../memory-hotplug-nvdimm.xml | 2 +- tests/qemuxml2argvdata/memory-hotplug.xml | 2 +- .../numad-auto-memory-vcpu-cpuset.xml | 2 +- ...to-memory-vcpu-no-cpuset-and-placement.xml | 2 +- .../numad-auto-vcpu-no-numatune.xml | 2 +- ...d-auto-vcpu-static-numatune-no-nodeset.xml | 2 +- .../numad-auto-vcpu-static-numatune.xml | 2 +- .../numad-static-memory-auto-vcpu.xml | 2 +- .../numad-static-vcpu-no-numatune.xml | 2 +- tests/qemuxml2argvdata/numad.xml | 2 +- .../numatune-auto-nodeset-invalid.xml | 2 +- .../numatune-memory-invalid-nodeset.xml | 2 +- tests/qemuxml2argvdata/numatune-memory.xml | 2 +- .../pci-expander-bus-bad-machine.xml | 2 +- tests/qemuxml2argvdata/pci-expander-bus.xml | 2 +- .../pcie-expander-bus-bad-bus.xml | 2 +- .../pcie-expander-bus-bad-machine.xml | 2 +- tests/qemuxml2argvdata/pcie-expander-bus.xml | 2 +- .../pseries-default-phb-numa-node.xml | 2 +- .../pseries-phb-numa-node.xml | 2 +- tests/qemuxml2argvdata/smp-dies.args | 29 ++ tests/qemuxml2argvdata/smp-dies.xml | 33 ++ tests/qemuxml2argvdata/smp.xml | 2 +- tests/qemuxml2argvtest.c | 1 + .../qemuxml2xmloutdata/cpu-numa-disjoint.xml | 2 +- .../cpu-numa-disordered.xml | 2 +- .../qemuxml2xmloutdata/cpu-numa-memshared.xml | 2 +- .../cpu-numa-no-memory-element.xml | 2 +- tests/qemuxml2xmloutdata/cpu-numa1.xml | 2 +- tests/qemuxml2xmloutdata/cpu-numa2.xml | 2 +- .../graphics-spice-timeout.xml | 2 +- .../memory-hotplug-dimm.xml | 2 +- tests/qemuxml2xmloutdata/memory-hotplug.xml | 2 +- .../numad-auto-memory-vcpu-cpuset.xml | 2 +- ...to-memory-vcpu-no-cpuset-and-placement.xml | 2 +- .../numad-auto-vcpu-no-numatune.xml | 2 +- .../numad-static-vcpu-no-numatune.xml | 2 +- tests/qemuxml2xmloutdata/pci-expander-bus.xml | 2 +- .../qemuxml2xmloutdata/pcie-expander-bus.xml | 2 +- .../pseries-phb-numa-node.xml | 2 +- tests/qemuxml2xmloutdata/smp.xml | 2 +- .../linux-basic-dies/system/cpu | 1 + .../linux-basic-dies/system/node | 1 + .../vircaps2xmldata/vircaps-aarch64-basic.xml | 32 +- .../vircaps-x86_64-basic-dies.xml | 35 ++ .../vircaps2xmldata/vircaps-x86_64-basic.xml | 32 +- .../vircaps2xmldata/vircaps-x86_64-caches.xml | 16 +- .../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 +- tests/vircaps2xmltest.c | 1 + .../cpu/cpu0/topology/core_cpus | 1 + .../cpu/cpu0/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu0/topology/core_id | 1 + .../cpu/cpu0/topology/core_siblings | 1 + .../cpu/cpu0/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu0/topology/die_cpus | 1 + .../cpu/cpu0/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu0/topology/die_id | 1 + .../cpu/cpu0/topology/package_cpus | 1 + .../cpu/cpu0/topology/package_cpus_list | 1 + .../cpu/cpu0/topology/physical_package_id | 1 + .../cpu/cpu0/topology/thread_siblings | 1 + .../cpu/cpu0/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu1/online | 1 + .../cpu/cpu1/topology/core_cpus | 1 + .../cpu/cpu1/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu1/topology/core_id | 1 + .../cpu/cpu1/topology/core_siblings | 1 + .../cpu/cpu1/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu1/topology/die_cpus | 1 + .../cpu/cpu1/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu1/topology/die_id | 1 + .../cpu/cpu1/topology/package_cpus | 1 + .../cpu/cpu1/topology/package_cpus_list | 1 + .../cpu/cpu1/topology/physical_package_id | 1 + .../cpu/cpu1/topology/thread_siblings | 1 + .../cpu/cpu1/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu10/online | 1 + .../cpu/cpu10/topology/core_cpus | 1 + .../cpu/cpu10/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu10/topology/core_id | 1 + .../cpu/cpu10/topology/core_siblings | 1 + .../cpu/cpu10/topology/core_siblings_list | 1 + .../cpu/cpu10/topology/die_cpus | 1 + .../cpu/cpu10/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu10/topology/die_id | 1 + .../cpu/cpu10/topology/package_cpus | 1 + .../cpu/cpu10/topology/package_cpus_list | 1 + .../cpu/cpu10/topology/physical_package_id | 1 + .../cpu/cpu10/topology/thread_siblings | 1 + .../cpu/cpu10/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu11/online | 1 + .../cpu/cpu11/topology/core_cpus | 1 + .../cpu/cpu11/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu11/topology/core_id | 1 + .../cpu/cpu11/topology/core_siblings | 1 + .../cpu/cpu11/topology/core_siblings_list | 1 + .../cpu/cpu11/topology/die_cpus | 1 + .../cpu/cpu11/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu11/topology/die_id | 1 + .../cpu/cpu11/topology/package_cpus | 1 + .../cpu/cpu11/topology/package_cpus_list | 1 + .../cpu/cpu11/topology/physical_package_id | 1 + .../cpu/cpu11/topology/thread_siblings | 1 + .../cpu/cpu11/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu2/online | 1 + .../cpu/cpu2/topology/core_cpus | 1 + .../cpu/cpu2/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu2/topology/core_id | 1 + .../cpu/cpu2/topology/core_siblings | 1 + .../cpu/cpu2/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu2/topology/die_cpus | 1 + .../cpu/cpu2/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu2/topology/die_id | 1 + .../cpu/cpu2/topology/package_cpus | 1 + .../cpu/cpu2/topology/package_cpus_list | 1 + .../cpu/cpu2/topology/physical_package_id | 1 + .../cpu/cpu2/topology/thread_siblings | 1 + .../cpu/cpu2/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu3/online | 1 + .../cpu/cpu3/topology/core_cpus | 1 + .../cpu/cpu3/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu3/topology/core_id | 1 + .../cpu/cpu3/topology/core_siblings | 1 + .../cpu/cpu3/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu3/topology/die_cpus | 1 + .../cpu/cpu3/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu3/topology/die_id | 1 + .../cpu/cpu3/topology/package_cpus | 1 + .../cpu/cpu3/topology/package_cpus_list | 1 + .../cpu/cpu3/topology/physical_package_id | 1 + .../cpu/cpu3/topology/thread_siblings | 1 + .../cpu/cpu3/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu4/online | 1 + .../cpu/cpu4/topology/core_cpus | 1 + .../cpu/cpu4/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu4/topology/core_id | 1 + .../cpu/cpu4/topology/core_siblings | 1 + .../cpu/cpu4/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu4/topology/die_cpus | 1 + .../cpu/cpu4/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu4/topology/die_id | 1 + .../cpu/cpu4/topology/package_cpus | 1 + .../cpu/cpu4/topology/package_cpus_list | 1 + .../cpu/cpu4/topology/physical_package_id | 1 + .../cpu/cpu4/topology/thread_siblings | 1 + .../cpu/cpu4/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu5/online | 1 + .../cpu/cpu5/topology/core_cpus | 1 + .../cpu/cpu5/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu5/topology/core_id | 1 + .../cpu/cpu5/topology/core_siblings | 1 + .../cpu/cpu5/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu5/topology/die_cpus | 1 + .../cpu/cpu5/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu5/topology/die_id | 1 + .../cpu/cpu5/topology/package_cpus | 1 + .../cpu/cpu5/topology/package_cpus_list | 1 + .../cpu/cpu5/topology/physical_package_id | 1 + .../cpu/cpu5/topology/thread_siblings | 1 + .../cpu/cpu5/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu6/online | 1 + .../cpu/cpu6/topology/core_cpus | 1 + .../cpu/cpu6/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu6/topology/core_id | 1 + .../cpu/cpu6/topology/core_siblings | 1 + .../cpu/cpu6/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu6/topology/die_cpus | 1 + .../cpu/cpu6/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu6/topology/die_id | 1 + .../cpu/cpu6/topology/package_cpus | 1 + .../cpu/cpu6/topology/package_cpus_list | 1 + .../cpu/cpu6/topology/physical_package_id | 1 + .../cpu/cpu6/topology/thread_siblings | 1 + .../cpu/cpu6/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu7/online | 1 + .../cpu/cpu7/topology/core_cpus | 1 + .../cpu/cpu7/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu7/topology/core_id | 1 + .../cpu/cpu7/topology/core_siblings | 1 + .../cpu/cpu7/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu7/topology/die_cpus | 1 + .../cpu/cpu7/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu7/topology/die_id | 1 + .../cpu/cpu7/topology/package_cpus | 1 + .../cpu/cpu7/topology/package_cpus_list | 1 + .../cpu/cpu7/topology/physical_package_id | 1 + .../cpu/cpu7/topology/thread_siblings | 1 + .../cpu/cpu7/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu8/online | 1 + .../cpu/cpu8/topology/core_cpus | 1 + .../cpu/cpu8/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu8/topology/core_id | 1 + .../cpu/cpu8/topology/core_siblings | 1 + .../cpu/cpu8/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu8/topology/die_cpus | 1 + .../cpu/cpu8/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu8/topology/die_id | 1 + .../cpu/cpu8/topology/package_cpus | 1 + .../cpu/cpu8/topology/package_cpus_list | 1 + .../cpu/cpu8/topology/physical_package_id | 1 + .../cpu/cpu8/topology/thread_siblings | 1 + .../cpu/cpu8/topology/thread_siblings_list | 1 + .../linux-with-die/cpu/cpu9/online | 1 + .../cpu/cpu9/topology/core_cpus | 1 + .../cpu/cpu9/topology/core_cpus_list | 1 + .../linux-with-die/cpu/cpu9/topology/core_id | 1 + .../cpu/cpu9/topology/core_siblings | 1 + .../cpu/cpu9/topology/core_siblings_list | 1 + .../linux-with-die/cpu/cpu9/topology/die_cpus | 1 + .../cpu/cpu9/topology/die_cpus_list | 1 + .../linux-with-die/cpu/cpu9/topology/die_id | 1 + .../cpu/cpu9/topology/package_cpus | 1 + .../cpu/cpu9/topology/package_cpus_list | 1 + .../cpu/cpu9/topology/physical_package_id | 1 + .../cpu/cpu9/topology/thread_siblings | 1 + .../cpu/cpu9/topology/thread_siblings_list | 1 + .../virhostcpudata/linux-with-die/cpu/online | 1 + .../virhostcpudata/linux-with-die/cpu/present | 1 + .../linux-with-die/node/node0/cpu0 | 1 + .../linux-with-die/node/node0/cpu1 | 1 + .../linux-with-die/node/node0/cpu10 | 1 + .../linux-with-die/node/node0/cpu11 | 1 + .../linux-with-die/node/node0/cpu2 | 1 + .../linux-with-die/node/node0/cpu3 | 1 + .../linux-with-die/node/node0/cpu4 | 1 + .../linux-with-die/node/node0/cpu5 | 1 + .../linux-with-die/node/node0/cpu6 | 1 + .../linux-with-die/node/node0/cpu7 | 1 + .../linux-with-die/node/node0/cpu8 | 1 + .../linux-with-die/node/node0/cpu9 | 1 + .../linux-with-die/node/node0/cpulist | 1 + .../virhostcpudata/linux-with-die/node/online | 1 + .../linux-with-die/node/possible | 1 + .../linux-x86_64-with-die.cpuinfo | 324 ++++++++++++++++++ .../linux-x86_64-with-die.expected | 1 + tests/virhostcputest.c | 1 + .../vmx2xmldata/vmx2xml-esx-in-the-wild-8.xml | 2 +- .../vmx2xmldata/vmx2xml-esx-in-the-wild-9.xml | 2 +- 324 files changed, 887 insertions(+), 228 deletions(-) create mode 100644 tests/qemuxml2argvdata/smp-dies.args create mode 100644 tests/qemuxml2argvdata/smp-dies.xml create mode 120000 tests/vircaps2xmldata/linux-basic-dies/system/cpu create mode 120000 tests/vircaps2xmldata/linux-basic-dies/system/node create mode 100644 tests/vircaps2xmldata/vircaps-x86_64-basic-dies.xml create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu0/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu1/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu10/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu11/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu2/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu3/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu4/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu5/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu6/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu7/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu8/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/core_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/die_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/package_cpus_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/physical_package_id create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings create mode 100644 tests/virhostcpudata/linux-with-die/cpu/cpu9/topology/thread_siblings_list create mode 100644 tests/virhostcpudata/linux-with-die/cpu/online create mode 100644 tests/virhostcpudata/linux-with-die/cpu/present create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu0 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu1 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu10 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu11 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu2 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu3 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu4 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu5 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu6 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu7 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu8 create mode 120000 tests/virhostcpudata/linux-with-die/node/node0/cpu9 create mode 100644 tests/virhostcpudata/linux-with-die/node/node0/cpulist create mode 100644 tests/virhostcpudata/linux-with-die/node/online create mode 100644 tests/virhostcpudata/linux-with-die/node/possible create mode 100644 tests/virhostcpudata/linux-x86_64-with-die.cpuinfo create mode 100644 tests/virhostcpudata/linux-x86_64-with-die.expected
-- 2.23.0
Regards, Daniel
participants (3)
-
Daniel Henrique Barboza
-
Daniel P. Berrangé
-
Jiri Denemark