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

Daniel Henrique Barboza danielhb413 at gmail.com
Tue Jan 7 17:49:32 UTC 2020


A few nits and minor comments but LGTM.


All patches:


Reviewed-by: Daniel Henrique Barboza <danielhb413 at 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
> 





More information about the libvir-list mailing list