[PATCH v1 00/10] capabilities: Expose HMAT
by Michal Privoznik
We allow configuring HMAT for domains since v6.6.0-rc1~249 (and
friends). Basically, HMAT is more fine grained description of
interconnects of NUMA nodes than basic NUMA distances. The former
describes bandwidths and latencies while the latter is some
dimensionless and normalized number.
Anyway, mgmt apps did not really know what values to set for HMAT
because we are not exposing them in capabilities because we were waiting
on kernel to expose them. And it just did.
In 09/10 I'm describing sysfs interface briefly and also mention that
there's no interpretation of links to memory side caches, yet. I'm
talking to kernel developers so we might get some movement there. But
also, I'm not sure whether it's worth the effort OR if there really is a
machine that has separate links to main memory and caches.
Here's link to ACPI spec:
https://uefi.org/sites/default/files/resources/ACPI_6_2.pdf
Look for "5.2.27.4 System Locality Latency and Bandwidth Information
Structure".
And here's link to sysfs docs:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/D...
Michal Prívozník (10):
tests: glib-ify vircaps2xmltest
schemas: Allow zero <cpu/> for capabilities
capabilities: Separate <cpu/> formatting into a function
numa_conf: Rename virDomainCache* to virNumaCache*
numa_conf: Expose virNumaCache formatter
capabilities: Expose NUMA memory side cache
numa_conf: Rename virDomainNumaInterconnect* to virNumaInterconnect*
numa_conf: Expose virNumaInterconnect formatter
capabilities: Expose NUMA interconnects
vircaps2xmltest: Introduce HMAT test case
build-aux/syntax-check.mk | 2 +-
docs/schemas/capability.rng | 11 +-
src/conf/capabilities.c | 388 ++++++++++++++++--
src/conf/capabilities.h | 5 +-
src/conf/numa_conf.c | 244 +++++------
src/conf/numa_conf.h | 81 ++--
src/libvirt_private.syms | 14 +-
src/libxl/libxl_capabilities.c | 3 +-
src/qemu/qemu_command.c | 30 +-
src/test/test_driver.c | 3 +-
tests/testutils.c | 3 +-
.../system/cpu/cpu0/cache/index0/level | 1 +
.../system/cpu/cpu0/cache/index1/level | 1 +
.../system/cpu/cpu0/cache/index2/level | 1 +
.../system/cpu/cpu0/cache/index3/id | 1 +
.../system/cpu/cpu0/cache/index3/level | 1 +
.../cpu/cpu0/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu0/cache/index3/size | 1 +
.../system/cpu/cpu0/cache/index3/type | 1 +
.../system/cpu/cpu0/topology/core_id | 1 +
.../system/cpu/cpu0/topology/die_id | 1 +
.../cpu/cpu0/topology/physical_package_id | 1 +
.../cpu/cpu0/topology/thread_siblings_list | 1 +
.../system/cpu/cpu1/cache/index0/level | 1 +
.../system/cpu/cpu1/cache/index1/level | 1 +
.../system/cpu/cpu1/cache/index2/level | 1 +
.../system/cpu/cpu1/cache/index3/id | 1 +
.../system/cpu/cpu1/cache/index3/level | 1 +
.../cpu/cpu1/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu1/cache/index3/size | 1 +
.../system/cpu/cpu1/cache/index3/type | 1 +
.../system/cpu/cpu1/topology/core_id | 1 +
.../system/cpu/cpu1/topology/die_id | 1 +
.../cpu/cpu1/topology/physical_package_id | 1 +
.../cpu/cpu1/topology/thread_siblings_list | 1 +
.../system/cpu/cpu10/cache/index0/level | 1 +
.../system/cpu/cpu10/cache/index1/level | 1 +
.../system/cpu/cpu10/cache/index2/level | 1 +
.../system/cpu/cpu10/cache/index3/id | 1 +
.../system/cpu/cpu10/cache/index3/level | 1 +
.../cpu/cpu10/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu10/cache/index3/size | 1 +
.../system/cpu/cpu10/cache/index3/type | 1 +
.../system/cpu/cpu10/topology/core_id | 1 +
.../system/cpu/cpu10/topology/die_id | 1 +
.../cpu/cpu10/topology/physical_package_id | 1 +
.../cpu/cpu10/topology/thread_siblings_list | 1 +
.../system/cpu/cpu11/cache/index0/level | 1 +
.../system/cpu/cpu11/cache/index1/level | 1 +
.../system/cpu/cpu11/cache/index2/level | 1 +
.../system/cpu/cpu11/cache/index3/id | 1 +
.../system/cpu/cpu11/cache/index3/level | 1 +
.../cpu/cpu11/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu11/cache/index3/size | 1 +
.../system/cpu/cpu11/cache/index3/type | 1 +
.../system/cpu/cpu11/topology/core_id | 1 +
.../system/cpu/cpu11/topology/die_id | 1 +
.../cpu/cpu11/topology/physical_package_id | 1 +
.../cpu/cpu11/topology/thread_siblings_list | 1 +
.../system/cpu/cpu12/cache/index0/level | 1 +
.../system/cpu/cpu12/cache/index1/level | 1 +
.../system/cpu/cpu12/cache/index2/level | 1 +
.../system/cpu/cpu12/cache/index3/id | 1 +
.../system/cpu/cpu12/cache/index3/level | 1 +
.../cpu/cpu12/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu12/cache/index3/size | 1 +
.../system/cpu/cpu12/cache/index3/type | 1 +
.../system/cpu/cpu12/topology/core_id | 1 +
.../system/cpu/cpu12/topology/die_id | 1 +
.../cpu/cpu12/topology/physical_package_id | 1 +
.../cpu/cpu12/topology/thread_siblings_list | 1 +
.../system/cpu/cpu13/cache/index0/level | 1 +
.../system/cpu/cpu13/cache/index1/level | 1 +
.../system/cpu/cpu13/cache/index2/level | 1 +
.../system/cpu/cpu13/cache/index3/id | 1 +
.../system/cpu/cpu13/cache/index3/level | 1 +
.../cpu/cpu13/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu13/cache/index3/size | 1 +
.../system/cpu/cpu13/cache/index3/type | 1 +
.../system/cpu/cpu13/topology/core_id | 1 +
.../system/cpu/cpu13/topology/die_id | 1 +
.../cpu/cpu13/topology/physical_package_id | 1 +
.../cpu/cpu13/topology/thread_siblings_list | 1 +
.../system/cpu/cpu14/cache/index0/level | 1 +
.../system/cpu/cpu14/cache/index1/level | 1 +
.../system/cpu/cpu14/cache/index2/level | 1 +
.../system/cpu/cpu14/cache/index3/id | 1 +
.../system/cpu/cpu14/cache/index3/level | 1 +
.../cpu/cpu14/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu14/cache/index3/size | 1 +
.../system/cpu/cpu14/cache/index3/type | 1 +
.../system/cpu/cpu14/topology/core_id | 1 +
.../system/cpu/cpu14/topology/die_id | 1 +
.../cpu/cpu14/topology/physical_package_id | 1 +
.../cpu/cpu14/topology/thread_siblings_list | 1 +
.../system/cpu/cpu15/cache/index0/level | 1 +
.../system/cpu/cpu15/cache/index1/level | 1 +
.../system/cpu/cpu15/cache/index2/level | 1 +
.../system/cpu/cpu15/cache/index3/id | 1 +
.../system/cpu/cpu15/cache/index3/level | 1 +
.../cpu/cpu15/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu15/cache/index3/size | 1 +
.../system/cpu/cpu15/cache/index3/type | 1 +
.../system/cpu/cpu15/topology/core_id | 1 +
.../system/cpu/cpu15/topology/die_id | 1 +
.../cpu/cpu15/topology/physical_package_id | 1 +
.../cpu/cpu15/topology/thread_siblings_list | 1 +
.../system/cpu/cpu16/cache/index0/level | 1 +
.../system/cpu/cpu16/cache/index1/level | 1 +
.../system/cpu/cpu16/cache/index2/level | 1 +
.../system/cpu/cpu16/cache/index3/id | 1 +
.../system/cpu/cpu16/cache/index3/level | 1 +
.../cpu/cpu16/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu16/cache/index3/size | 1 +
.../system/cpu/cpu16/cache/index3/type | 1 +
.../system/cpu/cpu16/topology/core_id | 1 +
.../system/cpu/cpu16/topology/die_id | 1 +
.../cpu/cpu16/topology/physical_package_id | 1 +
.../cpu/cpu16/topology/thread_siblings_list | 1 +
.../system/cpu/cpu17/cache/index0/level | 1 +
.../system/cpu/cpu17/cache/index1/level | 1 +
.../system/cpu/cpu17/cache/index2/level | 1 +
.../system/cpu/cpu17/cache/index3/id | 1 +
.../system/cpu/cpu17/cache/index3/level | 1 +
.../cpu/cpu17/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu17/cache/index3/size | 1 +
.../system/cpu/cpu17/cache/index3/type | 1 +
.../system/cpu/cpu17/topology/core_id | 1 +
.../system/cpu/cpu17/topology/die_id | 1 +
.../cpu/cpu17/topology/physical_package_id | 1 +
.../cpu/cpu17/topology/thread_siblings_list | 1 +
.../system/cpu/cpu18/cache/index0/level | 1 +
.../system/cpu/cpu18/cache/index1/level | 1 +
.../system/cpu/cpu18/cache/index2/level | 1 +
.../system/cpu/cpu18/cache/index3/id | 1 +
.../system/cpu/cpu18/cache/index3/level | 1 +
.../cpu/cpu18/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu18/cache/index3/size | 1 +
.../system/cpu/cpu18/cache/index3/type | 1 +
.../system/cpu/cpu18/topology/core_id | 1 +
.../system/cpu/cpu18/topology/die_id | 1 +
.../cpu/cpu18/topology/physical_package_id | 1 +
.../cpu/cpu18/topology/thread_siblings_list | 1 +
.../system/cpu/cpu19/cache/index0/level | 1 +
.../system/cpu/cpu19/cache/index1/level | 1 +
.../system/cpu/cpu19/cache/index2/level | 1 +
.../system/cpu/cpu19/cache/index3/id | 1 +
.../system/cpu/cpu19/cache/index3/level | 1 +
.../cpu/cpu19/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu19/cache/index3/size | 1 +
.../system/cpu/cpu19/cache/index3/type | 1 +
.../system/cpu/cpu19/topology/core_id | 1 +
.../system/cpu/cpu19/topology/die_id | 1 +
.../cpu/cpu19/topology/physical_package_id | 1 +
.../cpu/cpu19/topology/thread_siblings_list | 1 +
.../system/cpu/cpu2/cache/index0/level | 1 +
.../system/cpu/cpu2/cache/index1/level | 1 +
.../system/cpu/cpu2/cache/index2/level | 1 +
.../system/cpu/cpu2/cache/index3/id | 1 +
.../system/cpu/cpu2/cache/index3/level | 1 +
.../cpu/cpu2/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu2/cache/index3/size | 1 +
.../system/cpu/cpu2/cache/index3/type | 1 +
.../system/cpu/cpu2/topology/core_id | 1 +
.../system/cpu/cpu2/topology/die_id | 1 +
.../cpu/cpu2/topology/physical_package_id | 1 +
.../cpu/cpu2/topology/thread_siblings_list | 1 +
.../system/cpu/cpu20/cache/index0/level | 1 +
.../system/cpu/cpu20/cache/index1/level | 1 +
.../system/cpu/cpu20/cache/index2/level | 1 +
.../system/cpu/cpu20/cache/index3/id | 1 +
.../system/cpu/cpu20/cache/index3/level | 1 +
.../cpu/cpu20/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu20/cache/index3/size | 1 +
.../system/cpu/cpu20/cache/index3/type | 1 +
.../system/cpu/cpu20/topology/core_id | 1 +
.../system/cpu/cpu20/topology/die_id | 1 +
.../cpu/cpu20/topology/physical_package_id | 1 +
.../cpu/cpu20/topology/thread_siblings_list | 1 +
.../system/cpu/cpu21/cache/index0/level | 1 +
.../system/cpu/cpu21/cache/index1/level | 1 +
.../system/cpu/cpu21/cache/index2/level | 1 +
.../system/cpu/cpu21/cache/index3/id | 1 +
.../system/cpu/cpu21/cache/index3/level | 1 +
.../cpu/cpu21/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu21/cache/index3/size | 1 +
.../system/cpu/cpu21/cache/index3/type | 1 +
.../system/cpu/cpu21/topology/core_id | 1 +
.../system/cpu/cpu21/topology/die_id | 1 +
.../cpu/cpu21/topology/physical_package_id | 1 +
.../cpu/cpu21/topology/thread_siblings_list | 1 +
.../system/cpu/cpu22/cache/index0/level | 1 +
.../system/cpu/cpu22/cache/index1/level | 1 +
.../system/cpu/cpu22/cache/index2/level | 1 +
.../system/cpu/cpu22/cache/index3/id | 1 +
.../system/cpu/cpu22/cache/index3/level | 1 +
.../cpu/cpu22/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu22/cache/index3/size | 1 +
.../system/cpu/cpu22/cache/index3/type | 1 +
.../system/cpu/cpu22/topology/core_id | 1 +
.../system/cpu/cpu22/topology/die_id | 1 +
.../cpu/cpu22/topology/physical_package_id | 1 +
.../cpu/cpu22/topology/thread_siblings_list | 1 +
.../system/cpu/cpu23/cache/index0/level | 1 +
.../system/cpu/cpu23/cache/index1/level | 1 +
.../system/cpu/cpu23/cache/index2/level | 1 +
.../system/cpu/cpu23/cache/index3/id | 1 +
.../system/cpu/cpu23/cache/index3/level | 1 +
.../cpu/cpu23/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu23/cache/index3/size | 1 +
.../system/cpu/cpu23/cache/index3/type | 1 +
.../system/cpu/cpu23/topology/core_id | 1 +
.../system/cpu/cpu23/topology/die_id | 1 +
.../cpu/cpu23/topology/physical_package_id | 1 +
.../cpu/cpu23/topology/thread_siblings_list | 1 +
.../system/cpu/cpu3/cache/index0/level | 1 +
.../system/cpu/cpu3/cache/index1/level | 1 +
.../system/cpu/cpu3/cache/index2/level | 1 +
.../system/cpu/cpu3/cache/index3/id | 1 +
.../system/cpu/cpu3/cache/index3/level | 1 +
.../cpu/cpu3/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu3/cache/index3/size | 1 +
.../system/cpu/cpu3/cache/index3/type | 1 +
.../system/cpu/cpu3/topology/core_id | 1 +
.../system/cpu/cpu3/topology/die_id | 1 +
.../cpu/cpu3/topology/physical_package_id | 1 +
.../cpu/cpu3/topology/thread_siblings_list | 1 +
.../system/cpu/cpu4/cache/index0/level | 1 +
.../system/cpu/cpu4/cache/index1/level | 1 +
.../system/cpu/cpu4/cache/index2/level | 1 +
.../system/cpu/cpu4/cache/index3/id | 1 +
.../system/cpu/cpu4/cache/index3/level | 1 +
.../cpu/cpu4/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu4/cache/index3/size | 1 +
.../system/cpu/cpu4/cache/index3/type | 1 +
.../system/cpu/cpu4/topology/core_id | 1 +
.../system/cpu/cpu4/topology/die_id | 1 +
.../cpu/cpu4/topology/physical_package_id | 1 +
.../cpu/cpu4/topology/thread_siblings_list | 1 +
.../system/cpu/cpu5/cache/index0/level | 1 +
.../system/cpu/cpu5/cache/index1/level | 1 +
.../system/cpu/cpu5/cache/index2/level | 1 +
.../system/cpu/cpu5/cache/index3/id | 1 +
.../system/cpu/cpu5/cache/index3/level | 1 +
.../cpu/cpu5/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu5/cache/index3/size | 1 +
.../system/cpu/cpu5/cache/index3/type | 1 +
.../system/cpu/cpu5/topology/core_id | 1 +
.../system/cpu/cpu5/topology/die_id | 1 +
.../cpu/cpu5/topology/physical_package_id | 1 +
.../cpu/cpu5/topology/thread_siblings_list | 1 +
.../system/cpu/cpu6/cache/index0/level | 1 +
.../system/cpu/cpu6/cache/index1/level | 1 +
.../system/cpu/cpu6/cache/index2/level | 1 +
.../system/cpu/cpu6/cache/index3/id | 1 +
.../system/cpu/cpu6/cache/index3/level | 1 +
.../cpu/cpu6/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu6/cache/index3/size | 1 +
.../system/cpu/cpu6/cache/index3/type | 1 +
.../system/cpu/cpu6/topology/core_id | 1 +
.../system/cpu/cpu6/topology/die_id | 1 +
.../cpu/cpu6/topology/physical_package_id | 1 +
.../cpu/cpu6/topology/thread_siblings_list | 1 +
.../system/cpu/cpu7/cache/index0/level | 1 +
.../system/cpu/cpu7/cache/index1/level | 1 +
.../system/cpu/cpu7/cache/index2/level | 1 +
.../system/cpu/cpu7/cache/index3/id | 1 +
.../system/cpu/cpu7/cache/index3/level | 1 +
.../cpu/cpu7/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu7/cache/index3/size | 1 +
.../system/cpu/cpu7/cache/index3/type | 1 +
.../system/cpu/cpu7/topology/core_id | 1 +
.../system/cpu/cpu7/topology/die_id | 1 +
.../cpu/cpu7/topology/physical_package_id | 1 +
.../cpu/cpu7/topology/thread_siblings_list | 1 +
.../system/cpu/cpu8/cache/index0/level | 1 +
.../system/cpu/cpu8/cache/index1/level | 1 +
.../system/cpu/cpu8/cache/index2/level | 1 +
.../system/cpu/cpu8/cache/index3/id | 1 +
.../system/cpu/cpu8/cache/index3/level | 1 +
.../cpu/cpu8/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu8/cache/index3/size | 1 +
.../system/cpu/cpu8/cache/index3/type | 1 +
.../system/cpu/cpu8/topology/core_id | 1 +
.../system/cpu/cpu8/topology/die_id | 1 +
.../cpu/cpu8/topology/physical_package_id | 1 +
.../cpu/cpu8/topology/thread_siblings_list | 1 +
.../system/cpu/cpu9/cache/index0/level | 1 +
.../system/cpu/cpu9/cache/index1/level | 1 +
.../system/cpu/cpu9/cache/index2/level | 1 +
.../system/cpu/cpu9/cache/index3/id | 1 +
.../system/cpu/cpu9/cache/index3/level | 1 +
.../cpu/cpu9/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu9/cache/index3/size | 1 +
.../system/cpu/cpu9/cache/index3/type | 1 +
.../system/cpu/cpu9/topology/core_id | 1 +
.../system/cpu/cpu9/topology/die_id | 1 +
.../cpu/cpu9/topology/physical_package_id | 1 +
.../cpu/cpu9/topology/thread_siblings_list | 1 +
.../linux-hmat/system/cpu/online | 1 +
.../node/node0/access0/initiators/node0 | 1 +
.../node0/access0/initiators/read_bandwidth | 1 +
.../node0/access0/initiators/read_latency | 1 +
.../node0/access0/initiators/write_bandwidth | 1 +
.../node0/access0/initiators/write_latency | 1 +
.../system/node/node0/access0/targets/node0 | 1 +
.../system/node/node0/access0/targets/node1 | 1 +
.../node/node0/access1/initiators/node0 | 1 +
.../node0/access1/initiators/read_bandwidth | 1 +
.../node0/access1/initiators/read_latency | 1 +
.../node0/access1/initiators/write_bandwidth | 1 +
.../node0/access1/initiators/write_latency | 1 +
.../system/node/node0/access1/targets/node0 | 1 +
.../system/node/node0/access1/targets/node1 | 1 +
.../linux-hmat/system/node/node0/cpulist | 1 +
.../linux-hmat/system/node/node0/distance | 1 +
.../hugepages-1048576kB/free_hugepages | 1 +
.../hugepages-1048576kB/nr_hugepages | 1 +
.../hugepages-1048576kB/surplus_hugepages | 1 +
.../hugepages/hugepages-2048kB/free_hugepages | 1 +
.../hugepages/hugepages-2048kB/nr_hugepages | 1 +
.../hugepages-2048kB/surplus_hugepages | 1 +
.../node0/memory_side_cache/index1/indexing | 1 +
.../node0/memory_side_cache/index1/line_size | 1 +
.../node/node0/memory_side_cache/index1/size | 1 +
.../memory_side_cache/index1/write_policy | 1 +
.../node0/memory_side_cache/index2/indexing | 1 +
.../node0/memory_side_cache/index2/line_size | 1 +
.../node/node0/memory_side_cache/index2/size | 1 +
.../memory_side_cache/index2/write_policy | 1 +
.../node/node1/access0/initiators/node0 | 1 +
.../node1/access0/initiators/read_bandwidth | 1 +
.../node1/access0/initiators/read_latency | 1 +
.../node1/access0/initiators/write_bandwidth | 1 +
.../node1/access0/initiators/write_latency | 1 +
.../node/node1/access1/initiators/node0 | 1 +
.../node1/access1/initiators/read_bandwidth | 1 +
.../node1/access1/initiators/read_latency | 1 +
.../node1/access1/initiators/write_bandwidth | 1 +
.../node1/access1/initiators/write_latency | 1 +
.../linux-hmat/system/node/node1/cpulist | 1 +
.../linux-hmat/system/node/node1/distance | 1 +
.../hugepages-1048576kB/free_hugepages | 1 +
.../hugepages-1048576kB/nr_hugepages | 1 +
.../hugepages-1048576kB/surplus_hugepages | 1 +
.../hugepages/hugepages-2048kB/free_hugepages | 1 +
.../hugepages/hugepages-2048kB/nr_hugepages | 1 +
.../hugepages-2048kB/surplus_hugepages | 1 +
.../node1/memory_side_cache/index1/indexing | 1 +
.../node1/memory_side_cache/index1/line_size | 1 +
.../node/node1/memory_side_cache/index1/size | 1 +
.../memory_side_cache/index1/write_policy | 1 +
.../linux-hmat/system/node/online | 1 +
tests/vircaps2xmldata/vircaps-x86_64-hmat.xml | 105 +++++
tests/vircaps2xmltest.c | 33 +-
355 files changed, 1042 insertions(+), 222 deletions(-)
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/die_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/cpu/online
create mode 120000 tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/node0
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/read_bandwidth
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/read_latency
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/write_bandwidth
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/write_latency
create mode 120000 tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/targets/node0
create mode 120000 tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/targets/node1
create mode 120000 tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/node0
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/read_bandwidth
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/read_latency
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/write_bandwidth
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/write_latency
create mode 120000 tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/targets/node0
create mode 120000 tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/targets/node1
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/cpulist
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/distance
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/free_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/surplus_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/free_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/surplus_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/indexing
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/line_size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/write_policy
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/indexing
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/line_size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/write_policy
create mode 120000 tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/node0
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/read_bandwidth
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/read_latency
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/write_bandwidth
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/write_latency
create mode 120000 tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/node0
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/read_bandwidth
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/read_latency
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/write_bandwidth
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/write_latency
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/cpulist
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/distance
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/free_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/surplus_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/free_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/surplus_hugepages
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/indexing
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/line_size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/write_policy
create mode 100644 tests/vircaps2xmldata/linux-hmat/system/node/online
create mode 100644 tests/vircaps2xmldata/vircaps-x86_64-hmat.xml
--
2.31.1
3 years, 4 months
[PATCH] tools: only fail validations if VIR_HOST_VALIDATE_FAIL is set
by Fabiano Fidêncio
Currently `virt-host-validate` will fail whenever one of its calls fail,
regardless of virHostValidateLevel set.
This behaviour is not optimal and makes it not exactly reliable as a
command line tool as other tools or scripts using it would have to check
its output to figure out whether something really failed or if a warning
was mistakenly treated as failure.
With this change, the behaviour of whether to fail or not, is defined by
the caller of those functions, based on the virHostValidateLevel passed
to them.
Signed-off-by: Fabiano Fidêncio <fabiano(a)fidencio.org>
---
tools/virt-host-validate-common.c | 129 ++++++++++++++++++++++--------
1 file changed, 94 insertions(+), 35 deletions(-)
diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c
index 6dd851f07d..2bf97bad75 100644
--- a/tools/virt-host-validate-common.c
+++ b/tools/virt-host-validate-common.c
@@ -138,15 +138,21 @@ int virHostValidateDeviceExists(const char *hvname,
virHostValidateLevel level,
const char *hint)
{
+ int ret = 0;
+
virHostMsgCheck(hvname, "if device %s exists", dev_name);
if (access(dev_name, F_OK) < 0) {
virHostMsgFail(level, "%s", hint);
- return -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
}
virHostMsgPass();
- return 0;
+
+ out:
+ return ret;
}
@@ -155,15 +161,21 @@ int virHostValidateDeviceAccessible(const char *hvname,
virHostValidateLevel level,
const char *hint)
{
+ int ret = 0;
+
virHostMsgCheck(hvname, "if device %s is accessible", dev_name);
if (access(dev_name, R_OK|W_OK) < 0) {
virHostMsgFail(level, "%s", hint);
- return -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
}
virHostMsgPass();
- return 0;
+
+ out:
+ return ret;
}
@@ -173,6 +185,7 @@ int virHostValidateNamespace(const char *hvname,
const char *hint)
{
char nspath[100];
+ int ret = 0;
virHostMsgCheck(hvname, "for namespace %s", ns_name);
@@ -180,11 +193,15 @@ int virHostValidateNamespace(const char *hvname,
if (access(nspath, F_OK) < 0) {
virHostMsgFail(level, "%s", hint);
- return -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
}
virHostMsgPass();
- return 0;
+
+ out:
+ return ret;
}
@@ -254,6 +271,7 @@ int virHostValidateLinuxKernel(const char *hvname,
{
struct utsname uts;
unsigned long thisversion;
+ int ret = 0;
uname(&uts);
@@ -264,21 +282,29 @@ int virHostValidateLinuxKernel(const char *hvname,
if (STRNEQ(uts.sysname, "Linux")) {
virHostMsgFail(level, "%s", hint);
- return -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
}
if (virParseVersionString(uts.release, &thisversion, true) < 0) {
virHostMsgFail(level, "%s", hint);
- return -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
}
if (thisversion < version) {
virHostMsgFail(level, "%s", hint);
- return -1;
- } else {
- virHostMsgPass();
- return 0;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
}
+
+ virHostMsgPass();
+
+ out:
+ return ret;
}
#ifdef __linux__
@@ -290,8 +316,11 @@ int virHostValidateCGroupControllers(const char *hvname,
int ret = 0;
size_t i;
- if (virCgroupNew("/", -1, &group) < 0)
- return -1;
+ if (virCgroupNew("/", -1, &group) < 0) {
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
+ }
for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
int flag = 1 << i;
@@ -303,7 +332,8 @@ int virHostValidateCGroupControllers(const char *hvname,
virHostMsgCheck(hvname, "for cgroup '%s' controller support", cg_name);
if (!virCgroupHasController(group, i)) {
- ret = -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
virHostMsgFail(level, "Enable '%s' in kernel Kconfig file or "
"mount/enable cgroup controller in your system",
cg_name);
@@ -312,6 +342,7 @@ int virHostValidateCGroupControllers(const char *hvname,
}
}
+ out:
return ret;
}
#else /* !__linux__ */
@@ -319,8 +350,13 @@ int virHostValidateCGroupControllers(const char *hvname G_GNUC_UNUSED,
int controllers G_GNUC_UNUSED,
virHostValidateLevel level)
{
+ int ret = 0;
+
virHostMsgFail(level, "%s", "This platform does not support cgroups");
- return -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+
+ return ret;
}
#endif /* !__linux__ */
@@ -334,6 +370,7 @@ int virHostValidateIOMMU(const char *hvname,
virArch arch = virArchFromHost();
struct dirent *dent;
int rc;
+ int ret = 0;
flags = virHostValidateGetCPUFlags();
@@ -354,7 +391,9 @@ int virHostValidateIOMMU(const char *hvname,
"No ACPI DMAR table found, IOMMU either "
"disabled in BIOS or not supported by this "
"hardware platform");
- return -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
}
} else if (isAMD) {
virHostMsgCheck(hvname, "%s", _("for device assignment IOMMU support"));
@@ -366,7 +405,9 @@ int virHostValidateIOMMU(const char *hvname,
"No ACPI IVRS table found, IOMMU either "
"disabled in BIOS or not supported by this "
"hardware platform");
- return -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
}
} else if (ARCH_IS_PPC64(arch)) {
/* Empty Block */
@@ -378,23 +419,25 @@ int virHostValidateIOMMU(const char *hvname,
* no PCI devices the directory is still there but is
* empty. */
if (!virDirOpen(&dir, "/sys/bus/pci/devices"))
- return 0;
+ goto out;
rc = virDirRead(dir, &dent, NULL);
if (rc <= 0)
- return 0;
+ goto out;
} else {
virHostMsgFail(level,
"Unknown if this platform has IOMMU support");
- return -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
}
/* We can only check on newer kernels with iommu groups & vfio */
if (stat("/sys/kernel/iommu_groups", &sb) < 0)
- return 0;
+ goto out;
if (!S_ISDIR(sb.st_mode))
- return 0;
+ goto out;
virHostMsgCheck(hvname, "%s", _("if IOMMU is enabled by kernel"));
if (sb.st_nlink <= 2) {
@@ -404,10 +447,16 @@ int virHostValidateIOMMU(const char *hvname,
"Add %s to kernel cmdline arguments", bootarg);
else
virHostMsgFail(level, "IOMMU capability not compiled into kernel.");
- return -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
+
}
+
virHostMsgPass();
- return 0;
+
+ out:
+ return ret;
}
@@ -448,6 +497,7 @@ int virHostValidateSecureGuests(const char *hvname,
g_autofree char *cmdline = NULL;
static const char *kIBMValues[] = {"y", "Y", "on", "ON", "oN", "On", "1"};
g_autofree char *mod_value = NULL;
+ int ret = 0;
flags = virHostValidateGetCPUFlags();
@@ -464,12 +514,15 @@ int virHostValidateSecureGuests(const char *hvname,
if (!virFileIsDir("/sys/firmware/uv")) {
virHostMsgFail(level, "IBM Secure Execution not supported by "
"the currently used kernel");
- return 0;
+ goto out;
}
- if (virFileReadValueString(&cmdline, "/proc/cmdline") < 0)
- return -1;
-
+ if (virFileReadValueString(&cmdline, "/proc/cmdline") < 0) {
+ if (level == VIR_HOST_VALIDATE_FAIL) {
+ ret = -1;
+ goto out;
+ }
+ }
/* we're prefix matching rather than equality matching here, because
* kernel would treat even something like prot_virt='yFOO' as
* enabled
@@ -479,7 +532,8 @@ int virHostValidateSecureGuests(const char *hvname,
VIR_KERNEL_CMDLINE_FLAGS_SEARCH_FIRST |
VIR_KERNEL_CMDLINE_FLAGS_CMP_PREFIX)) {
virHostMsgPass();
- return 1;
+ ret = 1;
+ goto out;
} else {
virHostMsgFail(level,
"IBM Secure Execution appears to be disabled "
@@ -494,7 +548,7 @@ int virHostValidateSecureGuests(const char *hvname,
if (virFileReadValueString(&mod_value, "/sys/module/kvm_amd/parameters/sev") < 0) {
virHostMsgFail(level, "AMD Secure Encrypted Virtualization not "
"supported by the currently used kernel");
- return 0;
+ goto out;
}
if (mod_value[0] != '1') {
@@ -502,12 +556,13 @@ int virHostValidateSecureGuests(const char *hvname,
"AMD Secure Encrypted Virtualization appears to be "
"disabled in kernel. Add kvm_amd.sev=1 "
"to the kernel cmdline arguments");
- return 0;
+ goto out;
}
if (virFileExists("/dev/sev")) {
virHostMsgPass();
- return 1;
+ ret = 1;
+ goto out;
} else {
virHostMsgFail(level,
"AMD Secure Encrypted Virtualization appears to be "
@@ -516,8 +571,12 @@ int virHostValidateSecureGuests(const char *hvname,
} else {
virHostMsgFail(level,
"Unknown if this platform has Secure Guest support");
- return -1;
+ if (level == VIR_HOST_VALIDATE_FAIL)
+ ret = -1;
+ goto out;
+
}
- return 0;
+ out:
+ return ret;
}
--
2.31.1
3 years, 4 months
[PATCH 0/3] Couple of build fixes
by Michal Privoznik
Here's pipeline:
https://gitlab.com/MichalPrivoznik/libvirt/-/pipelines/315940894
I have not merged these yet. I'll give others a chance to fix my grammar
:-)
Michal Prívozník (3):
doRemoteOpen: Drop @daemonPath
virnetsocket: Mark @spawnDaemonPath of virNetSocketNewConnectUNIX()
unused
remoteGetUNIXSocket: Complete variable rename for WIN32
src/remote/remote_driver.c | 3 ---
src/remote/remote_sockets.c | 2 +-
src/rpc/virnetsocket.c | 2 +-
3 files changed, 2 insertions(+), 5 deletions(-)
--
2.31.1
3 years, 4 months
[PATCH] docs: Small fixes for daemons.rst
by Jim Fehlig
Remove some dupicate text and replace in incorrect occurance of
monolithic with modular.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
docs/daemons.rst | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/docs/daemons.rst b/docs/daemons.rst
index 2cd6b47c2a..8a05ee77a7 100644
--- a/docs/daemons.rst
+++ b/docs/daemons.rst
@@ -365,7 +365,7 @@ Switching to modular daemons
----------------------------
If a host is currently set to use the monolithic ``libvirtd`` daemon and needs
-to be migrated to the monolithic daemons a number of services need to be
+to be migrated to the modular daemons a number of services need to be
changed. The steps below outline the process on hosts using the systemd init
service.
@@ -439,10 +439,6 @@ host first.
Proxy daemon
============
-The monolithic daemon is known as ``libvirtd`` and has historically been the
-default in libvirt. It is configured via the file ``/etc/libvirt/libvirtd.conf``
-
-
Proxy sockets
-------------
--
2.31.1
3 years, 4 months
Libvirt CI for running functional tests
by Praveen K Paladugu
Hi,
While developing cloud-hypervisor driver for libvirt, we re-fitted
cloud-hypervisor project's CI to libvirt. This CI was built on Rust and
currently supports VM boot up tests.
https://github.com/cloud-hypervisor/libvirt/tree/ch/ch_integration_tests
We are working on extending this CI to incorporate more functional
tests: Networking, Thread Pinning etc. We are curious to know if libvirt
project has any plans to setup a CI to run functional tests.
I noticed https://gitlab.com/libvirt/libvirt-ci effort which focuses on
running builds against various platforms and formats. Could you please
clarify libvirt project's plan for setting up a CI to run functional tests.
Regards,
Praveen K Paladugu
3 years, 4 months
[libvirt PATCH v2] docs: introduce stubs for new libvirt Go packages
by Daniel P. Berrangé
Currently we expose libvirt Go packages at
libvirt.org/libvirt-go
libvirt.org/libvirt-go-xml
These packages have not supported Go modules historically and when we
tried to introduce modules, we hit the problem that we're not using
semver for versioning.
The only way around this is to introduce new packages under a different
namespace, that will have the exact same code, but be tagged with a
different version numbering scheme.
This change proposes:
libvirt.org/go/libvirt
libvirt.org/go/libvirtxml
Note the hyphen is removed so that the import basename matches the
Go package name.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
docs/go/libvirt.rst | 18 ++++++++++++++
docs/go/libvirtxml.rst | 15 ++++++++++++
docs/go/meson.build | 53 +++++++++++++++++++++++++++++++++++++++++
docs/libvirt-go-xml.rst | 12 +++++++---
docs/libvirt-go.rst | 12 +++++++---
docs/meson.build | 1 +
6 files changed, 105 insertions(+), 6 deletions(-)
create mode 100644 docs/go/libvirt.rst
create mode 100644 docs/go/libvirtxml.rst
create mode 100644 docs/go/meson.build
diff --git a/docs/go/libvirt.rst b/docs/go/libvirt.rst
new file mode 100644
index 0000000000..df74660b5f
--- /dev/null
+++ b/docs/go/libvirt.rst
@@ -0,0 +1,18 @@
+=================================================
+Libvirt Go Language API (semver, with Go modules)
+=================================================
+
+The `Go <https://golang.org/>`__ package ``libvirt.org/go/libvirt`` provides
+`CGo <https://golang.org/cmd/cgo/>`__ binding from the OS native Libvirt API.
+
+This package replaces the original `libvirt-go <../libvirt-go.html>`__
+package in order to switch to using `semver <https://semver.org/>`__ and
+`Go modules <https://golang.org/ref/mod>`__. Aside from the changed
+import path, the API is fully compatible with the original package.
+
+In general the Go representation is a direct 1-1 mapping from native API
+concepts to Go, so the native API documentation should serve as a reference
+for most behaviour.
+
+For details of Go specific behaviour consult the
+`Go package documentation <https://pkg.go.dev/libvirt.org/go/libvirt>`__.
diff --git a/docs/go/libvirtxml.rst b/docs/go/libvirtxml.rst
new file mode 100644
index 0000000000..70b2aca594
--- /dev/null
+++ b/docs/go/libvirtxml.rst
@@ -0,0 +1,15 @@
+====================================================
+Libvirt Go XML parsing API (semver, with Go modules)
+====================================================
+
+The `Go <https://golang.org/>`__ package ``libvirt.org/go/libvirtxml`` provides
+annotated Go struct definitions for parsing (and formatting) XML documents used
+with libvirt APIs.
+
+This package replaces the original `libvirt-go-xml <../libvirt-go-xml.html>`__
+package in order to switch to using `semver <https://semver.org/>`__ and
+`Go modules <https://golang.org/ref/mod>`__. Aside from the changed
+import path, the API is fully compatible with the original package.
+
+For details of Go specific behaviour consult the
+`Go package documentation <https://pkg.go.dev/libvirt.org/go/libvirtxml>`__.
diff --git a/docs/go/meson.build b/docs/go/meson.build
new file mode 100644
index 0000000000..d2accd322b
--- /dev/null
+++ b/docs/go/meson.build
@@ -0,0 +1,53 @@
+docs_go_files = [
+ 'libvirt',
+ 'libvirtxml',
+]
+
+html_xslt_gen_xslt = subsite_xsl
+html_xslt_gen_install_dir = docs_html_dir / 'go'
+html_xslt_gen = []
+
+foreach name : docs_go_files
+ rst_file = '@0@.rst'.format(name)
+
+ html_xslt_gen += {
+ 'name': name,
+ 'file': docs_rst2html_gen.process(rst_file),
+ 'source': 'docs' / 'go' / rst_file,
+ }
+endforeach
+
+# keep the XSLT processing code block in sync with docs/meson.build
+
+# --- begin of XSLT processing ---
+
+foreach data : html_xslt_gen
+ html_filename = data['name'] + '.html'
+
+ html_file = custom_target(
+ html_filename,
+ input: data.get('file', data['name'] + '.html.in'),
+ output: html_filename,
+ command: [
+ xsltproc_prog,
+ '--stringparam', 'pagesrc', data.get('source', ''),
+ '--stringparam', 'builddir', meson.build_root(),
+ '--stringparam', 'timestamp', docs_timestamp,
+ '--nonet',
+ html_xslt_gen_xslt,
+ '@INPUT@',
+ ],
+ depends: data.get('depends', []),
+ depend_files: [ page_xsl ],
+ capture: true,
+ install: true,
+ install_dir: html_xslt_gen_install_dir,
+ )
+
+ install_web_deps += html_file
+ install_web_files += html_file.full_path() + ':' + html_xslt_gen_install_dir
+endforeach
+
+html_xslt_gen = []
+
+# --- end of XSLT processing ---
diff --git a/docs/libvirt-go-xml.rst b/docs/libvirt-go-xml.rst
index 995fdd2b07..11954043c9 100644
--- a/docs/libvirt-go-xml.rst
+++ b/docs/libvirt-go-xml.rst
@@ -1,10 +1,16 @@
-==========================
-Libvirt Go XML parsing API
-==========================
+==================================================
+Libvirt Go XML parsing API (calver, no Go modules)
+==================================================
The `Go <https://golang.org/>`__ package ``libvirt.org/libvirt-go-xml`` provides
annotated Go struct definitions for parsing (and formatting) XML documents used
with libvirt APIs.
+This package is replaced by the new `libvirt <go/libvirtxml.html>`__
+package in order to switch to using `semver <https://semver.org/>`__ and
+`Go modules <https://golang.org/ref/mod>`__. Aside from the changed
+import path, the new package API is fully compatible with this original
+package.
+
For details of Go specific behaviour consult the
`Go package documentation <https://pkg.go.dev/libvirt.org/libvirt-go-xml>`__.
diff --git a/docs/libvirt-go.rst b/docs/libvirt-go.rst
index f2d3f80fb2..7fc1a430a9 100644
--- a/docs/libvirt-go.rst
+++ b/docs/libvirt-go.rst
@@ -1,10 +1,16 @@
-=======================
-Libvirt Go Language API
-=======================
+===============================================
+Libvirt Go Language API (calver, no Go modules)
+===============================================
The `Go <https://golang.org/>`__ package ``libvirt.org/libvirt-go`` provides
`CGo <https://golang.org/cmd/cgo/>`__ binding from the OS native Libvirt API.
+This package is replaced by the new `libvirt <go/libvirt.html>`__
+package in order to switch to using `semver <https://semver.org/>`__ and
+`Go modules <https://golang.org/ref/mod>`__. Aside from the changed
+import path, the new package API is fully compatible with this original
+package.
+
In general the Go representation is a direct 1-1 mapping from native API
concepts to Go, so the native API documentation should serve as a reference
for most behaviour.
diff --git a/docs/meson.build b/docs/meson.build
index bee0d80d53..4497f7270f 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -297,6 +297,7 @@ html_xslt_gen = []
# --- end of XSLT processing ---
subdir('fonts')
+subdir('go')
subdir('html')
subdir('internals')
subdir('js')
--
2.31.1
3 years, 4 months
[PATCH] ch: set shared drivers
by Wei Liu
We want to use those shared drivers provided by libvirt to avoid
implementing our own.
Signed-off-by: Wei Liu <liuwe(a)microsoft.com>
---
src/ch/ch_driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ch/ch_driver.c b/src/ch/ch_driver.c
index 7d1e97098aef..f1f88ad30cf5 100644
--- a/src/ch/ch_driver.c
+++ b/src/ch/ch_driver.c
@@ -922,7 +922,7 @@ static virStateDriver chStateDriver = {
int chRegister(void)
{
- if (virRegisterConnectDriver(&chConnectDriver, false) < 0)
+ if (virRegisterConnectDriver(&chConnectDriver, true) < 0)
return -1;
if (virRegisterStateDriver(&chStateDriver) < 0)
return -1;
--
2.30.2
3 years, 4 months
[PATCH 0/6] Be tolerant to CH_CMD missing
by Michal Privoznik
See 4/6 for more info. The rest is just cleanup.
Michal Prívozník (6):
ch_conf: Move error reporting into chExtractVersionInfo()
chExtractVersionInfo: Don't check for retversion != NULL
ch_conf: Dissolve chExtractVersionInfo() in chExtractVersion()
ch_driver: Don't error out if CH_CMD was not found
chExtractVersion: use g_auto*
chExtractVersion: Drop @ret
src/ch/ch_conf.c | 53 +++++++++++++++++-----------------------------
src/ch/ch_driver.c | 15 +++++++++----
2 files changed, 30 insertions(+), 38 deletions(-)
--
2.31.1
3 years, 4 months
[PATCH 0/3] Replace some libvirt handling functions with GLib APIs
by Luke Yue
Note that the g_find_program_in_path() will search file in current dir
when PATH env is not set, while virFindFileInPath() won't.
The virFileAbsPath() could be replaced by g_canonicalize_file() when not
take the return value into account, and it just simply return 0 now, so
maybe remove the function is a better choice?
Related issue: https://gitlab.com/libvirt/libvirt/-/issues/12
Luke Yue (3):
virfile: Use g_build_filename() when building paths
virfile: Simplify virFindFileInPath() with g_find_program_in_path()
virfile: Use g_canonicalize_file() to simplify virFileAbsPath()
src/util/virfile.c | 71 +++++++++++++---------------------------------
1 file changed, 19 insertions(+), 52 deletions(-)
--
2.31.1
3 years, 4 months