[PATCH v1 00/10] capabilities: Expose HMAT

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/Docu... 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

Ideally, turning pointers into g_auto* would be done in one step and dropping cleanup label and unused @ret variable in second step, but since this is a test we don't care that much, do we? Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- tests/vircaps2xmltest.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/tests/vircaps2xmltest.c b/tests/vircaps2xmltest.c index 5b1b60124a..1e6c113c77 100644 --- a/tests/vircaps2xmltest.c +++ b/tests/vircaps2xmltest.c @@ -38,12 +38,11 @@ test_virCapabilities(const void *opaque) { struct virCapabilitiesData *data = (struct virCapabilitiesData *) opaque; const char *archStr = virArchToString(data->arch); - virCaps *caps = NULL; - char *capsXML = NULL; - char *path = NULL; - char *system = NULL; - char *resctrl = NULL; - int ret = -1; + g_autoptr(virCaps) caps = NULL; + g_autofree char *capsXML = NULL; + g_autofree char *path = NULL; + g_autofree char *system = NULL; + g_autofree char *resctrl = NULL; system = g_strdup_printf("%s/vircaps2xmldata/linux-%s/system", abs_srcdir, data->filename); @@ -56,34 +55,26 @@ test_virCapabilities(const void *opaque) caps = virCapabilitiesNew(data->arch, data->offlineMigrate, data->liveMigrate); if (!caps) - goto cleanup; + return -1; if (!(caps->host.numa = virCapabilitiesHostNUMANewHost())) - goto cleanup; + return -1; if (virCapabilitiesInitCaches(caps) < 0) - goto cleanup; + return -1; virFileWrapperClearPrefixes(); if (!(capsXML = virCapabilitiesFormatXML(caps))) - goto cleanup; + return -1; path = g_strdup_printf("%s/vircaps2xmldata/vircaps-%s-%s.xml", abs_srcdir, archStr, data->filename); if (virTestCompareToFile(capsXML, path) < 0) - goto cleanup; + return -1; - ret = 0; - - cleanup: - VIR_FREE(system); - VIR_FREE(resctrl); - VIR_FREE(path); - VIR_FREE(capsXML); - virObjectUnref(caps); - return ret; + return 0; } static int -- 2.31.1

It may happen that a NUMA node has no CPUs associated with it. We allow this for domains since v6.6.0-rc1~250. Let's update our capabilities schema to match that. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- docs/schemas/capability.rng | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/schemas/capability.rng b/docs/schemas/capability.rng index fb8203ad6d..fcc262ae1a 100644 --- a/docs/schemas/capability.rng +++ b/docs/schemas/capability.rng @@ -168,9 +168,9 @@ <attribute name="num"> <ref name="unsignedInt"/> </attribute> - <oneOrMore> + <zeroOrMore> <ref name="cpu"/> - </oneOrMore> + </zeroOrMore> </element> </optional> </element> -- 2.31.1

The way we format <cpu/> element for capabilities is not ideal, because if there are no CPUs, i.e. no child elements, we still output opening and closing element. To solve this, virXMLFormatElement() could be used but that would introduce more variables into the loop. Therefore, move the formatter into a separate function and use virXMLFormatElement(). Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/capabilities.c | 58 ++++++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 2f9a1e7d1f..9332daf6a6 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -802,6 +802,41 @@ virCapabilitiesAddStoragePool(virCaps *caps, } +static int +virCapsHostNUMACellCPUFormat(virBuffer *buf, + const virCapsHostNUMACellCPU *cpus, + int ncpus) +{ + g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER; + g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf); + size_t j; + + virBufferAsprintf(&attrBuf, " num='%d'", ncpus); + + for (j = 0; j < ncpus; j++) { + virBufferAsprintf(&childBuf, "<cpu id='%d'", cpus[j].id); + + if (cpus[j].siblings) { + g_autofree char *siblings = NULL; + + if (!(siblings = virBitmapFormat(cpus[j].siblings))) + return -1; + + virBufferAsprintf(&childBuf, + " socket_id='%d' die_id='%d' core_id='%d' siblings='%s'", + cpus[j].socket_id, + cpus[j].die_id, + cpus[j].core_id, + siblings); + } + virBufferAddLit(&childBuf, "/>\n"); + } + + virXMLFormatElement(buf, "cpus", &attrBuf, &childBuf); + return 0; +} + + static int virCapabilitiesHostNUMAFormat(virBuffer *buf, virCapsHostNUMA *caps) @@ -835,28 +870,9 @@ virCapabilitiesHostNUMAFormat(virBuffer *buf, virNumaDistanceFormat(buf, cell->distances, cell->ndistances); - virBufferAsprintf(buf, "<cpus num='%d'>\n", cell->ncpus); - virBufferAdjustIndent(buf, 2); - for (j = 0; j < cell->ncpus; j++) { - virBufferAsprintf(buf, "<cpu id='%d'", cell->cpus[j].id); + if (virCapsHostNUMACellCPUFormat(buf, cell->cpus, cell->ncpus) < 0) + return -1; - if (cell->cpus[j].siblings) { - g_autofree char *siblings = NULL; - - if (!(siblings = virBitmapFormat(cell->cpus[j].siblings))) - return -1; - - virBufferAsprintf(buf, - " socket_id='%d' die_id='%d' core_id='%d' siblings='%s'", - cell->cpus[j].socket_id, - cell->cpus[j].die_id, - cell->cpus[j].core_id, - siblings); - } - virBufferAddLit(buf, "/>\n"); - } - virBufferAdjustIndent(buf, -2); - virBufferAddLit(buf, "</cpus>\n"); virBufferAdjustIndent(buf, -2); virBufferAddLit(buf, "</cell>\n"); } -- 2.31.1

There's nothing domain specific about NUMA memory caches. Rename the virDomainCache* structures and enums to virNumaCache*. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/numa_conf.c | 40 ++++++++++++++++++++-------------------- src/conf/numa_conf.h | 28 ++++++++++++++-------------- src/libvirt_private.syms | 8 ++++---- src/qemu/qemu_command.c | 20 ++++++++++---------- 4 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c index 8fd5635aca..2a32b4ca06 100644 --- a/src/conf/numa_conf.c +++ b/src/conf/numa_conf.c @@ -60,15 +60,15 @@ VIR_ENUM_IMPL(virDomainMemoryAccess, "private", ); -VIR_ENUM_IMPL(virDomainCacheAssociativity, - VIR_DOMAIN_CACHE_ASSOCIATIVITY_LAST, +VIR_ENUM_IMPL(virNumaCacheAssociativity, + VIR_NUMA_CACHE_ASSOCIATIVITY_LAST, "none", "direct", "full", ); -VIR_ENUM_IMPL(virDomainCachePolicy, - VIR_DOMAIN_CACHE_POLICY_LAST, +VIR_ENUM_IMPL(virNumaCachePolicy, + VIR_NUMA_CACHE_POLICY_LAST, "none", "writeback", "writethrough", @@ -82,7 +82,7 @@ VIR_ENUM_IMPL(virDomainMemoryLatency, "write" ); -typedef struct _virDomainNumaCache virDomainNumaCache; +typedef struct _virNumaCache virNumaCache; typedef struct _virDomainNumaInterconnect virDomainNumaInterconnect; @@ -107,12 +107,12 @@ struct _virDomainNuma { virNumaDistance *distances; /* remote node distances */ size_t ndistances; - struct _virDomainNumaCache { + struct _virNumaCache { unsigned int level; /* cache level */ unsigned int size; /* cache size */ unsigned int line; /* line size, !!! in bytes !!! */ - virDomainCacheAssociativity associativity; /* cache associativity */ - virDomainCachePolicy policy; /* cache policy */ + virNumaCacheAssociativity associativity; /* cache associativity */ + virNumaCachePolicy policy; /* cache policy */ } *caches; size_t ncaches; } *mem_nodes; /* guest node configuration */ @@ -845,11 +845,11 @@ virDomainNumaDefNodeCacheParseXML(virDomainNuma *def, if ((n = virXPathNodeSet("./cache", ctxt, &nodes)) < 0) return -1; - def->mem_nodes[cur_cell].caches = g_new0(virDomainNumaCache, n); + def->mem_nodes[cur_cell].caches = g_new0(virNumaCache, n); for (i = 0; i < n; i++) { VIR_XPATH_NODE_AUTORESTORE(ctxt) - virDomainNumaCache *cache = &def->mem_nodes[cur_cell].caches[i]; + virNumaCache *cache = &def->mem_nodes[cur_cell].caches[i]; g_autofree char *tmp = NULL; unsigned int level; int associativity; @@ -883,7 +883,7 @@ virDomainNumaDefNodeCacheParseXML(virDomainNuma *def, return -1; } - if ((associativity = virDomainCacheAssociativityTypeFromString(tmp)) < 0) { + if ((associativity = virNumaCacheAssociativityTypeFromString(tmp)) < 0) { virReportError(VIR_ERR_XML_ERROR, _("Invalid cache associativity '%s'"), tmp); @@ -898,7 +898,7 @@ virDomainNumaDefNodeCacheParseXML(virDomainNuma *def, cur_cell); } - if ((policy = virDomainCachePolicyTypeFromString(tmp)) < 0) { + if ((policy = virNumaCachePolicyTypeFromString(tmp)) < 0) { virReportError(VIR_ERR_XML_ERROR, _("Invalid cache policy '%s'"), tmp); @@ -915,7 +915,7 @@ virDomainNumaDefNodeCacheParseXML(virDomainNuma *def, ctxt, &line, 1, ULLONG_MAX, true) < 0) return -1; - *cache = (virDomainNumaCache){level, size, line, associativity, policy}; + *cache = (virNumaCache){level, size, line, associativity, policy}; def->mem_nodes[cur_cell].ncaches++; } @@ -1132,17 +1132,17 @@ virDomainNumaDefFormatXML(virBuffer *buf, def->mem_nodes[i].ndistances); for (j = 0; j < def->mem_nodes[i].ncaches; j++) { - virDomainNumaCache *cache = &def->mem_nodes[i].caches[j]; + virNumaCache *cache = &def->mem_nodes[i].caches[j]; virBufferAsprintf(&childBuf, "<cache level='%u'", cache->level); if (cache->associativity) { virBufferAsprintf(&childBuf, " associativity='%s'", - virDomainCacheAssociativityTypeToString(cache->associativity)); + virNumaCacheAssociativityTypeToString(cache->associativity)); } if (cache->policy) { virBufferAsprintf(&childBuf, " policy='%s'", - virDomainCachePolicyTypeToString(cache->policy)); + virNumaCachePolicyTypeToString(cache->policy)); } virBufferAddLit(&childBuf, ">\n"); @@ -1226,7 +1226,7 @@ virDomainNumaDefValidate(const virDomainNuma *def) g_autoptr(virBitmap) levelsSeen = virBitmapNew(0); for (j = 0; j < node->ncaches; j++) { - const virDomainNumaCache *cache = &node->caches[j]; + const virNumaCache *cache = &node->caches[j]; /* Relax this if there's ever fourth layer of cache */ if (cache->level > 3) { @@ -1270,7 +1270,7 @@ virDomainNumaDefValidate(const virDomainNuma *def) if (l->cache > 0) { for (j = 0; j < def->mem_nodes[l->target].ncaches; j++) { - const virDomainNumaCache *cache = &def->mem_nodes[l->target].caches[j]; + const virNumaCache *cache = &def->mem_nodes[l->target].caches[j]; if (l->cache == cache->level) break; @@ -1712,8 +1712,8 @@ virDomainNumaGetNodeCache(const virDomainNuma *numa, unsigned int *level, unsigned int *size, unsigned int *line, - virDomainCacheAssociativity *associativity, - virDomainCachePolicy *policy) + virNumaCacheAssociativity *associativity, + virNumaCachePolicy *policy) { const virDomainNumaNode *cell; diff --git a/src/conf/numa_conf.h b/src/conf/numa_conf.h index 6682580ded..1ef6455fb5 100644 --- a/src/conf/numa_conf.h +++ b/src/conf/numa_conf.h @@ -51,22 +51,22 @@ typedef enum { VIR_ENUM_DECL(virDomainMemoryAccess); typedef enum { - VIR_DOMAIN_CACHE_ASSOCIATIVITY_NONE, /* No associativity */ - VIR_DOMAIN_CACHE_ASSOCIATIVITY_DIRECT, /* Direct mapped cache */ - VIR_DOMAIN_CACHE_ASSOCIATIVITY_FULL, /* Fully associative cache */ + VIR_NUMA_CACHE_ASSOCIATIVITY_NONE, /* No associativity */ + VIR_NUMA_CACHE_ASSOCIATIVITY_DIRECT, /* Direct mapped cache */ + VIR_NUMA_CACHE_ASSOCIATIVITY_FULL, /* Fully associative cache */ - VIR_DOMAIN_CACHE_ASSOCIATIVITY_LAST -} virDomainCacheAssociativity; -VIR_ENUM_DECL(virDomainCacheAssociativity); + VIR_NUMA_CACHE_ASSOCIATIVITY_LAST +} virNumaCacheAssociativity; +VIR_ENUM_DECL(virNumaCacheAssociativity); typedef enum { - VIR_DOMAIN_CACHE_POLICY_NONE, /* No policy */ - VIR_DOMAIN_CACHE_POLICY_WRITEBACK, /* Write-back policy */ - VIR_DOMAIN_CACHE_POLICY_WRITETHROUGH, /* Write-through policy */ + VIR_NUMA_CACHE_POLICY_NONE, /* No policy */ + VIR_NUMA_CACHE_POLICY_WRITEBACK, /* Write-back policy */ + VIR_NUMA_CACHE_POLICY_WRITETHROUGH, /* Write-through policy */ - VIR_DOMAIN_CACHE_POLICY_LAST -} virDomainCachePolicy; -VIR_ENUM_DECL(virDomainCachePolicy); + VIR_NUMA_CACHE_POLICY_LAST +} virNumaCachePolicy; +VIR_ENUM_DECL(virNumaCachePolicy); typedef enum { VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_LATENCY, @@ -233,8 +233,8 @@ int virDomainNumaGetNodeCache(const virDomainNuma *numa, unsigned int *level, unsigned int *size, unsigned int *line, - virDomainCacheAssociativity *associativity, - virDomainCachePolicy *policy); + virNumaCacheAssociativity *associativity, + virNumaCachePolicy *policy); ssize_t virDomainNumaGetNodeInitiator(const virDomainNuma *numa, size_t node); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 0ced2a7990..9e9171a6d9 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -861,10 +861,6 @@ virNodeDeviceDeleteVport; virNodeDeviceGetParentName; # conf/numa_conf.h -virDomainCacheAssociativityTypeFromString; -virDomainCacheAssociativityTypeToString; -virDomainCachePolicyTypeFromString; -virDomainCachePolicyTypeToString; virDomainMemoryAccessTypeFromString; virDomainMemoryAccessTypeToString; virDomainMemoryLatencyTypeFromString; @@ -913,6 +909,10 @@ virDomainNumatunePlacementTypeFromString; virDomainNumatunePlacementTypeToString; virDomainNumatuneSet; virDomainNumatuneSpecifiedMaxNode; +virNumaCacheAssociativityTypeFromString; +virNumaCacheAssociativityTypeToString; +virNumaCachePolicyTypeFromString; +virNumaCachePolicyTypeToString; virNumaDistanceFormat; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 4ed82ed570..70a0c8c067 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7198,8 +7198,8 @@ qemuBuilNumaCellCache(virCommand *cmd, unsigned int level; unsigned int size; unsigned int line; - virDomainCacheAssociativity associativity; - virDomainCachePolicy policy; + virNumaCacheAssociativity associativity; + virNumaCachePolicy policy; if (virDomainNumaGetNodeCache(def->numa, cell, i, &level, &size, &line, @@ -7214,30 +7214,30 @@ qemuBuilNumaCellCache(virCommand *cmd, cell, size, level); switch (associativity) { - case VIR_DOMAIN_CACHE_ASSOCIATIVITY_NONE: + case VIR_NUMA_CACHE_ASSOCIATIVITY_NONE: virBufferAddLit(&buf, ",associativity=none"); break; - case VIR_DOMAIN_CACHE_ASSOCIATIVITY_DIRECT: + case VIR_NUMA_CACHE_ASSOCIATIVITY_DIRECT: virBufferAddLit(&buf, ",associativity=direct"); break; - case VIR_DOMAIN_CACHE_ASSOCIATIVITY_FULL: + case VIR_NUMA_CACHE_ASSOCIATIVITY_FULL: virBufferAddLit(&buf, ",associativity=complex"); break; - case VIR_DOMAIN_CACHE_ASSOCIATIVITY_LAST: + case VIR_NUMA_CACHE_ASSOCIATIVITY_LAST: break; } switch (policy) { - case VIR_DOMAIN_CACHE_POLICY_NONE: + case VIR_NUMA_CACHE_POLICY_NONE: virBufferAddLit(&buf, ",policy=none"); break; - case VIR_DOMAIN_CACHE_POLICY_WRITEBACK: + case VIR_NUMA_CACHE_POLICY_WRITEBACK: virBufferAddLit(&buf, ",policy=write-back"); break; - case VIR_DOMAIN_CACHE_POLICY_WRITETHROUGH: + case VIR_NUMA_CACHE_POLICY_WRITETHROUGH: virBufferAddLit(&buf, ",policy=write-through"); break; - case VIR_DOMAIN_CACHE_POLICY_LAST: + case VIR_NUMA_CACHE_POLICY_LAST: break; } -- 2.31.1

Expose virNumaCache XML formatter so that it can be re-used by other parts of the code. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/numa_conf.c | 81 +++++++++++++++++++++------------------- src/conf/numa_conf.h | 13 +++++++ src/libvirt_private.syms | 1 + 3 files changed, 56 insertions(+), 39 deletions(-) diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c index 2a32b4ca06..c4f2ef10c1 100644 --- a/src/conf/numa_conf.c +++ b/src/conf/numa_conf.c @@ -82,8 +82,6 @@ VIR_ENUM_IMPL(virDomainMemoryLatency, "write" ); -typedef struct _virNumaCache virNumaCache; - typedef struct _virDomainNumaInterconnect virDomainNumaInterconnect; typedef struct _virDomainNumaNode virDomainNumaNode; @@ -107,13 +105,7 @@ struct _virDomainNuma { virNumaDistance *distances; /* remote node distances */ size_t ndistances; - struct _virNumaCache { - unsigned int level; /* cache level */ - unsigned int size; /* cache size */ - unsigned int line; /* line size, !!! in bytes !!! */ - virNumaCacheAssociativity associativity; /* cache associativity */ - virNumaCachePolicy policy; /* cache policy */ - } *caches; + virNumaCache *caches; size_t ncaches; } *mem_nodes; /* guest node configuration */ size_t nmem_nodes; @@ -1102,7 +1094,6 @@ virDomainNumaDefFormatXML(virBuffer *buf, virBitmap *cpumask = virDomainNumaGetNodeCpumask(def, i); g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER; g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf); - size_t j; memAccess = virDomainNumaGetNodeMemoryAccessMode(def, i); discard = virDomainNumaGetNodeDiscard(def, i); @@ -1131,35 +1122,9 @@ virDomainNumaDefFormatXML(virBuffer *buf, def->mem_nodes[i].distances, def->mem_nodes[i].ndistances); - for (j = 0; j < def->mem_nodes[i].ncaches; j++) { - virNumaCache *cache = &def->mem_nodes[i].caches[j]; - - virBufferAsprintf(&childBuf, "<cache level='%u'", cache->level); - if (cache->associativity) { - virBufferAsprintf(&childBuf, " associativity='%s'", - virNumaCacheAssociativityTypeToString(cache->associativity)); - } - - if (cache->policy) { - virBufferAsprintf(&childBuf, " policy='%s'", - virNumaCachePolicyTypeToString(cache->policy)); - } - virBufferAddLit(&childBuf, ">\n"); - - virBufferAdjustIndent(&childBuf, 2); - virBufferAsprintf(&childBuf, - "<size value='%u' unit='KiB'/>\n", - cache->size); - - if (cache->line) { - virBufferAsprintf(&childBuf, - "<line value='%u' unit='B'/>\n", - cache->line); - } - - virBufferAdjustIndent(&childBuf, -2); - virBufferAddLit(&childBuf, "</cache>\n"); - } + virNumaCacheFormat(&childBuf, + def->mem_nodes[i].caches, + def->mem_nodes[i].ncaches); virXMLFormatElement(buf, "cell", &attrBuf, &childBuf); } @@ -1839,3 +1804,41 @@ virNumaDistanceFormat(virBuffer *buf, virXMLFormatElement(buf, "distances", NULL, &childBuf); } + + +void +virNumaCacheFormat(virBuffer *buf, + const virNumaCache *caches, + size_t ncaches) +{ + size_t i; + + for (i = 0; i < ncaches; i++) { + const virNumaCache *cache = &caches[i]; + g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER; + g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf); + + virBufferAsprintf(&attrBuf, " level='%u'", cache->level); + if (cache->associativity) { + virBufferAsprintf(&attrBuf, " associativity='%s'", + virNumaCacheAssociativityTypeToString(cache->associativity)); + } + + if (cache->policy) { + virBufferAsprintf(&attrBuf, " policy='%s'", + virNumaCachePolicyTypeToString(cache->policy)); + } + + virBufferAsprintf(&childBuf, + "<size value='%u' unit='KiB'/>\n", + cache->size); + + if (cache->line) { + virBufferAsprintf(&childBuf, + "<line value='%u' unit='B'/>\n", + cache->line); + } + + virXMLFormatElement(buf, "cache", &attrBuf, &childBuf); + } +} diff --git a/src/conf/numa_conf.h b/src/conf/numa_conf.h index 1ef6455fb5..9dee4f3a40 100644 --- a/src/conf/numa_conf.h +++ b/src/conf/numa_conf.h @@ -259,3 +259,16 @@ struct _virNumaDistance { void virNumaDistanceFormat(virBuffer *buf, const virNumaDistance *distances, size_t ndistances); + +typedef struct _virNumaCache virNumaCache; +struct _virNumaCache { + unsigned int level; /* cache level */ + unsigned int size; /* cache size */ + unsigned int line; /* line size, !!! in bytes !!! */ + virNumaCacheAssociativity associativity; /* cache associativity */ + virNumaCachePolicy policy; /* cache policy */ +}; + +void virNumaCacheFormat(virBuffer *buf, + const virNumaCache *caches, + size_t ncaches); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 9e9171a6d9..abe4525163 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -911,6 +911,7 @@ virDomainNumatuneSet; virDomainNumatuneSpecifiedMaxNode; virNumaCacheAssociativityTypeFromString; virNumaCacheAssociativityTypeToString; +virNumaCacheFormat; virNumaCachePolicyTypeFromString; virNumaCachePolicyTypeToString; virNumaDistanceFormat; -- 2.31.1

Memory on a NUMA node can have a side caches. Configuring these for a domain was implemented in v6.6.0-rc1~249 and friends. However, up until now mgmt applications did not really know what values to pass because we were not exposing caches of the host. With recent enough kernel these are exposed under sysfs and with a bit of parsing we can extend our capabilities XML. The sysfs structure is documented in kernel's Documentation/admin-guide/mm/numaperf.rst and basically maps in 1:1 fashion to our virNumaCache structure. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- docs/schemas/capability.rng | 4 + src/conf/capabilities.c | 149 ++++++++++++++++++++++++++++++++- src/conf/capabilities.h | 4 +- src/libxl/libxl_capabilities.c | 3 +- src/test/test_driver.c | 3 +- tests/testutils.c | 3 +- 6 files changed, 158 insertions(+), 8 deletions(-) diff --git a/docs/schemas/capability.rng b/docs/schemas/capability.rng index fcc262ae1a..5c1fb3607c 100644 --- a/docs/schemas/capability.rng +++ b/docs/schemas/capability.rng @@ -163,6 +163,10 @@ </element> </optional> + <zeroOrMore> + <ref name="numaCache"/> + </zeroOrMore> + <optional> <element name="cpus"> <attribute name="num"> diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 9332daf6a6..7b60676070 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -121,6 +121,8 @@ virCapabilitiesFreeHostNUMACell(virCapsHostNUMACell *cell) g_free(cell->cpus); g_free(cell->distances); g_free(cell->pageinfo); + if (cell->caches) + g_array_unref(cell->caches); g_free(cell); } @@ -335,6 +337,7 @@ virCapabilitiesSetNetPrefix(virCaps *caps, * @distances: NUMA distances to other nodes * @npageinfo: number of pages at node @num * @pageinfo: info on each single memory page + * @caches: info on memory side caches * * Registers a new NUMA cell for a host, passing in a array of * CPU IDs belonging to the cell, distances to other NUMA nodes @@ -351,7 +354,8 @@ virCapabilitiesHostNUMAAddCell(virCapsHostNUMA *caps, int ndistances, virNumaDistance **distances, int npageinfo, - virCapsHostNUMACellPageInfo **pageinfo) + virCapsHostNUMACellPageInfo **pageinfo, + GArray **caches) { virCapsHostNUMACell *cell = g_new0(virCapsHostNUMACell, 1); @@ -369,6 +373,9 @@ virCapabilitiesHostNUMAAddCell(virCapsHostNUMA *caps, cell->npageinfo = npageinfo; cell->pageinfo = g_steal_pointer(pageinfo); } + if (caches) { + cell->caches = g_steal_pointer(caches); + } g_ptr_array_add(caps->cells, cell); } @@ -870,6 +877,11 @@ virCapabilitiesHostNUMAFormat(virBuffer *buf, virNumaDistanceFormat(buf, cell->distances, cell->ndistances); + if (cell->caches) { + virNumaCache *caches = &g_array_index(cell->caches, virNumaCache, 0); + virNumaCacheFormat(buf, caches, cell->caches->len); + } + if (virCapsHostNUMACellCPUFormat(buf, cell->cpus, cell->ncpus) < 0) return -1; @@ -1535,6 +1547,129 @@ virCapabilitiesGetNUMAPagesInfo(int node, } +static int +virCapabilitiesGetNodeCacheReadFile(const char *prefix, + const char *dir, + const char *file, + unsigned int *value) +{ + g_autofree char *path = g_strdup_printf("%s/%s/%s", prefix, dir, file); + int rv = virFileReadValueUint(value, "%s", path); + + if (rv < 0) { + if (rv == -2) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("File '%s' does not exist"), + path); + } + return -1; + } + + return 0; +} + + +static int +virCapsHostNUMACellCacheComparator(const void *a, + const void *b) +{ + const virNumaCache *aa = a; + const virNumaCache *bb = b; + + return aa->level - bb->level; +} + + +static int +virCapabilitiesGetNodeCache(int node, + GArray **cachesRet) +{ + g_autoptr(DIR) dir = NULL; + int direrr = 0; + struct dirent *entry; + g_autofree char *path = NULL; + g_autoptr(GArray) caches = g_array_new(FALSE, FALSE, sizeof(virNumaCache)); + + path = g_strdup_printf(SYSFS_SYSTEM_PATH "/node/node%d/memory_side_cache", node); + + if (virDirOpenIfExists(&dir, path) < 0) + return -1; + + while (dir && (direrr = virDirRead(dir, &entry, path)) > 0) { + const char *dname = STRSKIP(entry->d_name, "index"); + virNumaCache cache = { 0 }; + unsigned int indexing; + unsigned int write_policy; + + if (!dname) + continue; + + if (virStrToLong_ui(dname, NULL, 10, &cache.level) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("unable to parse %s"), + entry->d_name); + return -1; + } + + if (virCapabilitiesGetNodeCacheReadFile(path, entry->d_name, + "size", &cache.size) < 0) + return -1; + + cache.size >>= 10; /* read in bytes but stored in kibibytes */ + + if (virCapabilitiesGetNodeCacheReadFile(path, entry->d_name, + "line_size", &cache.line) < 0) + return -1; + + if (virCapabilitiesGetNodeCacheReadFile(path, entry->d_name, + "indexing", &indexing) < 0) + return -1; + + /* see enum cache_indexing in kernel */ + switch (indexing) { + case 0: cache.associativity = VIR_NUMA_CACHE_ASSOCIATIVITY_DIRECT; break; + case 1: cache.associativity = VIR_NUMA_CACHE_ASSOCIATIVITY_FULL; break; + case 2: cache.associativity = VIR_NUMA_CACHE_ASSOCIATIVITY_NONE; break; + default: + virReportError(VIR_ERR_INTERNAL_ERROR, + _("unknown indexing value '%u'"), + indexing); + return -1; + } + + if (virCapabilitiesGetNodeCacheReadFile(path, entry->d_name, + "write_policy", &write_policy) < 0) + return -1; + + /* see enum cache_write_policy in kernel */ + switch (write_policy) { + case 0: cache.policy = VIR_NUMA_CACHE_POLICY_WRITEBACK; break; + case 1: cache.policy = VIR_NUMA_CACHE_POLICY_WRITETHROUGH; break; + case 2: cache.policy = VIR_NUMA_CACHE_POLICY_NONE; break; + default: + virReportError(VIR_ERR_INTERNAL_ERROR, + _("unknown write_policy value '%u'"), + write_policy); + return -1; + } + + g_array_append_val(caches, cache); + } + + if (direrr < 0) + return -1; + + if (caches->len > 0) { + g_array_sort(caches, virCapsHostNUMACellCacheComparator); + *cachesRet = g_steal_pointer(&caches); + } else { + *cachesRet = NULL; + } + + return 0; +} + + static int virCapabilitiesHostNUMAInitFake(virCapsHostNUMA *caps) { @@ -1586,7 +1721,8 @@ virCapabilitiesHostNUMAInitFake(virCapsHostNUMA *caps) nodeinfo.memory, cid, &cpus, 0, NULL, - 0, NULL); + 0, NULL, + NULL); } return 0; @@ -1616,8 +1752,9 @@ virCapabilitiesHostNUMAInitReal(virCapsHostNUMA *caps) g_autofree virNumaDistance *distances = NULL; int ndistances = 0; g_autofree virCapsHostNUMACellPageInfo *pageinfo = NULL; - int npageinfo; + int npageinfo = 0; unsigned long long memory; + g_autoptr(GArray) caches = NULL; int cpu; size_t i; @@ -1644,6 +1781,9 @@ virCapabilitiesHostNUMAInitReal(virCapsHostNUMA *caps) if (virCapabilitiesGetNUMAPagesInfo(n, &pageinfo, &npageinfo) < 0) goto cleanup; + if (virCapabilitiesGetNodeCache(n, &caches) < 0) + goto cleanup; + /* Detect the amount of memory in the numa cell in KiB */ virNumaGetNodeMemory(n, &memory, NULL); memory >>= 10; @@ -1651,7 +1791,8 @@ virCapabilitiesHostNUMAInitReal(virCapsHostNUMA *caps) virCapabilitiesHostNUMAAddCell(caps, n, memory, ncpus, &cpus, ndistances, &distances, - npageinfo, &pageinfo); + npageinfo, &pageinfo, + &caches); } ret = 0; diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h index 4d4ac476ea..334b361e7a 100644 --- a/src/conf/capabilities.h +++ b/src/conf/capabilities.h @@ -108,6 +108,7 @@ struct _virCapsHostNUMACell { virNumaDistance *distances; int npageinfo; virCapsHostNUMACellPageInfo *pageinfo; + GArray *caches; /* virNumaCache */ }; struct _virCapsHostNUMA { @@ -253,7 +254,8 @@ virCapabilitiesHostNUMAAddCell(virCapsHostNUMA *caps, int ndistances, virNumaDistance **distances, int npageinfo, - virCapsHostNUMACellPageInfo **pageinfo); + virCapsHostNUMACellPageInfo **pageinfo, + GArray **caches); virCapsGuestMachine ** virCapabilitiesAllocMachines(const char *const *names, diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c index b8600ca479..7385ad0d38 100644 --- a/src/libxl/libxl_capabilities.c +++ b/src/libxl/libxl_capabilities.c @@ -332,7 +332,8 @@ libxlCapsInitNuma(libxl_ctx *ctx, virCaps *caps) numa_info[i].size / 1024, nr_cpus_node[i], &cpus[i], nr_distances, &distances, - 0, NULL); + 0, NULL, + NULL); /* This is safe, as the CPU list is now stored in the NUMA cell */ cpus[i] = NULL; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index ea5a5005e7..1b36c67eb2 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -331,7 +331,8 @@ testBuildCapabilities(virConnectPtr conn) i, privconn->cells[i].mem, privconn->cells[i].numCpus, &cpu_cells, 0, NULL, - nPages, &pages); + nPages, &pages, + NULL); } for (i = 0; i < G_N_ELEMENTS(guest_types); i++) { diff --git a/tests/testutils.c b/tests/testutils.c index eb3bd48b6a..7d87e30a5c 100644 --- a/tests/testutils.c +++ b/tests/testutils.c @@ -947,7 +947,8 @@ virTestCapsBuildNUMATopology(int seq) MAX_MEM_IN_CELL, MAX_CPUS_IN_CELL, &cell_cpus, 0, NULL, - 0, NULL); + 0, NULL, + NULL); cell_cpus = NULL; } -- 2.31.1

On Mon, May 31, 2021 at 10:36:07AM +0200, Michal Privoznik wrote:
Memory on a NUMA node can have a side caches. Configuring these for a domain was implemented in v6.6.0-rc1~249 and friends. However, up until now mgmt applications did not really know what values to pass because we were not exposing caches of the host. With recent enough kernel these are exposed under sysfs and with a bit of parsing we can extend our capabilities XML. The sysfs structure is documented in kernel's Documentation/admin-guide/mm/numaperf.rst and basically maps in 1:1 fashion to our virNumaCache structure.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- docs/schemas/capability.rng | 4 + src/conf/capabilities.c | 149 ++++++++++++++++++++++++++++++++- src/conf/capabilities.h | 4 +- src/libxl/libxl_capabilities.c | 3 +- src/test/test_driver.c | 3 +- tests/testutils.c | 3 +- 6 files changed, 158 insertions(+), 8 deletions(-)
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 9332daf6a6..7b60676070 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -1535,6 +1547,129 @@ virCapabilitiesGetNUMAPagesInfo(int node, }
+static int +virCapabilitiesGetNodeCacheReadFile(const char *prefix, + const char *dir, + const char *file, + unsigned int *value) +{ + g_autofree char *path = gstrdup_printf("%s/%s/%s", prefix, dir, file);
Use g_build_filename() instead. As a side note, I also wonder if there is an easier and consistent way that can also handle things like "%s/something%s/%s" etc., but one temporary autofree variable is probably fine.
+ int rv = virFileReadValueUint(value, "%s", path); +
This clearly shows that my (pre-glib) ideas for virFileReadValue*() functions were overcomplicated and the functions should just take path without a format, especially when we now have g_autofree, g_build_filename() and others. That's just a thought, unrelated to your series, though.

There's nothing domain specific about NUMA interconnects. Rename the virDomainNumaInterconnect* structures and enums to virNumaInterconnect*. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/numa_conf.c | 56 ++++++++++++++++++++-------------------- src/conf/numa_conf.h | 24 ++++++++--------- src/libvirt_private.syms | 4 +-- src/qemu/qemu_command.c | 10 +++---- 4 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c index c4f2ef10c1..c8b3212e5c 100644 --- a/src/conf/numa_conf.c +++ b/src/conf/numa_conf.c @@ -74,15 +74,15 @@ VIR_ENUM_IMPL(virNumaCachePolicy, "writethrough", ); -VIR_ENUM_IMPL(virDomainMemoryLatency, - VIR_DOMAIN_MEMORY_LATENCY_LAST, +VIR_ENUM_IMPL(virMemoryLatency, + VIR_MEMORY_LATENCY_LAST, "none", "access", "read", "write" ); -typedef struct _virDomainNumaInterconnect virDomainNumaInterconnect; +typedef struct _virNumaInterconnect virNumaInterconnect; typedef struct _virDomainNumaNode virDomainNumaNode; @@ -110,14 +110,14 @@ struct _virDomainNuma { } *mem_nodes; /* guest node configuration */ size_t nmem_nodes; - struct _virDomainNumaInterconnect { - virDomainNumaInterconnectType type; /* whether structure describes latency - or bandwidth */ + struct _virNumaInterconnect { + virNumaInterconnectType type; /* whether structure describes latency + or bandwidth */ unsigned int initiator; /* the initiator NUMA node */ unsigned int target; /* the target NUMA node */ unsigned int cache; /* the target cache on @target; if 0 then the memory on @target */ - virDomainMemoryLatency accessType; /* what type of access is defined */ + virMemoryLatency accessType; /* what type of access is defined */ unsigned long value; /* value itself */ } *interconnects; size_t ninterconnects; @@ -1021,24 +1021,24 @@ virDomainNumaDefParseXML(virDomainNuma *def, &interconnect)) < 0) return -1; - def->interconnects = g_new0(virDomainNumaInterconnect, n); + def->interconnects = g_new0(virNumaInterconnect, n); for (i = 0; i < n; i++) { - virDomainNumaInterconnectType type; + virNumaInterconnectType type; unsigned int initiator; unsigned int target; unsigned int cache = 0; - virDomainMemoryLatency accessType; + virMemoryLatency accessType; unsigned long long value; if (virXMLNodeNameEqual(interconnect[i], "latency")) { - type = VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_LATENCY; + type = VIR_NUMA_INTERCONNECT_TYPE_LATENCY; if (virXMLPropULongLong(interconnect[i], "value", 10, VIR_XML_PROP_REQUIRED, &value) < 0) return -1; } else if (virXMLNodeNameEqual(interconnect[i], "bandwidth")) { VIR_XPATH_NODE_AUTORESTORE(ctxt) - type = VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_BANDWIDTH; + type = VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH; ctxt->node = interconnect[i]; @@ -1062,13 +1062,13 @@ virDomainNumaDefParseXML(virDomainNuma *def, return -1; if (virXMLPropEnum(interconnect[i], "type", - virDomainMemoryLatencyTypeFromString, + virMemoryLatencyTypeFromString, VIR_XML_PROP_REQUIRED | VIR_XML_PROP_NONZERO, &accessType) < 0) return -1; - def->interconnects[i] = (virDomainNumaInterconnect) {type, initiator, target, - cache, accessType, value}; + def->interconnects[i] = (virNumaInterconnect) {type, initiator, target, + cache, accessType, value}; def->ninterconnects++; } @@ -1135,13 +1135,13 @@ virDomainNumaDefFormatXML(virBuffer *buf, } for (i = 0; i < def->ninterconnects; i++) { - virDomainNumaInterconnect *l = &def->interconnects[i]; + virNumaInterconnect *l = &def->interconnects[i]; switch (l->type) { - case VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_LATENCY: + case VIR_NUMA_INTERCONNECT_TYPE_LATENCY: virBufferAddLit(buf, "<latency"); break; - case VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_BANDWIDTH: + case VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH: virBufferAddLit(buf, "<bandwidth"); } @@ -1157,10 +1157,10 @@ virDomainNumaDefFormatXML(virBuffer *buf, virBufferAsprintf(buf, " type='%s' value='%lu'", - virDomainMemoryLatencyTypeToString(l->accessType), + virMemoryLatencyTypeToString(l->accessType), l->value); - if (l->type == VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_BANDWIDTH) + if (l->type == VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH) virBufferAddLit(buf, " unit='KiB'"); virBufferAddLit(buf, "/>\n"); } @@ -1213,7 +1213,7 @@ virDomainNumaDefValidate(const virDomainNuma *def) } for (i = 0; i < def->ninterconnects; i++) { - const virDomainNumaInterconnect *l = &def->interconnects[i]; + const virNumaInterconnect *l = &def->interconnects[i]; if (l->initiator >= def->nmem_nodes) { virReportError(VIR_ERR_XML_ERROR, "%s", @@ -1249,7 +1249,7 @@ virDomainNumaDefValidate(const virDomainNuma *def) } for (j = 0; j < i; j++) { - const virDomainNumaInterconnect *ll = &def->interconnects[j]; + const virNumaInterconnect *ll = &def->interconnects[j]; if (l->type == ll->type && l->initiator == ll->initiator && @@ -1720,20 +1720,20 @@ virDomainNumaGetNodeInitiator(const virDomainNuma *numa, /* For the rest, "NUMA node that has best performance (the lowest * latency or largest bandwidth) to this NUMA node." */ for (i = 0; i < numa->ninterconnects; i++) { - const virDomainNumaInterconnect *l = &numa->interconnects[i]; + const virNumaInterconnect *l = &numa->interconnects[i]; if (l->target != node) continue; switch (l->type) { - case VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_LATENCY: + case VIR_NUMA_INTERCONNECT_TYPE_LATENCY: if (l->value < minLatency) { minLatency = l->value; candidateLatency = l->initiator; } break; - case VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_BANDWIDTH: + case VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH: if (l->value > maxBandwidth) { maxBandwidth = l->value; candidateBandwidth = l->initiator; @@ -1762,14 +1762,14 @@ virDomainNumaGetInterconnectsCount(const virDomainNuma *numa) int virDomainNumaGetInterconnect(const virDomainNuma *numa, size_t i, - virDomainNumaInterconnectType *type, + virNumaInterconnectType *type, unsigned int *initiator, unsigned int *target, unsigned int *cache, - virDomainMemoryLatency *accessType, + virMemoryLatency *accessType, unsigned long *value) { - const virDomainNumaInterconnect *l; + const virNumaInterconnect *l; if (!numa || i >= numa->ninterconnects) return -1; diff --git a/src/conf/numa_conf.h b/src/conf/numa_conf.h index 9dee4f3a40..5baf68348c 100644 --- a/src/conf/numa_conf.h +++ b/src/conf/numa_conf.h @@ -69,19 +69,19 @@ typedef enum { VIR_ENUM_DECL(virNumaCachePolicy); typedef enum { - VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_LATENCY, - VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_BANDWIDTH, -} virDomainNumaInterconnectType; + VIR_NUMA_INTERCONNECT_TYPE_LATENCY, + VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH, +} virNumaInterconnectType; typedef enum { - VIR_DOMAIN_MEMORY_LATENCY_NONE = 0, /* No memory latency defined */ - VIR_DOMAIN_MEMORY_LATENCY_ACCESS, /* Access latency */ - VIR_DOMAIN_MEMORY_LATENCY_READ, /* Read latency */ - VIR_DOMAIN_MEMORY_LATENCY_WRITE, /* Write latency */ + VIR_MEMORY_LATENCY_NONE = 0, /* No memory latency defined */ + VIR_MEMORY_LATENCY_ACCESS, /* Access latency */ + VIR_MEMORY_LATENCY_READ, /* Read latency */ + VIR_MEMORY_LATENCY_WRITE, /* Write latency */ - VIR_DOMAIN_MEMORY_LATENCY_LAST -} virDomainMemoryLatency; -VIR_ENUM_DECL(virDomainMemoryLatency); + VIR_MEMORY_LATENCY_LAST +} virMemoryLatency; +VIR_ENUM_DECL(virMemoryLatency); virDomainNuma *virDomainNumaNew(void); @@ -243,11 +243,11 @@ size_t virDomainNumaGetInterconnectsCount(const virDomainNuma *numa); int virDomainNumaGetInterconnect(const virDomainNuma *numa, size_t i, - virDomainNumaInterconnectType *type, + virNumaInterconnectType *type, unsigned int *initiator, unsigned int *target, unsigned int *cache, - virDomainMemoryLatency *accessType, + virMemoryLatency *accessType, unsigned long *value); typedef struct _virNumaDistance virNumaDistance; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index abe4525163..d7f6dfd534 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -863,8 +863,6 @@ virNodeDeviceGetParentName; # conf/numa_conf.h virDomainMemoryAccessTypeFromString; virDomainMemoryAccessTypeToString; -virDomainMemoryLatencyTypeFromString; -virDomainMemoryLatencyTypeToString; virDomainNumaCheckABIStability; virDomainNumaEquals; virDomainNumaFillCPUsInNode; @@ -909,6 +907,8 @@ virDomainNumatunePlacementTypeFromString; virDomainNumatunePlacementTypeToString; virDomainNumatuneSet; virDomainNumatuneSpecifiedMaxNode; +virMemoryLatencyTypeFromString; +virMemoryLatencyTypeToString; virNumaCacheAssociativityTypeFromString; virNumaCacheAssociativityTypeToString; virNumaCacheFormat; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 70a0c8c067..b0bd123fc6 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7273,11 +7273,11 @@ qemuBuildNumaHMATCommandLine(virCommand *cmd, nlatencies = virDomainNumaGetInterconnectsCount(def->numa); for (i = 0; i < nlatencies; i++) { g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; - virDomainNumaInterconnectType type; + virNumaInterconnectType type; unsigned int initiator; unsigned int target; unsigned int cache; - virDomainMemoryLatency accessType; + virMemoryLatency accessType; unsigned long value; const char *hierarchyStr; const char *accessStr; @@ -7288,16 +7288,16 @@ qemuBuildNumaHMATCommandLine(virCommand *cmd, return -1; hierarchyStr = qemuDomainMemoryHierarchyTypeToString(cache); - accessStr = virDomainMemoryLatencyTypeToString(accessType); + accessStr = virMemoryLatencyTypeToString(accessType); virBufferAsprintf(&buf, "hmat-lb,initiator=%u,target=%u,hierarchy=%s,data-type=%s-", initiator, target, hierarchyStr, accessStr); switch (type) { - case VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_LATENCY: + case VIR_NUMA_INTERCONNECT_TYPE_LATENCY: virBufferAsprintf(&buf, "latency,latency=%lu", value); break; - case VIR_DOMAIN_NUMA_INTERCONNECT_TYPE_BANDWIDTH: + case VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH: virBufferAsprintf(&buf, "bandwidth,bandwidth=%luK", value); break; } -- 2.31.1

Expose virNumaInterconnect XML formatter so that it can be re-used by other parts of the code. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/conf/numa_conf.c | 101 +++++++++++++++++++-------------------- src/conf/numa_conf.h | 16 +++++++ src/libvirt_private.syms | 1 + 3 files changed, 66 insertions(+), 52 deletions(-) diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c index c8b3212e5c..9a9b5f4b60 100644 --- a/src/conf/numa_conf.c +++ b/src/conf/numa_conf.c @@ -82,8 +82,6 @@ VIR_ENUM_IMPL(virMemoryLatency, "write" ); -typedef struct _virNumaInterconnect virNumaInterconnect; - typedef struct _virDomainNumaNode virDomainNumaNode; struct _virDomainNuma { @@ -110,16 +108,7 @@ struct _virDomainNuma { } *mem_nodes; /* guest node configuration */ size_t nmem_nodes; - struct _virNumaInterconnect { - virNumaInterconnectType type; /* whether structure describes latency - or bandwidth */ - unsigned int initiator; /* the initiator NUMA node */ - unsigned int target; /* the target NUMA node */ - unsigned int cache; /* the target cache on @target; if 0 then the - memory on @target */ - virMemoryLatency accessType; /* what type of access is defined */ - unsigned long value; /* value itself */ - } *interconnects; + virNumaInterconnect *interconnects; size_t ninterconnects; /* Future NUMA tuning related stuff should go here. */ @@ -1129,46 +1118,7 @@ virDomainNumaDefFormatXML(virBuffer *buf, virXMLFormatElement(buf, "cell", &attrBuf, &childBuf); } - if (def->ninterconnects) { - virBufferAddLit(buf, "<interconnects>\n"); - virBufferAdjustIndent(buf, 2); - } - - for (i = 0; i < def->ninterconnects; i++) { - virNumaInterconnect *l = &def->interconnects[i]; - - switch (l->type) { - case VIR_NUMA_INTERCONNECT_TYPE_LATENCY: - virBufferAddLit(buf, "<latency"); - break; - case VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH: - virBufferAddLit(buf, "<bandwidth"); - } - - virBufferAsprintf(buf, - " initiator='%u' target='%u'", - l->initiator, l->target); - - if (l->cache > 0) { - virBufferAsprintf(buf, - " cache='%u'", - l->cache); - } - - virBufferAsprintf(buf, - " type='%s' value='%lu'", - virMemoryLatencyTypeToString(l->accessType), - l->value); - - if (l->type == VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH) - virBufferAddLit(buf, " unit='KiB'"); - virBufferAddLit(buf, "/>\n"); - } - - if (def->ninterconnects) { - virBufferAdjustIndent(buf, -2); - virBufferAddLit(buf, "</interconnects>\n"); - } + virNumaInterconnectFormat(buf, def->interconnects, def->ninterconnects); virBufferAdjustIndent(buf, -2); virBufferAddLit(buf, "</numa>\n"); @@ -1842,3 +1792,50 @@ virNumaCacheFormat(virBuffer *buf, virXMLFormatElement(buf, "cache", &attrBuf, &childBuf); } } + + +void +virNumaInterconnectFormat(virBuffer *buf, + const virNumaInterconnect *interconnects, + size_t ninterconnects) +{ + g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf); + size_t i; + + for (i = 0; i < ninterconnects; i++) { + const virNumaInterconnect *l = &interconnects[i]; + g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER; + const char *elem = NULL; + + switch (l->type) { + case VIR_NUMA_INTERCONNECT_TYPE_LATENCY: + elem = "latency"; + break; + case VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH: + elem = "bandwidth"; + break; + } + + virBufferAsprintf(&attrBuf, + " initiator='%u' target='%u'", + l->initiator, l->target); + + if (l->cache > 0) { + virBufferAsprintf(&attrBuf, + " cache='%u'", + l->cache); + } + + virBufferAsprintf(&attrBuf, + " type='%s' value='%lu'", + virMemoryLatencyTypeToString(l->accessType), + l->value); + + if (l->type == VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH) + virBufferAddLit(&attrBuf, " unit='KiB'"); + + virXMLFormatElement(&childBuf, elem, &attrBuf, NULL); + } + + virXMLFormatElement(buf, "interconnects", NULL, &childBuf); +} diff --git a/src/conf/numa_conf.h b/src/conf/numa_conf.h index 5baf68348c..1d1e816870 100644 --- a/src/conf/numa_conf.h +++ b/src/conf/numa_conf.h @@ -272,3 +272,19 @@ struct _virNumaCache { void virNumaCacheFormat(virBuffer *buf, const virNumaCache *caches, size_t ncaches); + +typedef struct _virNumaInterconnect virNumaInterconnect; +struct _virNumaInterconnect { + virNumaInterconnectType type; /* whether structure describes latency + or bandwidth */ + unsigned int initiator; /* the initiator NUMA node */ + unsigned int target; /* the target NUMA node */ + unsigned int cache; /* the target cache on @target; if 0 then the + memory on @target */ + virMemoryLatency accessType; /* what type of access is defined */ + unsigned long value; /* value itself */ +}; + +void virNumaInterconnectFormat(virBuffer *buf, + const virNumaInterconnect *interconnects, + size_t ninterconnects); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index d7f6dfd534..8f0945f581 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -915,6 +915,7 @@ virNumaCacheFormat; virNumaCachePolicyTypeFromString; virNumaCachePolicyTypeToString; virNumaDistanceFormat; +virNumaInterconnectFormat; # conf/nwfilter_conf.h -- 2.31.1

Links between NUMA nodes can have different latencies and bandwidths. This info is newly defined in ACPI 6.2 under Heterogeneous Memory Attribute Table (HMAT) table. Linux kernel learned how to report these values under sysfs and thus we can expose them in our capabilities XML. The sysfs interface is documented in kernel's Documentation/admin-guide/mm/numaperf.rst. Long story short, two nodes can be in initiator-target relationship. A node can be initiator if it has a CPU or a device that's capable of initiating memory transfer. Therefore a node that has just memory can only be target. An initiator-target link can then have any combination of {bandwidth, latency} - {access, read, write} attribute (6 in total). However, the standard says access is applicable iff read and write values are the same. Therefore, we really have just four combinations of attributes: bandwidth-read, bandwidth-write, latency-read, latency-write. This is the combination that kernel reports anyway. Then, under /sys/system/devices/node/nodeX/acccess0/initiators we find values for those 4 attributes and also symlinks named "nodeN" which then represent initiators to nodeX. For instance: /sys/system/node/node1/access0/initiators/node0 -> ../../node0 /sys/system/node/node1/access0/initiators/read_bandwidth /sys/system/node/node1/access0/initiators/read_latency /sys/system/node/node1/access0/initiators/write_bandwidth /sys/system/node/node1/access0/initiators/write_latency This means that node0 is initiator and node1 is target and values of the interconnect can be read. In theory, there can be separate links to memory side caches too (e.g. one link from node X to node Y's main memory, another from node X to node Y's L1 cache, another one to L2 cache and so on). But sysfs does not express this relationship just yet. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1786309 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- docs/schemas/capability.rng | 3 + src/conf/capabilities.c | 181 +++++++++++++++++++++++++++++++++++- src/conf/capabilities.h | 1 + 3 files changed, 184 insertions(+), 1 deletion(-) diff --git a/docs/schemas/capability.rng b/docs/schemas/capability.rng index 5c1fb3607c..66dba829a8 100644 --- a/docs/schemas/capability.rng +++ b/docs/schemas/capability.rng @@ -138,6 +138,9 @@ <ref name="cell"/> </oneOrMore> </element> + <optional> + <ref name="numaInterconnects"/> + </optional> </element> </define> diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 7b60676070..8f2d7b75d7 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -191,7 +191,8 @@ virCapabilitiesHostNUMAUnref(virCapsHostNUMA *caps) if (g_atomic_int_dec_and_test(&caps->refs)) { g_ptr_array_unref(caps->cells); - + if (caps->interconnects) + g_array_unref(caps->interconnects); g_free(caps); } } @@ -890,6 +891,13 @@ virCapabilitiesHostNUMAFormat(virBuffer *buf, } virBufferAdjustIndent(buf, -2); virBufferAddLit(buf, "</cells>\n"); + + if (caps->interconnects) { + const virNumaInterconnect *interconnects; + interconnects = &g_array_index(caps->interconnects, virNumaInterconnect, 0); + virNumaInterconnectFormat(buf, interconnects, caps->interconnects->len); + } + virBufferAdjustIndent(buf, -2); virBufferAddLit(buf, "</topology>\n"); return 0; @@ -1735,6 +1743,174 @@ virCapabilitiesHostNUMAInitFake(virCapsHostNUMA *caps) } +static void +virCapabilitiesHostInsertHMAT(GArray *interconnects, + int initiator, + int target, + unsigned int read_bandwidth, + unsigned int write_bandwidth, + unsigned int read_latency, + unsigned int write_latency) +{ + virNumaInterconnect ni; + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH, + initiator, target, 0, VIR_MEMORY_LATENCY_READ, read_bandwidth}; + g_array_append_val(interconnects, ni); + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH, + initiator, target, 0, VIR_MEMORY_LATENCY_WRITE, write_bandwidth}; + g_array_append_val(interconnects, ni); + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_LATENCY, + initiator, target, 0, VIR_MEMORY_LATENCY_READ, read_latency}; + g_array_append_val(interconnects, ni); + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_LATENCY, + initiator, target, 0, VIR_MEMORY_LATENCY_WRITE, write_latency}; + g_array_append_val(interconnects, ni); +} + + +static int +virCapabilitiesHostNUMAInitInterconnectsNode(GArray *interconnects, + int node) +{ + g_autofree char *path = NULL; + g_autofree char *initPath = NULL; + g_autoptr(DIR) dir = NULL; + int direrr = 0; + struct dirent *entry; + unsigned int read_bandwidth; + unsigned int write_bandwidth; + unsigned int read_latency; + unsigned int write_latency; + + path = g_strdup_printf(SYSFS_SYSTEM_PATH "/node/node%d/access0", node); + + if (!virFileExists(path)) + return 0; + + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "read_bandwidth", + &read_bandwidth) < 0) + return -1; + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "write_bandwidth", + &write_bandwidth) < 0) + return -1; + + /* Bandwidths are read in MiB but stored in KiB */ + read_bandwidth <<= 10; + write_bandwidth <<= 10; + + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "read_latency", + &read_latency) < 0) + return -1; + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "write_latency", + &write_latency) < 0) + return -1; + + initPath = g_strdup_printf("%s/initiators", path); + + if (virDirOpen(&dir, initPath) < 0) + return -1; + + while ((direrr = virDirRead(dir, &entry, path)) > 0) { + const char *dname = STRSKIP(entry->d_name, "node"); + int initNode; + + if (!dname) + continue; + + if (virStrToLong_i(dname, NULL, 10, &initNode) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("unable to parse %s"), + entry->d_name); + return -1; + } + + virCapabilitiesHostInsertHMAT(interconnects, + initNode, node, + read_bandwidth, + write_bandwidth, + read_latency, + write_latency); + } + + return 0; +} + + +static int +virCapsHostNUMAInterconnectComparator(const void *a, + const void *b) +{ + const virNumaInterconnect *aa = a; + const virNumaInterconnect *bb = b; + + if (aa->type != bb->type) + return aa->type - bb->type; + + if (aa->initiator != bb->initiator) + return aa->initiator - bb->initiator; + + if (aa->target != bb->target) + return aa->target - bb->target; + + if (aa->cache != bb->cache) + return aa->cache - bb->cache; + + if (aa->accessType != bb->accessType) + return aa->accessType - bb->accessType; + + return aa->value - bb->value; +} + + +static int +virCapabilitiesHostNUMAInitInterconnects(virCapsHostNUMA *caps) +{ + g_autoptr(DIR) dir = NULL; + int direrr = 0; + struct dirent *entry; + g_autofree char *path = NULL; + g_autoptr(GArray) interconnects = g_array_new(FALSE, FALSE, sizeof(virNumaInterconnect)); + + path = g_strdup_printf(SYSFS_SYSTEM_PATH "/node/"); + + if (virDirOpenIfExists(&dir, path) < 0) + return -1; + + while (dir && (direrr = virDirRead(dir, &entry, path)) > 0) { + const char *dname = STRSKIP(entry->d_name, "node"); + int node; + + if (!dname) + continue; + + if (virStrToLong_i(dname, NULL, 10, &node) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("unable to parse %s"), + entry->d_name); + return -1; + } + + if (virCapabilitiesHostNUMAInitInterconnectsNode(interconnects, node) < 0) + return -1; + } + + if (interconnects->len > 0) { + g_array_sort(interconnects, virCapsHostNUMAInterconnectComparator); + caps->interconnects = g_steal_pointer(&interconnects); + } + + return 0; +} + + static int virCapabilitiesHostNUMAInitReal(virCapsHostNUMA *caps) { @@ -1795,6 +1971,9 @@ virCapabilitiesHostNUMAInitReal(virCapsHostNUMA *caps) &caches); } + if (virCapabilitiesHostNUMAInitInterconnects(caps) < 0) + goto cleanup; + ret = 0; cleanup: diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h index 334b361e7a..1b99202c9b 100644 --- a/src/conf/capabilities.h +++ b/src/conf/capabilities.h @@ -114,6 +114,7 @@ struct _virCapsHostNUMACell { struct _virCapsHostNUMA { gint refs; GPtrArray *cells; + GArray *interconnects; /* virNumaInterconnect */ }; struct _virCapsHostSecModelLabel { -- 2.31.1

On Mon, May 31, 2021 at 10:36:10AM +0200, Michal Privoznik wrote:
Links between NUMA nodes can have different latencies and bandwidths. This info is newly defined in ACPI 6.2 under Heterogeneous Memory Attribute Table (HMAT) table. Linux kernel learned how to report these values under sysfs and thus we can expose them in our capabilities XML. The sysfs interface is documented in kernel's Documentation/admin-guide/mm/numaperf.rst.
Long story short, two nodes can be in initiator-target relationship. A node can be initiator if it has a CPU or a device that's capable of initiating memory transfer. Therefore a node that has just memory can only be target. An initiator-target link can then have any combination of {bandwidth, latency} - {access, read, write} attribute (6 in total). However, the standard says access is applicable iff read and write values are the same. Therefore, we really have just four combinations of attributes: bandwidth-read, bandwidth-write, latency-read, latency-write.
This is the combination that kernel reports anyway.
Then, under /sys/system/devices/node/nodeX/acccess0/initiators we find values for those 4 attributes and also symlinks named "nodeN" which then represent initiators to nodeX. For instance:
/sys/system/node/node1/access0/initiators/node0 -> ../../node0 /sys/system/node/node1/access0/initiators/read_bandwidth /sys/system/node/node1/access0/initiators/read_latency /sys/system/node/node1/access0/initiators/write_bandwidth /sys/system/node/node1/access0/initiators/write_latency
This means that node0 is initiator and node1 is target and values of the interconnect can be read.
In theory, there can be separate links to memory side caches too (e.g. one link from node X to node Y's main memory, another from node X to node Y's L1 cache, another one to L2 cache and so on). But sysfs does not express this relationship just yet.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1786309 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- docs/schemas/capability.rng | 3 + src/conf/capabilities.c | 181 +++++++++++++++++++++++++++++++++++- src/conf/capabilities.h | 1 + 3 files changed, 184 insertions(+), 1 deletion(-)
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 7b60676070..8f2d7b75d7 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -1735,6 +1743,174 @@ virCapabilitiesHostNUMAInitFake(virCapsHostNUMA *caps) }
+static void +virCapabilitiesHostInsertHMAT(GArray *interconnects, + int initiator, + int target, + unsigned int read_bandwidth, + unsigned int write_bandwidth, + unsigned int read_latency, + unsigned int write_latency) +{ + virNumaInterconnect ni; + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH, + initiator, target, 0, VIR_MEMORY_LATENCY_READ, read_bandwidth}; + g_array_append_val(interconnects, ni); + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH, + initiator, target, 0, VIR_MEMORY_LATENCY_WRITE, write_bandwidth}; + g_array_append_val(interconnects, ni); + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_LATENCY, + initiator, target, 0, VIR_MEMORY_LATENCY_READ, read_latency}; + g_array_append_val(interconnects, ni); + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_LATENCY, + initiator, target, 0, VIR_MEMORY_LATENCY_WRITE, write_latency}; + g_array_append_val(interconnects, ni); +} + + +static int +virCapabilitiesHostNUMAInitInterconnectsNode(GArray *interconnects, + int node) +{ + g_autofree char *path = NULL; + g_autofree char *initPath = NULL; + g_autoptr(DIR) dir = NULL; + int direrr = 0; + struct dirent *entry; + unsigned int read_bandwidth; + unsigned int write_bandwidth; + unsigned int read_latency; + unsigned int write_latency; + + path = g_strdup_printf(SYSFS_SYSTEM_PATH "/node/node%d/access0", node); +
How come you are not checking the relationships for the other access classes? Missing or forgotten code change? Or do I misunderstand the documentation?
+ if (!virFileExists(path)) + return 0; + + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "read_bandwidth", + &read_bandwidth) < 0) + return -1; + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "write_bandwidth", + &write_bandwidth) < 0) + return -1; + + /* Bandwidths are read in MiB but stored in KiB */ + read_bandwidth <<= 10; + write_bandwidth <<= 10; + + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "read_latency", + &read_latency) < 0) + return -1; + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "write_latency", + &write_latency) < 0) + return -1; + + initPath = g_strdup_printf("%s/initiators", path); + + if (virDirOpen(&dir, initPath) < 0) + return -1; + + while ((direrr = virDirRead(dir, &entry, path)) > 0) { + const char *dname = STRSKIP(entry->d_name, "node"); + int initNode; + + if (!dname) + continue; + + if (virStrToLong_i(dname, NULL, 10, &initNode) < 0) {
I do not see the value having an "unused" state, e.g. with `-1`, so I think it should be unsigned. Similarly below [1]
+ virReportError(VIR_ERR_INTERNAL_ERROR, + _("unable to parse %s"), + entry->d_name); + return -1; + } + + virCapabilitiesHostInsertHMAT(interconnects, + initNode, node, + read_bandwidth, + write_bandwidth, + read_latency, + write_latency); + } + + return 0; +} + + +static int +virCapsHostNUMAInterconnectComparator(const void *a, + const void *b) +{ + const virNumaInterconnect *aa = a; + const virNumaInterconnect *bb = b; + + if (aa->type != bb->type) + return aa->type - bb->type; + + if (aa->initiator != bb->initiator) + return aa->initiator - bb->initiator; + + if (aa->target != bb->target) + return aa->target - bb->target; + + if (aa->cache != bb->cache) + return aa->cache - bb->cache; + + if (aa->accessType != bb->accessType) + return aa->accessType - bb->accessType; + + return aa->value - bb->value; +} + + +static int +virCapabilitiesHostNUMAInitInterconnects(virCapsHostNUMA *caps) +{ + g_autoptr(DIR) dir = NULL; + int direrr = 0; + struct dirent *entry; + g_autofree char *path = NULL; + g_autoptr(GArray) interconnects = g_array_new(FALSE, FALSE, sizeof(virNumaInterconnect)); + + path = g_strdup_printf(SYSFS_SYSTEM_PATH "/node/");
This could just be a: const char *path = SYSFS_SYSTEM_PATH "/node/";
+ + if (virDirOpenIfExists(&dir, path) < 0) + return -1; + + while (dir && (direrr = virDirRead(dir, &entry, path)) > 0) { + const char *dname = STRSKIP(entry->d_name, "node"); + int node; + + if (!dname) + continue; + + if (virStrToLong_i(dname, NULL, 10, &node) < 0) {
[1] again, unsigned?

On 6/4/21 2:50 PM, Martin Kletzander wrote:
On Mon, May 31, 2021 at 10:36:10AM +0200, Michal Privoznik wrote:
Links between NUMA nodes can have different latencies and bandwidths. This info is newly defined in ACPI 6.2 under Heterogeneous Memory Attribute Table (HMAT) table. Linux kernel learned how to report these values under sysfs and thus we can expose them in our capabilities XML. The sysfs interface is documented in kernel's Documentation/admin-guide/mm/numaperf.rst.
Long story short, two nodes can be in initiator-target relationship. A node can be initiator if it has a CPU or a device that's capable of initiating memory transfer. Therefore a node that has just memory can only be target. An initiator-target link can then have any combination of {bandwidth, latency} - {access, read, write} attribute (6 in total). However, the standard says access is applicable iff read and write values are the same. Therefore, we really have just four combinations of attributes: bandwidth-read, bandwidth-write, latency-read, latency-write.
This is the combination that kernel reports anyway.
Then, under /sys/system/devices/node/nodeX/acccess0/initiators we find values for those 4 attributes and also symlinks named "nodeN" which then represent initiators to nodeX. For instance:
/sys/system/node/node1/access0/initiators/node0 -> ../../node0 /sys/system/node/node1/access0/initiators/read_bandwidth /sys/system/node/node1/access0/initiators/read_latency /sys/system/node/node1/access0/initiators/write_bandwidth /sys/system/node/node1/access0/initiators/write_latency
This means that node0 is initiator and node1 is target and values of the interconnect can be read.
In theory, there can be separate links to memory side caches too (e.g. one link from node X to node Y's main memory, another from node X to node Y's L1 cache, another one to L2 cache and so on). But sysfs does not express this relationship just yet.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1786309 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- docs/schemas/capability.rng | 3 + src/conf/capabilities.c | 181 +++++++++++++++++++++++++++++++++++- src/conf/capabilities.h | 1 + 3 files changed, 184 insertions(+), 1 deletion(-)
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 7b60676070..8f2d7b75d7 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -1735,6 +1743,174 @@ virCapabilitiesHostNUMAInitFake(virCapsHostNUMA *caps) }
+static void +virCapabilitiesHostInsertHMAT(GArray *interconnects, + int initiator, + int target, + unsigned int read_bandwidth, + unsigned int write_bandwidth, + unsigned int read_latency, + unsigned int write_latency) +{ + virNumaInterconnect ni; + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH, + initiator, target, 0, VIR_MEMORY_LATENCY_READ, read_bandwidth}; + g_array_append_val(interconnects, ni); + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_BANDWIDTH, + initiator, target, 0, VIR_MEMORY_LATENCY_WRITE, write_bandwidth}; + g_array_append_val(interconnects, ni); + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_LATENCY, + initiator, target, 0, VIR_MEMORY_LATENCY_READ, read_latency}; + g_array_append_val(interconnects, ni); + + ni = (virNumaInterconnect) { VIR_NUMA_INTERCONNECT_TYPE_LATENCY, + initiator, target, 0, VIR_MEMORY_LATENCY_WRITE, write_latency}; + g_array_append_val(interconnects, ni); +} + + +static int +virCapabilitiesHostNUMAInitInterconnectsNode(GArray *interconnects, + int node) +{ + g_autofree char *path = NULL; + g_autofree char *initPath = NULL; + g_autoptr(DIR) dir = NULL; + int direrr = 0; + struct dirent *entry; + unsigned int read_bandwidth; + unsigned int write_bandwidth; + unsigned int read_latency; + unsigned int write_latency; + + path = g_strdup_printf(SYSFS_SYSTEM_PATH "/node/node%d/access0", node); +
How come you are not checking the relationships for the other access classes? Missing or forgotten code change? Or do I misunderstand the documentation?
That's mostly because I don't quite understand what different access classes are. I mean, my initial hunch was that it's for different caches, as in "access0" would be for generic memory, "access1" would be for L1 cache and so on. But that did not correspond with my findings when introspecting sysfs with the XML config from 10/10. I mean, "access1" had the same values as "access0". And I don't understand it any better after reading kernel docs either.
+ if (!virFileExists(path)) + return 0; + + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "read_bandwidth", + &read_bandwidth) < 0) + return -1; + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "write_bandwidth", + &write_bandwidth) < 0) + return -1; + + /* Bandwidths are read in MiB but stored in KiB */ + read_bandwidth <<= 10; + write_bandwidth <<= 10; + + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "read_latency", + &read_latency) < 0) + return -1; + if (virCapabilitiesGetNodeCacheReadFile(path, "initiators", + "write_latency", + &write_latency) < 0) + return -1; + + initPath = g_strdup_printf("%s/initiators", path); + + if (virDirOpen(&dir, initPath) < 0) + return -1; + + while ((direrr = virDirRead(dir, &entry, path)) > 0) { + const char *dname = STRSKIP(entry->d_name, "node"); + int initNode; + + if (!dname) + continue; + + if (virStrToLong_i(dname, NULL, 10, &initNode) < 0) {
I do not see the value having an "unused" state, e.g. with `-1`, so I think it should be unsigned. Similarly below [1]
Fair enough. I though I saw "node%d" used in kernel so I went with signed int. But it doesn't really matter - nobody has a machine with 2 billions of NUMA nodes :-) Michal

This test was generated on a guest with the following NUMA configuration: <numa> <cell id='0' cpus='0-23' memory='4194304' unit='KiB' discard='yes'> <cache level='1' associativity='direct' policy='writeback'> <size value='10' unit='KiB'/> <line value='8' unit='B'/> </cache> <cache level='2' associativity='full' policy='writethrough'> <size value='128' unit='KiB'/> <line value='16' unit='B'/> </cache> </cell> <cell id='1' memory='2097152' unit='KiB'> <cache level='1' associativity='direct' policy='writeback'> <size value='10' unit='KiB'/> <line value='8' unit='B'/> </cache> </cell> <interconnects> <latency initiator='0' target='0' type='access' value='5'/> <latency initiator='0' target='0' type='read' value='6'/> <latency initiator='0' target='0' type='write' value='7'/> <latency initiator='0' target='1' type='access' value='10'/> <latency initiator='0' target='1' type='read' value='11'/> <latency initiator='0' target='1' type='write' value='12'/> <bandwidth initiator='0' target='0' type='access' value='204800' unit='KiB'/> <bandwidth initiator='0' target='0' type='read' value='205824' unit='KiB'/> <bandwidth initiator='0' target='0' type='write' value='206848' unit='KiB'/> <bandwidth initiator='0' target='0' cache='1' type='access' value='208896' unit='KiB'/> <bandwidth initiator='0' target='0' cache='1' type='read' value='209920' unit='KiB'/> <bandwidth initiator='0' target='0' cache='1' type='write' value='210944' unit='KiB'/> <bandwidth initiator='0' target='1' type='access' value='102400' unit='KiB'/> <bandwidth initiator='0' target='1' type='read' value='103424' unit='KiB'/> <bandwidth initiator='0' target='1' type='write' value='104448' unit='KiB'/> <bandwidth initiator='0' target='1' cache='1' type='access' value='105472' unit='KiB'/> <bandwidth initiator='0' target='1' cache='1' type='read' value='106496' unit='KiB'/> <bandwidth initiator='0' target='1' cache='1' type='write' value='107520' unit='KiB'/> </interconnects> </numa> The sysfs content was also copied over from the VM but only those files which are accessed in the test are stored in the repo. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- build-aux/syntax-check.mk | 2 +- .../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 | 2 + 345 files changed, 450 insertions(+), 1 deletion(-) 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 diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk index 552d639119..be55f26e19 100644 --- a/build-aux/syntax-check.mk +++ b/build-aux/syntax-check.mk @@ -1835,7 +1835,7 @@ exclude_file_name_regexp--sc_prohibit_mixed_case_abbreviations = \ ^src/(vbox/vbox_CAPI.*.h|esx/esx_vi.(c|h)|esx/esx_storage_backend_iscsi.c)$$ exclude_file_name_regexp--sc_prohibit_empty_first_line = \ - ^(src/esx/README|tests/(vmwarever|virhostcpu)data/.*)$$ + ^(src/esx/README|tests/(vmwarever|virhostcpu|vircaps2xml)data/.*)$$ exclude_file_name_regexp--sc_prohibit_useless_translation = \ ^tests/virpolkittest.c diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/physical_package_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/physical_package_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/thread_siblings_list new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu0/topology/thread_siblings_list @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/id @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/physical_package_id new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/physical_package_id @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/thread_siblings_list new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu1/topology/thread_siblings_list @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/id new file mode 100644 index 0000000000..f599e28b8a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/id @@ -0,0 +1 @@ +10 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..f599e28b8a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +10 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/physical_package_id new file mode 100644 index 0000000000..f599e28b8a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/physical_package_id @@ -0,0 +1 @@ +10 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/thread_siblings_list new file mode 100644 index 0000000000..f599e28b8a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu10/topology/thread_siblings_list @@ -0,0 +1 @@ +10 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/id new file mode 100644 index 0000000000..b4de394767 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/id @@ -0,0 +1 @@ +11 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..b4de394767 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +11 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/physical_package_id new file mode 100644 index 0000000000..b4de394767 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/physical_package_id @@ -0,0 +1 @@ +11 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/thread_siblings_list new file mode 100644 index 0000000000..b4de394767 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu11/topology/thread_siblings_list @@ -0,0 +1 @@ +11 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/id new file mode 100644 index 0000000000..48082f72f0 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/id @@ -0,0 +1 @@ +12 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..48082f72f0 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +12 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/physical_package_id new file mode 100644 index 0000000000..48082f72f0 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/physical_package_id @@ -0,0 +1 @@ +12 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/thread_siblings_list new file mode 100644 index 0000000000..48082f72f0 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu12/topology/thread_siblings_list @@ -0,0 +1 @@ +12 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/id new file mode 100644 index 0000000000..b1bd38b62a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/id @@ -0,0 +1 @@ +13 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..b1bd38b62a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +13 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/physical_package_id new file mode 100644 index 0000000000..b1bd38b62a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/physical_package_id @@ -0,0 +1 @@ +13 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/thread_siblings_list new file mode 100644 index 0000000000..b1bd38b62a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu13/topology/thread_siblings_list @@ -0,0 +1 @@ +13 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/id new file mode 100644 index 0000000000..8351c19397 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/id @@ -0,0 +1 @@ +14 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..8351c19397 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +14 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/physical_package_id new file mode 100644 index 0000000000..8351c19397 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/physical_package_id @@ -0,0 +1 @@ +14 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/thread_siblings_list new file mode 100644 index 0000000000..8351c19397 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu14/topology/thread_siblings_list @@ -0,0 +1 @@ +14 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/id new file mode 100644 index 0000000000..60d3b2f4a4 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/id @@ -0,0 +1 @@ +15 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..60d3b2f4a4 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +15 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/physical_package_id new file mode 100644 index 0000000000..60d3b2f4a4 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/physical_package_id @@ -0,0 +1 @@ +15 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/thread_siblings_list new file mode 100644 index 0000000000..60d3b2f4a4 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu15/topology/thread_siblings_list @@ -0,0 +1 @@ +15 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/id new file mode 100644 index 0000000000..b6a7d89c68 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/id @@ -0,0 +1 @@ +16 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..b6a7d89c68 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +16 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/physical_package_id new file mode 100644 index 0000000000..b6a7d89c68 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/physical_package_id @@ -0,0 +1 @@ +16 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/thread_siblings_list new file mode 100644 index 0000000000..b6a7d89c68 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu16/topology/thread_siblings_list @@ -0,0 +1 @@ +16 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/id new file mode 100644 index 0000000000..98d9bcb75a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/id @@ -0,0 +1 @@ +17 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..98d9bcb75a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +17 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/physical_package_id new file mode 100644 index 0000000000..98d9bcb75a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/physical_package_id @@ -0,0 +1 @@ +17 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/thread_siblings_list new file mode 100644 index 0000000000..98d9bcb75a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu17/topology/thread_siblings_list @@ -0,0 +1 @@ +17 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/id new file mode 100644 index 0000000000..3c032078a4 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/id @@ -0,0 +1 @@ +18 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..3c032078a4 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +18 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/physical_package_id new file mode 100644 index 0000000000..3c032078a4 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/physical_package_id @@ -0,0 +1 @@ +18 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/thread_siblings_list new file mode 100644 index 0000000000..3c032078a4 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu18/topology/thread_siblings_list @@ -0,0 +1 @@ +18 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/id new file mode 100644 index 0000000000..d6b24041cf --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/id @@ -0,0 +1 @@ +19 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..d6b24041cf --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +19 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/physical_package_id new file mode 100644 index 0000000000..d6b24041cf --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/physical_package_id @@ -0,0 +1 @@ +19 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/thread_siblings_list new file mode 100644 index 0000000000..d6b24041cf --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu19/topology/thread_siblings_list @@ -0,0 +1 @@ +19 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/id new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/id @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/physical_package_id new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/physical_package_id @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/thread_siblings_list new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu2/topology/thread_siblings_list @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/id new file mode 100644 index 0000000000..209e3ef4b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/id @@ -0,0 +1 @@ +20 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..209e3ef4b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +20 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/physical_package_id new file mode 100644 index 0000000000..209e3ef4b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/physical_package_id @@ -0,0 +1 @@ +20 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/thread_siblings_list new file mode 100644 index 0000000000..209e3ef4b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu20/topology/thread_siblings_list @@ -0,0 +1 @@ +20 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/id new file mode 100644 index 0000000000..aabe6ec390 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/id @@ -0,0 +1 @@ +21 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..aabe6ec390 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +21 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/physical_package_id new file mode 100644 index 0000000000..aabe6ec390 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/physical_package_id @@ -0,0 +1 @@ +21 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/thread_siblings_list new file mode 100644 index 0000000000..aabe6ec390 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu21/topology/thread_siblings_list @@ -0,0 +1 @@ +21 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/id new file mode 100644 index 0000000000..2bd5a0a98a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/id @@ -0,0 +1 @@ +22 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..2bd5a0a98a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +22 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/physical_package_id new file mode 100644 index 0000000000..2bd5a0a98a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/physical_package_id @@ -0,0 +1 @@ +22 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/thread_siblings_list new file mode 100644 index 0000000000..2bd5a0a98a --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu22/topology/thread_siblings_list @@ -0,0 +1 @@ +22 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/id new file mode 100644 index 0000000000..409940768f --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/id @@ -0,0 +1 @@ +23 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..409940768f --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +23 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/physical_package_id new file mode 100644 index 0000000000..409940768f --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/physical_package_id @@ -0,0 +1 @@ +23 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/thread_siblings_list new file mode 100644 index 0000000000..409940768f --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu23/topology/thread_siblings_list @@ -0,0 +1 @@ +23 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/id new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/id @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/physical_package_id new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/physical_package_id @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/thread_siblings_list new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu3/topology/thread_siblings_list @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/id new file mode 100644 index 0000000000..b8626c4cff --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/id @@ -0,0 +1 @@ +4 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..b8626c4cff --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +4 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/physical_package_id new file mode 100644 index 0000000000..b8626c4cff --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/physical_package_id @@ -0,0 +1 @@ +4 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/thread_siblings_list new file mode 100644 index 0000000000..b8626c4cff --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu4/topology/thread_siblings_list @@ -0,0 +1 @@ +4 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/id new file mode 100644 index 0000000000..7ed6ff82de --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/id @@ -0,0 +1 @@ +5 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..7ed6ff82de --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +5 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/physical_package_id new file mode 100644 index 0000000000..7ed6ff82de --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/physical_package_id @@ -0,0 +1 @@ +5 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/thread_siblings_list new file mode 100644 index 0000000000..7ed6ff82de --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu5/topology/thread_siblings_list @@ -0,0 +1 @@ +5 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/id new file mode 100644 index 0000000000..1e8b314962 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/id @@ -0,0 +1 @@ +6 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..1e8b314962 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +6 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/physical_package_id new file mode 100644 index 0000000000..1e8b314962 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/physical_package_id @@ -0,0 +1 @@ +6 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/thread_siblings_list new file mode 100644 index 0000000000..1e8b314962 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu6/topology/thread_siblings_list @@ -0,0 +1 @@ +6 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/id new file mode 100644 index 0000000000..7f8f011eb7 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/id @@ -0,0 +1 @@ +7 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..7f8f011eb7 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +7 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/physical_package_id new file mode 100644 index 0000000000..7f8f011eb7 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/physical_package_id @@ -0,0 +1 @@ +7 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/thread_siblings_list new file mode 100644 index 0000000000..7f8f011eb7 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu7/topology/thread_siblings_list @@ -0,0 +1 @@ +7 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/id new file mode 100644 index 0000000000..45a4fb75db --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/id @@ -0,0 +1 @@ +8 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..45a4fb75db --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +8 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/physical_package_id new file mode 100644 index 0000000000..45a4fb75db --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/physical_package_id @@ -0,0 +1 @@ +8 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/thread_siblings_list new file mode 100644 index 0000000000..45a4fb75db --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu8/topology/thread_siblings_list @@ -0,0 +1 @@ +8 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index0/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index0/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index0/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index1/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index1/level new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index1/level @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index2/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index2/level new file mode 100644 index 0000000000..0cfbf08886 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index2/level @@ -0,0 +1 @@ +2 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/id new file mode 100644 index 0000000000..ec635144f6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/id @@ -0,0 +1 @@ +9 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/level b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/level new file mode 100644 index 0000000000..00750edc07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/level @@ -0,0 +1 @@ +3 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/shared_cpu_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/shared_cpu_list new file mode 100644 index 0000000000..ec635144f6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/shared_cpu_list @@ -0,0 +1 @@ +9 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/size b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/size new file mode 100644 index 0000000000..e7252eb3b6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/size @@ -0,0 +1 @@ +16384K diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/type b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/type new file mode 100644 index 0000000000..e4fd9dccda --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/cache/index3/type @@ -0,0 +1 @@ +Unified diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/core_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/core_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/core_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/die_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/die_id new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/die_id @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/physical_package_id b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/physical_package_id new file mode 100644 index 0000000000..ec635144f6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/physical_package_id @@ -0,0 +1 @@ +9 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/thread_siblings_list b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/thread_siblings_list new file mode 100644 index 0000000000..ec635144f6 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/cpu9/topology/thread_siblings_list @@ -0,0 +1 @@ +9 diff --git a/tests/vircaps2xmldata/linux-hmat/system/cpu/online b/tests/vircaps2xmldata/linux-hmat/system/cpu/online new file mode 100644 index 0000000000..bb381c7835 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/cpu/online @@ -0,0 +1 @@ +0-23 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/node0 b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/node0 new file mode 120000 index 0000000000..3fb87f360e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/node0 @@ -0,0 +1 @@ +../../../node0 \ No newline at end of file diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/read_bandwidth b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/read_bandwidth new file mode 100644 index 0000000000..3bc92d44ac --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/read_bandwidth @@ -0,0 +1 @@ +201 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/read_latency b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/read_latency new file mode 100644 index 0000000000..1e8b314962 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/read_latency @@ -0,0 +1 @@ +6 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/write_bandwidth b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/write_bandwidth new file mode 100644 index 0000000000..8f897c857d --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/write_bandwidth @@ -0,0 +1 @@ +202 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/write_latency b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/write_latency new file mode 100644 index 0000000000..7f8f011eb7 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/initiators/write_latency @@ -0,0 +1 @@ +7 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/targets/node0 b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/targets/node0 new file mode 120000 index 0000000000..3fb87f360e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/targets/node0 @@ -0,0 +1 @@ +../../../node0 \ No newline at end of file diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/targets/node1 b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/targets/node1 new file mode 120000 index 0000000000..f0a5ec8766 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access0/targets/node1 @@ -0,0 +1 @@ +../../../node1 \ No newline at end of file diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/node0 b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/node0 new file mode 120000 index 0000000000..3fb87f360e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/node0 @@ -0,0 +1 @@ +../../../node0 \ No newline at end of file diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/read_bandwidth b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/read_bandwidth new file mode 100644 index 0000000000..3bc92d44ac --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/read_bandwidth @@ -0,0 +1 @@ +201 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/read_latency b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/read_latency new file mode 100644 index 0000000000..1e8b314962 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/read_latency @@ -0,0 +1 @@ +6 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/write_bandwidth b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/write_bandwidth new file mode 100644 index 0000000000..8f897c857d --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/write_bandwidth @@ -0,0 +1 @@ +202 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/write_latency b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/write_latency new file mode 100644 index 0000000000..7f8f011eb7 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/initiators/write_latency @@ -0,0 +1 @@ +7 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/targets/node0 b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/targets/node0 new file mode 120000 index 0000000000..3fb87f360e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/targets/node0 @@ -0,0 +1 @@ +../../../node0 \ No newline at end of file diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/targets/node1 b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/targets/node1 new file mode 120000 index 0000000000..f0a5ec8766 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/access1/targets/node1 @@ -0,0 +1 @@ +../../../node1 \ No newline at end of file diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/cpulist b/tests/vircaps2xmldata/linux-hmat/system/node/node0/cpulist new file mode 100644 index 0000000000..bb381c7835 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/cpulist @@ -0,0 +1 @@ +0-23 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/distance b/tests/vircaps2xmldata/linux-hmat/system/node/node0/distance new file mode 100644 index 0000000000..ed40cec79b --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/distance @@ -0,0 +1 @@ +10 20 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/free_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/free_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/free_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/surplus_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/surplus_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-1048576kB/surplus_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/free_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/free_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/free_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/surplus_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/surplus_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/hugepages/hugepages-2048kB/surplus_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/indexing b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/indexing new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/indexing @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/line_size b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/line_size new file mode 100644 index 0000000000..45a4fb75db --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/line_size @@ -0,0 +1 @@ +8 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/size b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/size new file mode 100644 index 0000000000..7b16a10f97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/size @@ -0,0 +1 @@ +10240 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/write_policy b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/write_policy new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index1/write_policy @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/indexing b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/indexing new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/indexing @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/line_size b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/line_size new file mode 100644 index 0000000000..b6a7d89c68 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/line_size @@ -0,0 +1 @@ +16 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/size b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/size new file mode 100644 index 0000000000..b71078fd07 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/size @@ -0,0 +1 @@ +131072 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/write_policy b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/write_policy new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node0/memory_side_cache/index2/write_policy @@ -0,0 +1 @@ +1 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/node0 b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/node0 new file mode 120000 index 0000000000..3fb87f360e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/node0 @@ -0,0 +1 @@ +../../../node0 \ No newline at end of file diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/read_bandwidth b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/read_bandwidth new file mode 100644 index 0000000000..398050c62c --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/read_bandwidth @@ -0,0 +1 @@ +101 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/read_latency b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/read_latency new file mode 100644 index 0000000000..b4de394767 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/read_latency @@ -0,0 +1 @@ +11 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/write_bandwidth b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/write_bandwidth new file mode 100644 index 0000000000..257e563266 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/write_bandwidth @@ -0,0 +1 @@ +102 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/write_latency b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/write_latency new file mode 100644 index 0000000000..48082f72f0 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access0/initiators/write_latency @@ -0,0 +1 @@ +12 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/node0 b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/node0 new file mode 120000 index 0000000000..3fb87f360e --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/node0 @@ -0,0 +1 @@ +../../../node0 \ No newline at end of file diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/read_bandwidth b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/read_bandwidth new file mode 100644 index 0000000000..398050c62c --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/read_bandwidth @@ -0,0 +1 @@ +101 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/read_latency b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/read_latency new file mode 100644 index 0000000000..b4de394767 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/read_latency @@ -0,0 +1 @@ +11 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/write_bandwidth b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/write_bandwidth new file mode 100644 index 0000000000..257e563266 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/write_bandwidth @@ -0,0 +1 @@ +102 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/write_latency b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/write_latency new file mode 100644 index 0000000000..48082f72f0 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/access1/initiators/write_latency @@ -0,0 +1 @@ +12 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/cpulist b/tests/vircaps2xmldata/linux-hmat/system/node/node1/cpulist new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/cpulist @@ -0,0 +1 @@ + diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/distance b/tests/vircaps2xmldata/linux-hmat/system/node/node1/distance new file mode 100644 index 0000000000..df502ea951 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/distance @@ -0,0 +1 @@ +20 10 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/free_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/free_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/free_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/surplus_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/surplus_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-1048576kB/surplus_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/free_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/free_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/free_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/surplus_hugepages b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/surplus_hugepages new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/hugepages/hugepages-2048kB/surplus_hugepages @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/indexing b/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/indexing new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/indexing @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/line_size b/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/line_size new file mode 100644 index 0000000000..45a4fb75db --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/line_size @@ -0,0 +1 @@ +8 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/size b/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/size new file mode 100644 index 0000000000..7b16a10f97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/size @@ -0,0 +1 @@ +10240 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/write_policy b/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/write_policy new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/node1/memory_side_cache/index1/write_policy @@ -0,0 +1 @@ +0 diff --git a/tests/vircaps2xmldata/linux-hmat/system/node/online b/tests/vircaps2xmldata/linux-hmat/system/node/online new file mode 100644 index 0000000000..8b0fab869c --- /dev/null +++ b/tests/vircaps2xmldata/linux-hmat/system/node/online @@ -0,0 +1 @@ +0-1 diff --git a/tests/vircaps2xmldata/vircaps-x86_64-hmat.xml b/tests/vircaps2xmldata/vircaps-x86_64-hmat.xml new file mode 100644 index 0000000000..6fe5751666 --- /dev/null +++ b/tests/vircaps2xmldata/vircaps-x86_64-hmat.xml @@ -0,0 +1,105 @@ +<capabilities> + + <host> + <cpu> + <arch>x86_64</arch> + </cpu> + <power_management/> + <iommu support='no'/> + <migration_features> + <live/> + </migration_features> + <topology> + <cells num='2'> + <cell id='0'> + <memory unit='KiB'>1048576</memory> + <pages unit='KiB' size='4'>2048</pages> + <pages unit='KiB' size='2048'>4096</pages> + <pages unit='KiB' size='1048576'>6144</pages> + <cache level='1' associativity='direct' policy='writeback'> + <size value='10' unit='KiB'/> + <line value='8' unit='B'/> + </cache> + <cache level='2' associativity='full' policy='writethrough'> + <size value='128' unit='KiB'/> + <line value='16' unit='B'/> + </cache> + <cpus num='24'> + <cpu id='0' socket_id='0' die_id='0' core_id='0' siblings='0'/> + <cpu id='1' socket_id='1' die_id='0' core_id='0' siblings='1'/> + <cpu id='2' socket_id='2' die_id='0' core_id='0' siblings='2'/> + <cpu id='3' socket_id='3' die_id='0' core_id='0' siblings='3'/> + <cpu id='4' socket_id='4' die_id='0' core_id='0' siblings='4'/> + <cpu id='5' socket_id='5' die_id='0' core_id='0' siblings='5'/> + <cpu id='6' socket_id='6' die_id='0' core_id='0' siblings='6'/> + <cpu id='7' socket_id='7' die_id='0' core_id='0' siblings='7'/> + <cpu id='8' socket_id='8' die_id='0' core_id='0' siblings='8'/> + <cpu id='9' socket_id='9' die_id='0' core_id='0' siblings='9'/> + <cpu id='10' socket_id='10' die_id='0' core_id='0' siblings='10'/> + <cpu id='11' socket_id='11' die_id='0' core_id='0' siblings='11'/> + <cpu id='12' socket_id='12' die_id='0' core_id='0' siblings='12'/> + <cpu id='13' socket_id='13' die_id='0' core_id='0' siblings='13'/> + <cpu id='14' socket_id='14' die_id='0' core_id='0' siblings='14'/> + <cpu id='15' socket_id='15' die_id='0' core_id='0' siblings='15'/> + <cpu id='16' socket_id='16' die_id='0' core_id='0' siblings='16'/> + <cpu id='17' socket_id='17' die_id='0' core_id='0' siblings='17'/> + <cpu id='18' socket_id='18' die_id='0' core_id='0' siblings='18'/> + <cpu id='19' socket_id='19' die_id='0' core_id='0' siblings='19'/> + <cpu id='20' socket_id='20' die_id='0' core_id='0' siblings='20'/> + <cpu id='21' socket_id='21' die_id='0' core_id='0' siblings='21'/> + <cpu id='22' socket_id='22' die_id='0' core_id='0' siblings='22'/> + <cpu id='23' socket_id='23' die_id='0' core_id='0' siblings='23'/> + </cpus> + </cell> + <cell id='1'> + <memory unit='KiB'>2097152</memory> + <pages unit='KiB' size='4'>4096</pages> + <pages unit='KiB' size='2048'>6144</pages> + <pages unit='KiB' size='1048576'>8192</pages> + <cache level='1' associativity='direct' policy='writeback'> + <size value='10' unit='KiB'/> + <line value='8' unit='B'/> + </cache> + <cpus num='0'/> + </cell> + </cells> + <interconnects> + <latency initiator='0' target='0' type='read' value='6'/> + <latency initiator='0' target='0' type='write' value='7'/> + <latency initiator='0' target='1' type='read' value='11'/> + <latency initiator='0' target='1' type='write' value='12'/> + <bandwidth initiator='0' target='0' type='read' value='205824' unit='KiB'/> + <bandwidth initiator='0' target='0' type='write' value='206848' unit='KiB'/> + <bandwidth initiator='0' target='1' type='read' value='103424' unit='KiB'/> + <bandwidth initiator='0' target='1' type='write' value='104448' unit='KiB'/> + </interconnects> + </topology> + <cache> + <bank id='0' level='3' type='both' size='16' unit='MiB' cpus='0'/> + <bank id='1' level='3' type='both' size='16' unit='MiB' cpus='1'/> + <bank id='2' level='3' type='both' size='16' unit='MiB' cpus='2'/> + <bank id='3' level='3' type='both' size='16' unit='MiB' cpus='3'/> + <bank id='4' level='3' type='both' size='16' unit='MiB' cpus='4'/> + <bank id='5' level='3' type='both' size='16' unit='MiB' cpus='5'/> + <bank id='6' level='3' type='both' size='16' unit='MiB' cpus='6'/> + <bank id='7' level='3' type='both' size='16' unit='MiB' cpus='7'/> + <bank id='8' level='3' type='both' size='16' unit='MiB' cpus='8'/> + <bank id='9' level='3' type='both' size='16' unit='MiB' cpus='9'/> + <bank id='10' level='3' type='both' size='16' unit='MiB' cpus='10'/> + <bank id='11' level='3' type='both' size='16' unit='MiB' cpus='11'/> + <bank id='12' level='3' type='both' size='16' unit='MiB' cpus='12'/> + <bank id='13' level='3' type='both' size='16' unit='MiB' cpus='13'/> + <bank id='14' level='3' type='both' size='16' unit='MiB' cpus='14'/> + <bank id='15' level='3' type='both' size='16' unit='MiB' cpus='15'/> + <bank id='16' level='3' type='both' size='16' unit='MiB' cpus='16'/> + <bank id='17' level='3' type='both' size='16' unit='MiB' cpus='17'/> + <bank id='18' level='3' type='both' size='16' unit='MiB' cpus='18'/> + <bank id='19' level='3' type='both' size='16' unit='MiB' cpus='19'/> + <bank id='20' level='3' type='both' size='16' unit='MiB' cpus='20'/> + <bank id='21' level='3' type='both' size='16' unit='MiB' cpus='21'/> + <bank id='22' level='3' type='both' size='16' unit='MiB' cpus='22'/> + <bank id='23' level='3' type='both' size='16' unit='MiB' cpus='23'/> + </cache> + </host> + +</capabilities> diff --git a/tests/vircaps2xmltest.c b/tests/vircaps2xmltest.c index 1e6c113c77..b143f873a1 100644 --- a/tests/vircaps2xmltest.c +++ b/tests/vircaps2xmltest.c @@ -97,6 +97,8 @@ mymain(void) DO_TEST_FULL("caches", VIR_ARCH_X86_64, true, true); + DO_TEST_FULL("hmat", VIR_ARCH_X86_64, true, true); + DO_TEST_FULL("resctrl", VIR_ARCH_X86_64, true, true); DO_TEST_FULL("resctrl-cmt", VIR_ARCH_X86_64, true, true); DO_TEST_FULL("resctrl-cdp", VIR_ARCH_X86_64, true, true); -- 2.31.1

On Mon, May 31, 2021 at 10:36:11AM +0200, Michal Privoznik wrote:
This test was generated on a guest with the following NUMA configuration:
<numa> <cell id='0' cpus='0-23' memory='4194304' unit='KiB' discard='yes'> <cache level='1' associativity='direct' policy='writeback'> <size value='10' unit='KiB'/> <line value='8' unit='B'/> </cache> <cache level='2' associativity='full' policy='writethrough'> <size value='128' unit='KiB'/> <line value='16' unit='B'/> </cache> </cell> <cell id='1' memory='2097152' unit='KiB'> <cache level='1' associativity='direct' policy='writeback'> <size value='10' unit='KiB'/> <line value='8' unit='B'/> </cache> </cell> <interconnects> <latency initiator='0' target='0' type='access' value='5'/> <latency initiator='0' target='0' type='read' value='6'/> <latency initiator='0' target='0' type='write' value='7'/> <latency initiator='0' target='1' type='access' value='10'/> <latency initiator='0' target='1' type='read' value='11'/> <latency initiator='0' target='1' type='write' value='12'/> <bandwidth initiator='0' target='0' type='access' value='204800' unit='KiB'/> <bandwidth initiator='0' target='0' type='read' value='205824' unit='KiB'/> <bandwidth initiator='0' target='0' type='write' value='206848' unit='KiB'/> <bandwidth initiator='0' target='0' cache='1' type='access' value='208896' unit='KiB'/> <bandwidth initiator='0' target='0' cache='1' type='read' value='209920' unit='KiB'/> <bandwidth initiator='0' target='0' cache='1' type='write' value='210944' unit='KiB'/> <bandwidth initiator='0' target='1' type='access' value='102400' unit='KiB'/> <bandwidth initiator='0' target='1' type='read' value='103424' unit='KiB'/> <bandwidth initiator='0' target='1' type='write' value='104448' unit='KiB'/> <bandwidth initiator='0' target='1' cache='1' type='access' value='105472' unit='KiB'/> <bandwidth initiator='0' target='1' cache='1' type='read' value='106496' unit='KiB'/> <bandwidth initiator='0' target='1' cache='1' type='write' value='107520' unit='KiB'/> </interconnects> </numa>
The sysfs content was also copied over from the VM but only those files which are accessed in the test are stored in the repo.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> ---
This unfortunately introduces symbolic link loops. They are fine in sysfs, but we always had issues with them when running distcheck and similar. I tried it now and did not reproduce the exact issue, but it still is not nice (global -u complains, some programs might just end up in an infinite loop). Historically we replicated "just enough" to use it in tests, but not so much that it would introduce loops. I would prefer if it stayed that way.

On 6/4/21 2:50 PM, Martin Kletzander wrote:
On Mon, May 31, 2021 at 10:36:11AM +0200, Michal Privoznik wrote:
This test was generated on a guest with the following NUMA configuration:
<numa> <cell id='0' cpus='0-23' memory='4194304' unit='KiB' discard='yes'> <cache level='1' associativity='direct' policy='writeback'> <size value='10' unit='KiB'/> <line value='8' unit='B'/> </cache> <cache level='2' associativity='full' policy='writethrough'> <size value='128' unit='KiB'/> <line value='16' unit='B'/> </cache> </cell> <cell id='1' memory='2097152' unit='KiB'> <cache level='1' associativity='direct' policy='writeback'> <size value='10' unit='KiB'/> <line value='8' unit='B'/> </cache> </cell> <interconnects> <latency initiator='0' target='0' type='access' value='5'/> <latency initiator='0' target='0' type='read' value='6'/> <latency initiator='0' target='0' type='write' value='7'/> <latency initiator='0' target='1' type='access' value='10'/> <latency initiator='0' target='1' type='read' value='11'/> <latency initiator='0' target='1' type='write' value='12'/> <bandwidth initiator='0' target='0' type='access' value='204800' unit='KiB'/> <bandwidth initiator='0' target='0' type='read' value='205824' unit='KiB'/> <bandwidth initiator='0' target='0' type='write' value='206848' unit='KiB'/> <bandwidth initiator='0' target='0' cache='1' type='access' value='208896' unit='KiB'/> <bandwidth initiator='0' target='0' cache='1' type='read' value='209920' unit='KiB'/> <bandwidth initiator='0' target='0' cache='1' type='write' value='210944' unit='KiB'/> <bandwidth initiator='0' target='1' type='access' value='102400' unit='KiB'/> <bandwidth initiator='0' target='1' type='read' value='103424' unit='KiB'/> <bandwidth initiator='0' target='1' type='write' value='104448' unit='KiB'/> <bandwidth initiator='0' target='1' cache='1' type='access' value='105472' unit='KiB'/> <bandwidth initiator='0' target='1' cache='1' type='read' value='106496' unit='KiB'/> <bandwidth initiator='0' target='1' cache='1' type='write' value='107520' unit='KiB'/> </interconnects> </numa>
The sysfs content was also copied over from the VM but only those files which are accessed in the test are stored in the repo.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> ---
This unfortunately introduces symbolic link loops. They are fine in sysfs, but we always had issues with them when running distcheck and similar.
I tried it now and did not reproduce the exact issue, but it still is not nice (global -u complains, some programs might just end up in an infinite loop). Historically we replicated "just enough" to use it in tests, but not so much that it would introduce loops. I would prefer if it stayed that way.
Yeah, I remember us fixing this, but I don't recall all the details. I'll switch to files. Michal

On Mon, May 31, 2021 at 10:36:01AM +0200, Michal Privoznik wrote:
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/Docu...
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
To these 8 patches above: Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
capabilities: Expose NUMA interconnects vircaps2xmltest: Introduce HMAT test case
These last two need some fix and/or explanation.
participants (3)
-
Martin Kletzander
-
Michal Privoznik
-
Michal Prívozník