[libvirt] [PATCH v3 0/8] Rework sysfs handling
by Martin Kletzander
Basically all of these were ACKed, however I was on vacation and in
the meatime there were changes. The virFileMock cannot be named
'mock' because it fails the 'noinline' test, but it doesn't actually
mock anything, so I just renamed it. There was decision in another
series to use the same naming for cache types and cache allocation
scopes, so the types now are 'both', 'code', and 'data'. There was
still no consensus reached with regards to the naming of that
attribute (is it 'type' or 'scope'). The patches are fine otherwise.
This version keeps it at 'type', we can change it before release or I
can change it before pushing.
All changes Erik wanted me to incorporate are there, except those that
were optional and I felt like keeping the code as-is was better. Or
those that I missed or forgot about (hopefully none).
Martin Kletzander (8):
tests: Add virfilewrapper -- the new super "mock"
util: Remove virsysfs and instead enhance virFileReadValue* functions
tests: Test vircaps2xmldata XMLs in virschematest
tests: Add missing cache data for vircaps2xmltest
Add host cache information in capabilities
Init host cache info in drivers
tests: Add support for more complicated hierarchies in vircaps2xmltest
tests: Add resctrl test for vircaps2xmltest
cfg.mk | 4 +-
docs/schemas/capability.rng | 34 +++
src/Makefile.am | 2 -
src/conf/capabilities.c | 205 ++++++++++++++-
src/conf/capabilities.h | 29 +++
src/libvirt_private.syms | 17 +-
src/lxc/lxc_conf.c | 3 +
src/openvz/openvz_conf.c | 3 +
src/phyp/phyp_driver.c | 3 +
src/qemu/qemu_capabilities.c | 3 +
src/uml/uml_conf.c | 3 +
src/util/virfile.c | 204 ++++++++++++---
src/util/virfile.h | 14 +-
src/util/virhostcpu.c | 39 +--
src/util/virsysfs.c | 231 -----------------
src/util/virsysfs.h | 70 -----
src/vbox/vbox_common.c | 3 +
src/vmware/vmware_conf.c | 3 +
src/vz/vz_driver.c | 2 +
tests/Makefile.am | 7 +-
.../linux-caches/cpu/cpu0/cache/index0/id | 1 +
.../cpu/cpu0/cache/index0/shared_cpu_list | 2 +-
.../cpu/cpu0/cache/index0/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu0/cache/index1/id | 1 +
.../cpu/cpu0/cache/index1/shared_cpu_list | 2 +-
.../cpu/cpu0/cache/index1/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu0/cache/index2/id | 1 +
.../cpu/cpu0/cache/index2/shared_cpu_list | 2 +-
.../cpu/cpu0/cache/index2/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu0/cache/index3/id | 1 +
.../linux-caches/cpu/cpu1/cache/index0/id | 1 +
.../cpu/cpu1/cache/index0/shared_cpu_list | 2 +-
.../cpu/cpu1/cache/index0/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu1/cache/index1/id | 1 +
.../cpu/cpu1/cache/index1/shared_cpu_list | 2 +-
.../cpu/cpu1/cache/index1/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu1/cache/index2/id | 1 +
.../cpu/cpu1/cache/index2/shared_cpu_list | 2 +-
.../cpu/cpu1/cache/index2/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu1/cache/index3/id | 1 +
.../linux-caches/cpu/cpu2/cache/index0/id | 1 +
.../cpu/cpu2/cache/index0/shared_cpu_list | 2 +-
.../cpu/cpu2/cache/index0/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu2/cache/index1/id | 1 +
.../cpu/cpu2/cache/index1/shared_cpu_list | 2 +-
.../cpu/cpu2/cache/index1/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu2/cache/index2/id | 1 +
.../cpu/cpu2/cache/index2/shared_cpu_list | 2 +-
.../cpu/cpu2/cache/index2/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu2/cache/index3/id | 1 +
.../linux-caches/cpu/cpu3/cache/index0/id | 1 +
.../cpu/cpu3/cache/index0/shared_cpu_list | 2 +-
.../cpu/cpu3/cache/index0/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu3/cache/index1/id | 1 +
.../cpu/cpu3/cache/index1/shared_cpu_list | 2 +-
.../cpu/cpu3/cache/index1/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu3/cache/index2/id | 1 +
.../cpu/cpu3/cache/index2/shared_cpu_list | 2 +-
.../cpu/cpu3/cache/index2/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu3/cache/index3/id | 1 +
.../linux-caches/cpu/cpu4/cache/index0/id | 1 +
.../cpu/cpu4/cache/index0/shared_cpu_list | 2 +-
.../cpu/cpu4/cache/index0/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu4/cache/index1/id | 1 +
.../cpu/cpu4/cache/index1/shared_cpu_list | 2 +-
.../cpu/cpu4/cache/index1/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu4/cache/index2/id | 1 +
.../cpu/cpu4/cache/index2/shared_cpu_list | 2 +-
.../cpu/cpu4/cache/index2/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu4/cache/index3/id | 1 +
.../linux-caches/cpu/cpu5/cache/index0/id | 1 +
.../cpu/cpu5/cache/index0/shared_cpu_list | 2 +-
.../cpu/cpu5/cache/index0/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu5/cache/index1/id | 1 +
.../cpu/cpu5/cache/index1/shared_cpu_list | 2 +-
.../cpu/cpu5/cache/index1/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu5/cache/index2/id | 1 +
.../cpu/cpu5/cache/index2/shared_cpu_list | 2 +-
.../cpu/cpu5/cache/index2/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu5/cache/index3/id | 1 +
.../linux-caches/cpu/cpu6/cache/index0/id | 1 +
.../cpu/cpu6/cache/index0/shared_cpu_list | 2 +-
.../cpu/cpu6/cache/index0/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu6/cache/index1/id | 1 +
.../cpu/cpu6/cache/index1/shared_cpu_list | 2 +-
.../cpu/cpu6/cache/index1/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu6/cache/index2/id | 1 +
.../cpu/cpu6/cache/index2/shared_cpu_list | 2 +-
.../cpu/cpu6/cache/index2/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu6/cache/index3/id | 1 +
.../linux-caches/cpu/cpu7/cache/index0/id | 1 +
.../cpu/cpu7/cache/index0/shared_cpu_list | 2 +-
.../cpu/cpu7/cache/index0/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu7/cache/index1/id | 1 +
.../cpu/cpu7/cache/index1/shared_cpu_list | 2 +-
.../cpu/cpu7/cache/index1/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu7/cache/index2/id | 1 +
.../cpu/cpu7/cache/index2/shared_cpu_list | 2 +-
.../cpu/cpu7/cache/index2/shared_cpu_map | 2 +-
.../linux-caches/cpu/cpu7/cache/index3/id | 1 +
tests/vircaps2xmldata/linux-resctrl/resctrl/cpus | 1 +
.../linux-resctrl/resctrl/info/L3/cbm_mask | 1 +
.../linux-resctrl/resctrl/info/L3/min_cbm_bits | 1 +
.../linux-resctrl/resctrl/info/L3/num_closids | 1 +
.../linux-resctrl/resctrl/manualres/cpus | 1 +
.../linux-resctrl/resctrl/manualres/schemata | 1 +
.../linux-resctrl/resctrl/manualres/tasks | 0
.../vircaps2xmldata/linux-resctrl/resctrl/schemata | 1 +
tests/vircaps2xmldata/linux-resctrl/resctrl/tasks | 0
.../linux-resctrl/system/cpu/cpu0/cache/index0/id | 1 +
.../system/cpu/cpu0/cache/index0/level | 1 +
.../system/cpu/cpu0/cache/index0/shared_cpu_list | 1 +
.../system/cpu/cpu0/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu0/cache/index0/size | 1 +
.../system/cpu/cpu0/cache/index0/type | 1 +
.../linux-resctrl/system/cpu/cpu0/cache/index1/id | 1 +
.../system/cpu/cpu0/cache/index1/level | 1 +
.../system/cpu/cpu0/cache/index1/shared_cpu_list | 1 +
.../system/cpu/cpu0/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu0/cache/index1/size | 1 +
.../system/cpu/cpu0/cache/index1/type | 1 +
.../linux-resctrl/system/cpu/cpu0/cache/index2/id | 1 +
.../system/cpu/cpu0/cache/index2/level | 1 +
.../system/cpu/cpu0/cache/index2/shared_cpu_list | 1 +
.../system/cpu/cpu0/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu0/cache/index2/size | 1 +
.../system/cpu/cpu0/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu0/cache/index3/id | 1 +
.../system/cpu/cpu0/cache/index3/level | 1 +
.../system/cpu/cpu0/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu0/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu0/cache/index3/size | 1 +
.../system/cpu/cpu0/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu0/online | 1 +
.../linux-resctrl/system/cpu/cpu0/topology/core_id | 1 +
.../system/cpu/cpu0/topology/core_siblings | 1 +
.../system/cpu/cpu0/topology/core_siblings_list | 1 +
.../system/cpu/cpu0/topology/physical_package_id | 1 +
.../system/cpu/cpu0/topology/thread_siblings | 1 +
.../system/cpu/cpu0/topology/thread_siblings_list | 1 +
.../linux-resctrl/system/cpu/cpu1/cache/index0/id | 1 +
.../system/cpu/cpu1/cache/index0/level | 1 +
.../system/cpu/cpu1/cache/index0/shared_cpu_list | 1 +
.../system/cpu/cpu1/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu1/cache/index0/size | 1 +
.../system/cpu/cpu1/cache/index0/type | 1 +
.../linux-resctrl/system/cpu/cpu1/cache/index1/id | 1 +
.../system/cpu/cpu1/cache/index1/level | 1 +
.../system/cpu/cpu1/cache/index1/shared_cpu_list | 1 +
.../system/cpu/cpu1/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu1/cache/index1/size | 1 +
.../system/cpu/cpu1/cache/index1/type | 1 +
.../linux-resctrl/system/cpu/cpu1/cache/index2/id | 1 +
.../system/cpu/cpu1/cache/index2/level | 1 +
.../system/cpu/cpu1/cache/index2/shared_cpu_list | 1 +
.../system/cpu/cpu1/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu1/cache/index2/size | 1 +
.../system/cpu/cpu1/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu1/cache/index3/id | 1 +
.../system/cpu/cpu1/cache/index3/level | 1 +
.../system/cpu/cpu1/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu1/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu1/cache/index3/size | 1 +
.../system/cpu/cpu1/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu1/online | 1 +
.../linux-resctrl/system/cpu/cpu1/topology/core_id | 1 +
.../system/cpu/cpu1/topology/core_siblings | 1 +
.../system/cpu/cpu1/topology/core_siblings_list | 1 +
.../system/cpu/cpu1/topology/physical_package_id | 1 +
.../system/cpu/cpu1/topology/thread_siblings | 1 +
.../system/cpu/cpu1/topology/thread_siblings_list | 1 +
.../linux-resctrl/system/cpu/cpu10/cache/index0/id | 1 +
.../system/cpu/cpu10/cache/index0/level | 1 +
.../system/cpu/cpu10/cache/index0/shared_cpu_list | 1 +
.../system/cpu/cpu10/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu10/cache/index0/size | 1 +
.../system/cpu/cpu10/cache/index0/type | 1 +
.../linux-resctrl/system/cpu/cpu10/cache/index1/id | 1 +
.../system/cpu/cpu10/cache/index1/level | 1 +
.../system/cpu/cpu10/cache/index1/shared_cpu_list | 1 +
.../system/cpu/cpu10/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu10/cache/index1/size | 1 +
.../system/cpu/cpu10/cache/index1/type | 1 +
.../linux-resctrl/system/cpu/cpu10/cache/index2/id | 1 +
.../system/cpu/cpu10/cache/index2/level | 1 +
.../system/cpu/cpu10/cache/index2/shared_cpu_list | 1 +
.../system/cpu/cpu10/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu10/cache/index2/size | 1 +
.../system/cpu/cpu10/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu10/cache/index3/id | 1 +
.../system/cpu/cpu10/cache/index3/level | 1 +
.../system/cpu/cpu10/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu10/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu10/cache/index3/size | 1 +
.../system/cpu/cpu10/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu10/online | 1 +
.../system/cpu/cpu10/topology/core_id | 1 +
.../system/cpu/cpu10/topology/core_siblings | 1 +
.../system/cpu/cpu10/topology/core_siblings_list | 1 +
.../system/cpu/cpu10/topology/physical_package_id | 1 +
.../system/cpu/cpu10/topology/thread_siblings | 1 +
.../system/cpu/cpu10/topology/thread_siblings_list | 1 +
.../linux-resctrl/system/cpu/cpu11/cache/index0/id | 1 +
.../system/cpu/cpu11/cache/index0/level | 1 +
.../system/cpu/cpu11/cache/index0/shared_cpu_list} | 0
.../system/cpu/cpu11/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu11/cache/index0/size | 1 +
.../system/cpu/cpu11/cache/index0/type | 1 +
.../linux-resctrl/system/cpu/cpu11/cache/index1/id | 1 +
.../system/cpu/cpu11/cache/index1/level | 1 +
.../system/cpu/cpu11/cache/index1/shared_cpu_list} | 0
.../system/cpu/cpu11/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu11/cache/index1/size | 1 +
.../system/cpu/cpu11/cache/index1/type | 1 +
.../linux-resctrl/system/cpu/cpu11/cache/index2/id | 1 +
.../system/cpu/cpu11/cache/index2/level | 1 +
.../system/cpu/cpu11/cache/index2/shared_cpu_list} | 0
.../system/cpu/cpu11/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu11/cache/index2/size | 1 +
.../system/cpu/cpu11/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu11/cache/index3/id | 1 +
.../system/cpu/cpu11/cache/index3/level | 1 +
.../system/cpu/cpu11/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu11/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu11/cache/index3/size | 1 +
.../system/cpu/cpu11/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu11/online | 1 +
.../system/cpu/cpu11/topology/core_id | 1 +
.../system/cpu/cpu11/topology/core_siblings | 1 +
.../system/cpu/cpu11/topology/core_siblings_list | 1 +
.../system/cpu/cpu11/topology/physical_package_id | 1 +
.../system/cpu/cpu11/topology/thread_siblings | 1 +
.../cpu/cpu11/topology/thread_siblings_list} | 0
.../linux-resctrl/system/cpu/cpu2/cache/index0/id | 1 +
.../system/cpu/cpu2/cache/index0/level | 1 +
.../system/cpu/cpu2/cache/index0/shared_cpu_list | 1 +
.../system/cpu/cpu2/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu2/cache/index0/size | 1 +
.../system/cpu/cpu2/cache/index0/type | 1 +
.../linux-resctrl/system/cpu/cpu2/cache/index1/id | 1 +
.../system/cpu/cpu2/cache/index1/level | 1 +
.../system/cpu/cpu2/cache/index1/shared_cpu_list | 1 +
.../system/cpu/cpu2/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu2/cache/index1/size | 1 +
.../system/cpu/cpu2/cache/index1/type | 1 +
.../linux-resctrl/system/cpu/cpu2/cache/index2/id | 1 +
.../system/cpu/cpu2/cache/index2/level | 1 +
.../system/cpu/cpu2/cache/index2/shared_cpu_list | 1 +
.../system/cpu/cpu2/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu2/cache/index2/size | 1 +
.../system/cpu/cpu2/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu2/cache/index3/id | 1 +
.../system/cpu/cpu2/cache/index3/level | 1 +
.../system/cpu/cpu2/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu2/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu2/cache/index3/size | 1 +
.../system/cpu/cpu2/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu2/online | 1 +
.../linux-resctrl/system/cpu/cpu2/topology/core_id | 1 +
.../system/cpu/cpu2/topology/core_siblings | 1 +
.../system/cpu/cpu2/topology/core_siblings_list | 1 +
.../system/cpu/cpu2/topology/physical_package_id | 1 +
.../system/cpu/cpu2/topology/thread_siblings | 1 +
.../system/cpu/cpu2/topology/thread_siblings_list | 1 +
.../linux-resctrl/system/cpu/cpu3/cache/index0/id | 1 +
.../system/cpu/cpu3/cache/index0/level | 1 +
.../system/cpu/cpu3/cache/index0/shared_cpu_list | 1 +
.../system/cpu/cpu3/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu3/cache/index0/size | 1 +
.../system/cpu/cpu3/cache/index0/type | 1 +
.../linux-resctrl/system/cpu/cpu3/cache/index1/id | 1 +
.../system/cpu/cpu3/cache/index1/level | 1 +
.../system/cpu/cpu3/cache/index1/shared_cpu_list | 1 +
.../system/cpu/cpu3/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu3/cache/index1/size | 1 +
.../system/cpu/cpu3/cache/index1/type | 1 +
.../linux-resctrl/system/cpu/cpu3/cache/index2/id | 1 +
.../system/cpu/cpu3/cache/index2/level | 1 +
.../system/cpu/cpu3/cache/index2/shared_cpu_list | 1 +
.../system/cpu/cpu3/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu3/cache/index2/size | 1 +
.../system/cpu/cpu3/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu3/cache/index3/id | 1 +
.../system/cpu/cpu3/cache/index3/level | 1 +
.../system/cpu/cpu3/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu3/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu3/cache/index3/size | 1 +
.../system/cpu/cpu3/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu3/online | 1 +
.../linux-resctrl/system/cpu/cpu3/topology/core_id | 1 +
.../system/cpu/cpu3/topology/core_siblings | 1 +
.../system/cpu/cpu3/topology/core_siblings_list | 1 +
.../system/cpu/cpu3/topology/physical_package_id | 1 +
.../system/cpu/cpu3/topology/thread_siblings | 1 +
.../system/cpu/cpu3/topology/thread_siblings_list | 1 +
.../linux-resctrl/system/cpu/cpu4/cache/index0/id | 1 +
.../system/cpu/cpu4/cache/index0/level | 1 +
.../system/cpu/cpu4/cache/index0/shared_cpu_list | 1 +
.../system/cpu/cpu4/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu4/cache/index0/size | 1 +
.../system/cpu/cpu4/cache/index0/type | 1 +
.../linux-resctrl/system/cpu/cpu4/cache/index1/id | 1 +
.../system/cpu/cpu4/cache/index1/level | 1 +
.../system/cpu/cpu4/cache/index1/shared_cpu_list | 1 +
.../system/cpu/cpu4/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu4/cache/index1/size | 1 +
.../system/cpu/cpu4/cache/index1/type | 1 +
.../linux-resctrl/system/cpu/cpu4/cache/index2/id | 1 +
.../system/cpu/cpu4/cache/index2/level | 1 +
.../system/cpu/cpu4/cache/index2/shared_cpu_list | 1 +
.../system/cpu/cpu4/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu4/cache/index2/size | 1 +
.../system/cpu/cpu4/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu4/cache/index3/id | 1 +
.../system/cpu/cpu4/cache/index3/level | 1 +
.../system/cpu/cpu4/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu4/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu4/cache/index3/size | 1 +
.../system/cpu/cpu4/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu4/online | 1 +
.../linux-resctrl/system/cpu/cpu4/topology/core_id | 1 +
.../system/cpu/cpu4/topology/core_siblings | 1 +
.../system/cpu/cpu4/topology/core_siblings_list | 1 +
.../system/cpu/cpu4/topology/physical_package_id | 1 +
.../system/cpu/cpu4/topology/thread_siblings | 1 +
.../system/cpu/cpu4/topology/thread_siblings_list | 1 +
.../linux-resctrl/system/cpu/cpu5/cache/index0/id | 1 +
.../system/cpu/cpu5/cache/index0/level | 1 +
.../system/cpu/cpu5/cache/index0/shared_cpu_list | 1 +
.../system/cpu/cpu5/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu5/cache/index0/size | 1 +
.../system/cpu/cpu5/cache/index0/type | 1 +
.../linux-resctrl/system/cpu/cpu5/cache/index1/id | 1 +
.../system/cpu/cpu5/cache/index1/level | 1 +
.../system/cpu/cpu5/cache/index1/shared_cpu_list | 1 +
.../system/cpu/cpu5/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu5/cache/index1/size | 1 +
.../system/cpu/cpu5/cache/index1/type | 1 +
.../linux-resctrl/system/cpu/cpu5/cache/index2/id | 1 +
.../system/cpu/cpu5/cache/index2/level | 1 +
.../system/cpu/cpu5/cache/index2/shared_cpu_list | 1 +
.../system/cpu/cpu5/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu5/cache/index2/size | 1 +
.../system/cpu/cpu5/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu5/cache/index3/id | 1 +
.../system/cpu/cpu5/cache/index3/level | 1 +
.../system/cpu/cpu5/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu5/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu5/cache/index3/size | 1 +
.../system/cpu/cpu5/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu5/online | 1 +
.../linux-resctrl/system/cpu/cpu5/topology/core_id | 1 +
.../system/cpu/cpu5/topology/core_siblings | 1 +
.../system/cpu/cpu5/topology/core_siblings_list | 1 +
.../system/cpu/cpu5/topology/physical_package_id | 1 +
.../system/cpu/cpu5/topology/thread_siblings | 1 +
.../system/cpu/cpu5/topology/thread_siblings_list | 1 +
.../linux-resctrl/system/cpu/cpu6/cache/index0/id | 1 +
.../system/cpu/cpu6/cache/index0/level | 1 +
.../system/cpu/cpu6/cache/index0/shared_cpu_list | 1 +
.../system/cpu/cpu6/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu6/cache/index0/size | 1 +
.../system/cpu/cpu6/cache/index0/type | 1 +
.../linux-resctrl/system/cpu/cpu6/cache/index1/id | 1 +
.../system/cpu/cpu6/cache/index1/level | 1 +
.../system/cpu/cpu6/cache/index1/shared_cpu_list | 1 +
.../system/cpu/cpu6/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu6/cache/index1/size | 1 +
.../system/cpu/cpu6/cache/index1/type | 1 +
.../linux-resctrl/system/cpu/cpu6/cache/index2/id | 1 +
.../system/cpu/cpu6/cache/index2/level | 1 +
.../system/cpu/cpu6/cache/index2/shared_cpu_list | 1 +
.../system/cpu/cpu6/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu6/cache/index2/size | 1 +
.../system/cpu/cpu6/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu6/cache/index3/id | 1 +
.../system/cpu/cpu6/cache/index3/level | 1 +
.../system/cpu/cpu6/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu6/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu6/cache/index3/size | 1 +
.../system/cpu/cpu6/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu6/online | 1 +
.../linux-resctrl/system/cpu/cpu6/topology/core_id | 1 +
.../system/cpu/cpu6/topology/core_siblings | 1 +
.../system/cpu/cpu6/topology/core_siblings_list | 1 +
.../system/cpu/cpu6/topology/physical_package_id | 1 +
.../system/cpu/cpu6/topology/thread_siblings | 1 +
.../system/cpu/cpu6/topology/thread_siblings_list | 1 +
.../linux-resctrl/system/cpu/cpu7/cache/index0/id | 1 +
.../system/cpu/cpu7/cache/index0/level | 1 +
.../system/cpu/cpu7/cache/index0/shared_cpu_list | 1 +
.../system/cpu/cpu7/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu7/cache/index0/size | 1 +
.../system/cpu/cpu7/cache/index0/type | 1 +
.../linux-resctrl/system/cpu/cpu7/cache/index1/id | 1 +
.../system/cpu/cpu7/cache/index1/level | 1 +
.../system/cpu/cpu7/cache/index1/shared_cpu_list | 1 +
.../system/cpu/cpu7/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu7/cache/index1/size | 1 +
.../system/cpu/cpu7/cache/index1/type | 1 +
.../linux-resctrl/system/cpu/cpu7/cache/index2/id | 1 +
.../system/cpu/cpu7/cache/index2/level | 1 +
.../system/cpu/cpu7/cache/index2/shared_cpu_list | 1 +
.../system/cpu/cpu7/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu7/cache/index2/size | 1 +
.../system/cpu/cpu7/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu7/cache/index3/id | 1 +
.../system/cpu/cpu7/cache/index3/level | 1 +
.../system/cpu/cpu7/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu7/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu7/cache/index3/size | 1 +
.../system/cpu/cpu7/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu7/online | 1 +
.../linux-resctrl/system/cpu/cpu7/topology/core_id | 1 +
.../system/cpu/cpu7/topology/core_siblings | 1 +
.../system/cpu/cpu7/topology/core_siblings_list | 1 +
.../system/cpu/cpu7/topology/physical_package_id | 1 +
.../system/cpu/cpu7/topology/thread_siblings | 1 +
.../system/cpu/cpu7/topology/thread_siblings_list | 1 +
.../linux-resctrl/system/cpu/cpu8/cache/index0/id | 1 +
.../system/cpu/cpu8/cache/index0/level | 1 +
.../system/cpu/cpu8/cache/index0/shared_cpu_list | 1 +
.../system/cpu/cpu8/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu8/cache/index0/size | 1 +
.../system/cpu/cpu8/cache/index0/type | 1 +
.../linux-resctrl/system/cpu/cpu8/cache/index1/id | 1 +
.../system/cpu/cpu8/cache/index1/level | 1 +
.../system/cpu/cpu8/cache/index1/shared_cpu_list | 1 +
.../system/cpu/cpu8/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu8/cache/index1/size | 1 +
.../system/cpu/cpu8/cache/index1/type | 1 +
.../linux-resctrl/system/cpu/cpu8/cache/index2/id | 1 +
.../system/cpu/cpu8/cache/index2/level | 1 +
.../system/cpu/cpu8/cache/index2/shared_cpu_list | 1 +
.../system/cpu/cpu8/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu8/cache/index2/size | 1 +
.../system/cpu/cpu8/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu8/cache/index3/id | 1 +
.../system/cpu/cpu8/cache/index3/level | 1 +
.../system/cpu/cpu8/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu8/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu8/cache/index3/size | 1 +
.../system/cpu/cpu8/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu8/online | 1 +
.../linux-resctrl/system/cpu/cpu8/topology/core_id | 1 +
.../system/cpu/cpu8/topology/core_siblings | 1 +
.../system/cpu/cpu8/topology/core_siblings_list | 1 +
.../system/cpu/cpu8/topology/physical_package_id | 1 +
.../system/cpu/cpu8/topology/thread_siblings | 1 +
.../system/cpu/cpu8/topology/thread_siblings_list | 1 +
.../system/cpu/cpu9/cache/index0/id} | 0
.../system/cpu/cpu9/cache/index0/level | 1 +
.../system/cpu/cpu9/cache/index0/shared_cpu_list | 1 +
.../system/cpu/cpu9/cache/index0/shared_cpu_map | 1 +
.../system/cpu/cpu9/cache/index0/size | 1 +
.../system/cpu/cpu9/cache/index0/type | 1 +
.../system/cpu/cpu9/cache/index1/id} | 0
.../system/cpu/cpu9/cache/index1/level | 1 +
.../system/cpu/cpu9/cache/index1/shared_cpu_list | 1 +
.../system/cpu/cpu9/cache/index1/shared_cpu_map | 1 +
.../system/cpu/cpu9/cache/index1/size | 1 +
.../system/cpu/cpu9/cache/index1/type | 1 +
.../system/cpu/cpu9/cache/index2/id} | 0
.../system/cpu/cpu9/cache/index2/level | 1 +
.../system/cpu/cpu9/cache/index2/shared_cpu_list | 1 +
.../system/cpu/cpu9/cache/index2/shared_cpu_map | 1 +
.../system/cpu/cpu9/cache/index2/size | 1 +
.../system/cpu/cpu9/cache/index2/type | 1 +
.../linux-resctrl/system/cpu/cpu9/cache/index3/id | 1 +
.../system/cpu/cpu9/cache/index3/level | 1 +
.../system/cpu/cpu9/cache/index3/shared_cpu_list | 1 +
.../system/cpu/cpu9/cache/index3/shared_cpu_map | 1 +
.../system/cpu/cpu9/cache/index3/size | 1 +
.../system/cpu/cpu9/cache/index3/type | 1 +
.../linux-resctrl/system/cpu/cpu9/online | 1 +
.../linux-resctrl/system/cpu/cpu9/topology/core_id | 1 +
.../system/cpu/cpu9/topology/core_siblings | 1 +
.../system/cpu/cpu9/topology/core_siblings_list | 1 +
.../system/cpu/cpu9/topology/physical_package_id | 1 +
.../system/cpu/cpu9/topology/thread_siblings | 1 +
.../system/cpu/cpu9/topology/thread_siblings_list | 1 +
.../linux-resctrl/system/cpu/online | 1 +
.../linux-resctrl/system/cpu/present | 1 +
.../linux-resctrl/system/node/node0/cpu0 | 1 +
.../linux-resctrl/system/node/node0/cpu1 | 1 +
.../linux-resctrl/system/node/node0/cpu2 | 1 +
.../linux-resctrl/system/node/node0/cpu3 | 1 +
.../linux-resctrl/system/node/node0/cpu4 | 1 +
.../linux-resctrl/system/node/node0/cpu5 | 1 +
.../linux-resctrl/system/node/node0/cpulist | 1 +
.../linux-resctrl/system/node/node0/cpumap | 1 +
.../linux-resctrl/system/node/node0/distance | 1 +
.../hugepages/hugepages-1048576kB/free_hugepages | 1 +
.../hugepages/hugepages-1048576kB/nr_hugepages | 1 +
.../hugepages-1048576kB/surplus_hugepages | 1 +
.../hugepages/hugepages-2048kB/free_hugepages | 1 +
.../node0/hugepages/hugepages-2048kB/nr_hugepages | 1 +
.../hugepages/hugepages-2048kB/surplus_hugepages | 1 +
.../linux-resctrl/system/node/node1/cpu10 | 1 +
.../linux-resctrl/system/node/node1/cpu11 | 1 +
.../linux-resctrl/system/node/node1/cpu6 | 1 +
.../linux-resctrl/system/node/node1/cpu7 | 1 +
.../linux-resctrl/system/node/node1/cpu8 | 1 +
.../linux-resctrl/system/node/node1/cpu9 | 1 +
.../linux-resctrl/system/node/node1/cpulist | 1 +
.../linux-resctrl/system/node/node1/cpumap | 1 +
.../linux-resctrl/system/node/node1/distance | 1 +
.../hugepages/hugepages-1048576kB/free_hugepages | 1 +
.../hugepages/hugepages-1048576kB/nr_hugepages | 1 +
.../hugepages-1048576kB/surplus_hugepages | 1 +
.../hugepages/hugepages-2048kB/free_hugepages | 1 +
.../node1/hugepages/hugepages-2048kB/nr_hugepages | 1 +
.../hugepages/hugepages-2048kB/surplus_hugepages | 1 +
.../linux-resctrl/system/node/online | 1 +
tests/vircaps2xmldata/vircaps-x86_64-caches.xml | 3 +
tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml | 49 ++++
tests/vircaps2xmltest.c | 31 ++-
tests/virfilewrapper.c | 281 +++++++++++++++++++++
src/util/virsysfspriv.h => tests/virfilewrapper.h | 19 +-
tests/virhostcputest.c | 8 +-
tests/virnumamock.c | 17 +-
tests/virschematest.c | 3 +-
522 files changed, 1368 insertions(+), 455 deletions(-)
delete mode 100644 src/util/virsysfs.c
delete mode 100644 src/util/virsysfs.h
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu0/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu0/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu0/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu0/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu1/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu1/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu1/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu1/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu2/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu2/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu2/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu2/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu3/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu3/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu3/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu3/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu4/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu4/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu4/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu4/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu5/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu5/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu5/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu5/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu6/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu6/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu6/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu6/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu7/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu7/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu7/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-caches/cpu/cpu7/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/resctrl/cpus
create mode 100644 tests/vircaps2xmldata/linux-resctrl/resctrl/info/L3/cbm_mask
create mode 100644 tests/vircaps2xmldata/linux-resctrl/resctrl/info/L3/min_cbm_bits
create mode 100644 tests/vircaps2xmldata/linux-resctrl/resctrl/info/L3/num_closids
create mode 100644 tests/vircaps2xmldata/linux-resctrl/resctrl/manualres/cpus
create mode 100644 tests/vircaps2xmldata/linux-resctrl/resctrl/manualres/schemata
create mode 100644 tests/vircaps2xmldata/linux-resctrl/resctrl/manualres/tasks
create mode 100644 tests/vircaps2xmldata/linux-resctrl/resctrl/schemata
create mode 100644 tests/vircaps2xmldata/linux-resctrl/resctrl/tasks
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index0/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index0/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index1/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index1/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index2/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/topology/thread_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index0/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index0/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index1/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index1/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index2/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/topology/thread_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index0/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index0/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index1/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index1/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index2/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/topology/thread_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index0/level
copy tests/vircaps2xmldata/{linux-caches/cpu/cpu0/cache/index0/shared_cpu_map => linux-resctrl/system/cpu/cpu11/cache/index0/shared_cpu_list} (100%)
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index0/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index1/level
copy tests/vircaps2xmldata/{linux-caches/cpu/cpu0/cache/index0/shared_cpu_map => linux-resctrl/system/cpu/cpu11/cache/index1/shared_cpu_list} (100%)
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index1/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index2/level
copy tests/vircaps2xmldata/{linux-caches/cpu/cpu0/cache/index0/shared_cpu_map => linux-resctrl/system/cpu/cpu11/cache/index2/shared_cpu_list} (100%)
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/topology/thread_siblings
copy tests/vircaps2xmldata/{linux-caches/cpu/cpu0/cache/index0/shared_cpu_map => linux-resctrl/system/cpu/cpu11/topology/thread_siblings_list} (100%)
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index0/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index0/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index1/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index1/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index2/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/topology/thread_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index0/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index0/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index1/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index1/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index2/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/topology/thread_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index0/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index0/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index1/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index1/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index2/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/topology/thread_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index0/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index0/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index1/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index1/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index2/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/topology/thread_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index0/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index0/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index1/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index1/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index2/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/topology/thread_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index0/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index0/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index1/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index1/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index2/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/topology/thread_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index0/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index0/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index0/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index1/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index1/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index1/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index2/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index2/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/topology/thread_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/topology/thread_siblings_list
copy tests/vircaps2xmldata/{linux-caches/cpu/cpu0/cache/index0/shared_cpu_map => linux-resctrl/system/cpu/cpu9/cache/index0/id} (100%)
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index0/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index0/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index0/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index0/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index0/type
copy tests/vircaps2xmldata/{linux-caches/cpu/cpu0/cache/index0/shared_cpu_map => linux-resctrl/system/cpu/cpu9/cache/index1/id} (100%)
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index1/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index1/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index1/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index1/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index1/type
copy tests/vircaps2xmldata/{linux-caches/cpu/cpu0/cache/index0/shared_cpu_map => linux-resctrl/system/cpu/cpu9/cache/index2/id} (100%)
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index2/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index2/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index2/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index2/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index2/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index3/id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index3/level
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index3/shared_cpu_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index3/shared_cpu_map
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index3/size
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/cache/index3/type
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/topology/core_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/topology/core_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/topology/core_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/topology/physical_package_id
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/topology/thread_siblings
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/topology/thread_siblings_list
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/online
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/cpu/present
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node0/cpu0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node0/cpu1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node0/cpu2
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node0/cpu3
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node0/cpu4
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node0/cpu5
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node0/cpulist
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node0/cpumap
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node0/distance
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node0/hugepages/hugepages-1048576kB/free_hugepages
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node0/hugepages/hugepages-1048576kB/surplus_hugepages
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node0/hugepages/hugepages-2048kB/free_hugepages
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node0/hugepages/hugepages-2048kB/surplus_hugepages
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node1/cpu10
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node1/cpu11
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node1/cpu6
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node1/cpu7
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node1/cpu8
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/node/node1/cpu9
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node1/cpulist
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node1/cpumap
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node1/distance
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node1/hugepages/hugepages-1048576kB/free_hugepages
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node1/hugepages/hugepages-1048576kB/surplus_hugepages
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node1/hugepages/hugepages-2048kB/free_hugepages
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/node1/hugepages/hugepages-2048kB/surplus_hugepages
create mode 100644 tests/vircaps2xmldata/linux-resctrl/system/node/online
create mode 100644 tests/vircaps2xmldata/vircaps-x86_64-resctrl.xml
create mode 100644 tests/virfilewrapper.c
rename src/util/virsysfspriv.h => tests/virfilewrapper.h (69%)
--
2.12.2
7 years, 7 months
[libvirt] [PATCH] qemu: Don't reset "events" migration capability
by Jiri Denemark
When creating v3.2.0-77-g8be3ccd04 commit, I completely forgot that one
migration capability is very special. It's the "events" capability which
tells QEMU to report "MIGRATION" events. Since libvirt always wants the
events, it is enabled in qemuConnectMonitor and the rest of the code
should not touch it.
https://bugzilla.redhat.com/show_bug.cgi?id=1439841
https://bugzilla.redhat.com/show_bug.cgi?id=1441165
Messed-up-by: Jiri Denemark <jdenemar(a)redhat.com>
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/qemu/qemu_migration.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index b4507a3ae..30f98da1e 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -5919,6 +5919,11 @@ qemuMigrationReset(virQEMUDriverPtr driver,
goto cleanup;
for (cap = 0; cap < QEMU_MONITOR_MIGRATION_CAPS_LAST; cap++) {
+ /* "events" capability is set (when supported) in qemuConnectMonitor
+ * and should never be cleared */
+ if (cap == QEMU_MONITOR_MIGRATION_CAPS_EVENTS)
+ continue;
+
if (qemuMigrationSetOption(driver, vm, cap, false, job) < 0)
goto cleanup;
}
--
2.12.2
7 years, 8 months
[libvirt] [PATCH 0/2] Add support for some useful vim plugins
by Andrea Bolognani
libclang can be integrated into vim in pretty useful
ways, notably to provide semantic syntax highlighting
and code completion.
This series enables basic support for both (through the
color_coded and YouCompleteMe plugin respectively) by
creating the required per-project configuration files
automatically at configure time.
Note that external libraries (eg. libxml2) are not being
processed at the moment, but even with this basic
configuration the plugins can be very useful. More
sophisticated support can be worked in later on.
Visual comparison:
http://imgur.com/a/TBJsz
Andrea Bolognani (2):
Add color_coded support
Add YouCompleteMe support
.color_coded.in | 40 ++++++++++++++++++++++++++++++++++++++++
.gitignore | 2 ++
.ycm_extra_conf.py.in | 45 +++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 2 ++
4 files changed, 89 insertions(+)
create mode 100644 .color_coded.in
create mode 100644 .ycm_extra_conf.py.in
--
2.7.4
7 years, 8 months
[libvirt] [PATCH RFC V2] RFC: Reimplement cache allocation for a VM
by Eli Qiao
This is a RFC patch for the reimplement of `support cache tune(CAT) in
libvirt`[1].
This patch defines some structs to represent data struct in linux
resctrl fs which will be used later to do cache allocation.
The patch expose a private interface `virResctrlFreeSchemata`, which
will be used to query the cache allocation on the host.
Also added unit test cases to test this interface can works well.
There are already patch sets[2] to address it, and functional
works, but people doesn't like it cause it has global variable, and
missing unit test case for new added capabilites, etc.
Martin has proposed a test infra to do vircaps2xmltest, and I extened it
on top of it to extend resctrl control[3], this is kinds of new desiged
apart from [2], so I propose this RFC patch to do some rework on it.
[1] https://www.redhat.com/archives/libvir-list/2017-January/msg00683.html
[2] https://www.redhat.com/archives/libvir-list/2017-March/msg00181.html
[3] https://www.redhat.com/archives/libvir-list/2017-April/msg00516.html
---
include/libvirt/virterror.h | 1 +
src/Makefile.am | 1 +
src/libvirt_private.syms | 6 +
src/util/virerror.c | 1 +
src/util/virresctrl.c | 423 ++++++++++++++++++++++++++++++
src/util/virresctrl.h | 86 ++++++
tests/Makefile.am | 7 +-
tests/virresctrldata/L3-free.schemata | 1 +
tests/virresctrldata/L3CODE-free.schemata | 1 +
tests/virresctrldata/L3DATA-free.schemata | 1 +
tests/virresctrltest.c | 117 +++++++++
11 files changed, 644 insertions(+), 1 deletion(-)
create mode 100644 src/util/virresctrl.c
create mode 100644 src/util/virresctrl.h
create mode 100644 tests/virresctrldata/L3-free.schemata
create mode 100644 tests/virresctrldata/L3CODE-free.schemata
create mode 100644 tests/virresctrldata/L3DATA-free.schemata
create mode 100644 tests/virresctrltest.c
diff --git a/include/libvirt/virterror.h b/include/libvirt/virterror.h
index 2efee8f..4bc0c74 100644
--- a/include/libvirt/virterror.h
+++ b/include/libvirt/virterror.h
@@ -132,6 +132,7 @@ typedef enum {
VIR_FROM_PERF = 65, /* Error from perf */
VIR_FROM_LIBSSH = 66, /* Error from libssh connection transport */
+ VIR_FROM_RESCTRL = 67, /* Error from resctrl */
# ifdef VIR_ENUM_SENTINELS
VIR_ERR_DOMAIN_LAST
diff --git a/src/Makefile.am b/src/Makefile.am
index 60eba37..0ae2af5 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -165,6 +165,7 @@ UTIL_SOURCES = \
util/virprocess.c util/virprocess.h \
util/virqemu.c util/virqemu.h \
util/virrandom.h util/virrandom.c \
+ util/virresctrl.h util/virresctrl.c \
util/virrotatingfile.h util/virrotatingfile.c \
util/virscsi.c util/virscsi.h \
util/virscsihost.c util/virscsihost.h \
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 9d7760d..b7225fe 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -2396,6 +2396,12 @@ virRandomGenerateWWN;
virRandomInt;
+# util/virresctrl.h
+virResctrlFreeSchemata;
+virResctrlGetFreeCache;
+virResctrlTypeToString;
+
+
# util/virrotatingfile.h
virRotatingFileReaderConsume;
virRotatingFileReaderFree;
diff --git a/src/util/virerror.c b/src/util/virerror.c
index ef17fb5..02fabcc 100644
--- a/src/util/virerror.c
+++ b/src/util/virerror.c
@@ -139,6 +139,7 @@ VIR_ENUM_IMPL(virErrorDomain, VIR_ERR_DOMAIN_LAST,
"Perf", /* 65 */
"Libssh transport layer",
+ "Resource Control",
)
diff --git a/src/util/virresctrl.c b/src/util/virresctrl.c
new file mode 100644
index 0000000..778c2ec
--- /dev/null
+++ b/src/util/virresctrl.c
@@ -0,0 +1,423 @@
+/*
+ * virresctrl.c: methods for managing resource control
+ *
+ * Copyright (C) 2017 Intel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Authors:
+ * Eli Qiao <liyong.qiao(a)intel.com>
+ */
+
+#include <config.h>
+#include <fcntl.h>
+#include <sys/file.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "virresctrl.h"
+#include "virerror.h"
+#include "virlog.h"
+#include "viralloc.h"
+#include "virstring.h"
+#include "virfile.h"
+
+VIR_LOG_INIT("util.resctrl");
+
+#define VIR_FROM_THIS VIR_FROM_RESCTRL
+#define SYSFS_RESCTRL_PATH "/sys/fs/resctrl/"
+
+VIR_ENUM_IMPL(virResctrl, VIR_RESCTRL_TYPE_LAST,
+ "L3",
+ "L3CODE",
+ "L3DATA",
+ "L2")
+
+/**
+ * a virResctrlDomain represents a resource control group, it's a directory
+ * under /sys/fs/resctrl.
+ * eg: /sys/fs/resctrl/CG1
+ * |-- cpus
+ * |-- schemata
+ * `-- tasks
+ * # cat schemata
+ * L3DATA:0=fffff;1=fffff
+ * L3CODE:0=fffff;1=fffff
+ *
+ * Besides, it can also represent the default resource control group of the
+ * host.
+ */
+
+typedef struct _virResctrlGroup virResctrlGroup;
+typedef virResctrlGroup *virResctrlGroupPtr;
+struct _virResctrlGroup {
+ char *name; /* resource group name, eg: CG1. If it represent host's
+ default resource group name, should be a NULL pointer */
+ size_t n_tasks; /* number of task assigned to the resource group */
+ char **tasks; /* task list which contains task id eg: 77454 */
+
+ size_t n_schematas; /* number of schemata the resource group contains,
+ eg: 2 */
+ virResctrlSchemataPtr *schematas; /* scheamta list */
+};
+
+/* All resource control groups on this host, including default resource group */
+typedef struct _virResctrlDomain virResctrlDomain;
+typedef virResctrlDomain *virResctrlDomainPtr;
+struct _virResctrlDomain {
+ size_t n_groups; /* number of resource control group */
+ virResctrlGroupPtr *groups; /* list of resource control group */
+};
+
+void
+virResctrlFreeSchemata(virResctrlSchemataPtr ptr)
+{
+ size_t i;
+
+ if (!ptr)
+ return;
+
+ for (i = 0; i < ptr->n_schemata_items; i++)
+ VIR_FREE(ptr->schemata_items[i]);
+}
+
+static void
+virResctrlFreeGroup(virResctrlGroupPtr ptr)
+{
+ size_t i;
+
+ if (!ptr)
+ return;
+
+ for (i = 0; i < ptr->n_tasks; i++)
+ VIR_FREE(ptr->tasks[i]);
+
+ for (i = 0; i < ptr->n_schematas; i++) {
+ virResctrlFreeSchemata(ptr->schematas[i]);
+ VIR_FREE(ptr->schematas[i]);
+ }
+}
+
+static void
+virResctrlFreeDomain(virResctrlDomainPtr ptr)
+{
+ size_t i;
+
+ if (!ptr)
+ return;
+
+ for (i = 0; i < ptr->n_groups; i++) {
+ virResctrlFreeGroup(ptr->groups[i]);
+ VIR_FREE(ptr->groups[i]);
+ }
+}
+
+static int
+virResctrlCopySchemata(virResctrlSchemataPtr src,
+ virResctrlSchemataPtr *dst)
+{
+ size_t i;
+ virResctrlSchemataItemPtr schemataitem;
+ virResctrlSchemataPtr schemata;
+
+ if (VIR_ALLOC(schemata) < 0)
+ return -1;
+
+ schemata->type = src->type;
+
+ for (i = 0; i < src->n_schemata_items; i++) {
+ if (VIR_ALLOC(schemataitem) < 0)
+ goto error;
+
+ schemataitem->cache_id = src->schemata_items[i]->cache_id;
+ schemataitem->continuous_schemata = src->schemata_items[i]->continuous_schemata;
+ schemataitem->schemata = src->schemata_items[i]->schemata;
+ schemataitem->size = src->schemata_items[i]->size;
+
+ if (VIR_APPEND_ELEMENT(schemata->schemata_items,
+ schemata->n_schemata_items,
+ schemataitem) < 0)
+ goto error;
+ }
+
+ *dst = schemata;
+
+ return 0;
+
+ error:
+ virResctrlFreeSchemata(schemata);
+ return -1;
+}
+
+static int
+virResctrlGetSchemataString(virResctrlType type,
+ const char *name,
+ char **schemata)
+{
+ int rc = -1;
+ char *tmp = NULL;
+ char *end = NULL;
+ char *buf = NULL;
+ char *type_suffix = NULL;
+
+ if (virFileReadValueString(&buf,
+ SYSFS_RESCTRL_PATH "%s/schemata",
+ name ? name : "") < 0)
+ return -1;
+
+ if (virAsprintf(&type_suffix,
+ "%s:",
+ virResctrlTypeToString(type)) < 0)
+ goto cleanup;
+
+ tmp = strstr(buf, type_suffix);
+
+ if (!tmp)
+ goto cleanup;
+
+ end = strchr(tmp, '\n');
+ if (end != NULL)
+ *end = '\0';
+
+ if (VIR_STRDUP(*schemata, tmp) < 0)
+ goto cleanup;
+
+ rc = 0;
+
+ cleanup:
+ VIR_FREE(buf);
+ VIR_FREE(type_suffix);
+ return rc;
+}
+
+static int
+virResctrlLoadSchemata(const char* schemata_str,
+ virResctrlSchemataPtr schemata)
+{
+ VIR_DEBUG("%s, %p\n", schemata_str, schemata);
+
+ int ret = -1;
+ char **lists = NULL;
+ char **sms = NULL;
+ char **sis = NULL;
+ size_t i;
+ virResctrlSchemataItemPtr si;
+
+ /* parse L3:0=fffff;1=f */
+ lists = virStringSplit(schemata_str, ":", 2);
+
+ if ((!lists) || (!lists[1]))
+ goto cleanup;
+
+ /* parse 0=fffff;1=f */
+ sms = virStringSplit(lists[1], ";", 0);
+ if (!sms)
+ goto cleanup;
+
+ for (i = 0; sms[i] != NULL; i++) {
+ /* parse 0=fffff */
+ sis = virStringSplit(sms[i], "=", 2);
+ if (!sis)
+ goto cleanup;
+
+ if (VIR_ALLOC(si) < 0)
+ goto cleanup;
+
+ if (virStrToLong_ui(sis[0], NULL, 10, &si->cache_id) < 0)
+ goto cleanup;
+
+ if (virStrToLong_ui(sis[1], NULL, 16, &si->continuous_schemata) < 0)
+ goto cleanup;
+
+ si->schemata = si->continuous_schemata;
+
+ if (VIR_APPEND_ELEMENT(schemata->schemata_items,
+ schemata->n_schemata_items,
+ si) < 0)
+ goto cleanup;
+
+ }
+
+ ret = 0;
+
+ cleanup:
+ VIR_FREE(si);
+ virStringListFree(lists);
+ virStringListFree(sms);
+ virStringListFree(sis);
+ return ret;
+}
+
+static int
+virResctrlLoadGroup(const char *name,
+ virResctrlDomainPtr dom)
+{
+ VIR_DEBUG("%s, %p\n", name, dom);
+
+ int ret = -1;
+ char *path = NULL;
+ char *schemata_str;
+ virResctrlType i;
+ int rv;
+ virResctrlGroupPtr grp;
+ virResctrlSchemataPtr schemata;
+
+ if ((virAsprintf(&path, "%s/%s", SYSFS_RESCTRL_PATH, name)) < 0)
+ return -1;
+
+ if (!virFileExists(path))
+ goto cleanup;
+
+ if (VIR_ALLOC(grp) < 0)
+ goto cleanup;
+
+ if (VIR_STRDUP(grp->name, name) < 0)
+ goto cleanup;
+
+ for (i = 0; i < VIR_RESCTRL_TYPE_LAST; i++) {
+ rv = virResctrlGetSchemataString(i, name, &schemata_str);
+ if (rv < 0)
+ continue;
+
+ if (VIR_ALLOC(schemata) < 0)
+ goto cleanup;
+
+ schemata->type = i;
+
+ if (virResctrlLoadSchemata(schemata_str, schemata) < 0)
+ goto cleanup;
+
+ VIR_FREE(schemata_str);
+
+ if (VIR_APPEND_ELEMENT(grp->schematas,
+ grp->n_schematas,
+ schemata) < 0)
+ goto cleanup;
+
+ virResctrlFreeSchemata(schemata);
+ }
+
+ if (VIR_APPEND_ELEMENT(dom->groups,
+ dom->n_groups,
+ grp) < 0)
+ goto cleanup;
+
+ ret = 0;
+
+ cleanup:
+ VIR_FREE(path);
+ virResctrlFreeGroup(grp);
+ return ret;
+}
+
+static int
+virResctrlLoadDomain(virResctrlDomainPtr dom)
+{
+ int ret = -1;
+ int rv = -1;
+ DIR *dirp = NULL;
+ char *path = NULL;
+ struct dirent *ent;
+
+ VIR_DEBUG("%s, %p\n", "", dom);
+
+ rv = virDirOpenIfExists(&dirp, SYSFS_RESCTRL_PATH);
+
+ if (rv < 0)
+ goto cleanup;
+
+ /* load default resctrl group */
+ if (virResctrlLoadGroup("", dom) < 0)
+ goto cleanup;
+
+ while ((rv = virDirRead(dirp, &ent, path)) > 0) {
+ /* only read directory in resctrl */
+ if ((ent->d_type != DT_DIR) || STREQ(ent->d_name, "info"))
+ continue;
+
+ if (virResctrlLoadGroup(ent->d_name, dom) < 0)
+ goto cleanup;
+ }
+
+ ret = 0;
+
+ cleanup:
+ virDirClose(&dirp);
+ return ret;
+}
+
+static void
+virResctrlRefreshDom(virResctrlDomainPtr dom, virResctrlType type)
+{
+ size_t i;
+ size_t j;
+ size_t k;
+
+ virResctrlGroupPtr default_grp = NULL;
+ virResctrlGroupPtr grp = NULL;
+ virResctrlSchemataPtr schemata = NULL;
+ virResctrlSchemataItemPtr schemataitem = NULL;
+
+ default_grp = dom->groups[0];
+
+ /* We are sure that the first group is the default one */
+ for (i = 1; i < dom->n_groups; i++) {
+ grp = dom->groups[i];
+ for (j = 0; j < grp->n_schematas; j++) {
+ schemata = grp->schematas[j];
+ /* we can only calculate one type of schemata */
+ if (schemata->type != type)
+ continue;
+ for (k = 0; k < schemata->n_schemata_items; k++) {
+ schemataitem = schemata->schemata_items[k];
+ /* if the schemata = 1, ignore it */
+ if (schemataitem->continuous_schemata > 1)
+ /* calculate default schemata, it can be non-continuous */
+ default_grp->schematas[j]->schemata_items[k]->schemata &= ~(schemataitem->continuous_schemata);
+ }
+ }
+ }
+}
+
+int virResctrlGetFreeCache(virResctrlType type,
+ virResctrlSchemataPtr *schemata)
+{
+ VIR_DEBUG("%d, %p\n", type, schemata);
+ int ret = -1;
+ size_t i;
+ virResctrlDomainPtr dom = NULL;
+ virResctrlGroupPtr grp = NULL;
+
+ if (VIR_ALLOC(dom) < 0)
+ return -1;
+
+ if (virResctrlLoadDomain(dom) < 0)
+ goto cleanup;
+
+ virResctrlRefreshDom(dom, type);
+ grp = dom->groups[0];
+
+ for (i = 0; i < grp->n_schematas; i ++)
+ if (grp->schematas[i]->type == type)
+ if (virResctrlCopySchemata(grp->schematas[i], schemata) < 0)
+ goto cleanup;
+
+ if (schemata != NULL)
+ ret = 0;
+
+ cleanup:
+ virResctrlFreeDomain(dom);
+ return ret;
+}
diff --git a/src/util/virresctrl.h b/src/util/virresctrl.h
new file mode 100644
index 0000000..1b040d4
--- /dev/null
+++ b/src/util/virresctrl.h
@@ -0,0 +1,86 @@
+/*
+ * virresctrl.h: header for managing resctrl control
+ *
+ * Copyright (C) 2017 Intel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Authors:
+ * Eli Qiao <liyong.qiao(a)intel.com>
+ */
+
+#ifndef __VIR_RESCTRL_H__
+# define __VIR_RESCTRL_H__
+
+#include "virutil.h"
+
+typedef enum {
+ VIR_RESCTRL_TYPE_L3,
+ VIR_RESCTRL_TYPE_L3_CODE,
+ VIR_RESCTRL_TYPE_L3_DATA,
+ VIR_RESCTRL_TYPE_L2,
+
+ VIR_RESCTRL_TYPE_LAST
+} virResctrlType;
+
+VIR_ENUM_DECL(virResctrl);
+
+/*
+ * a virResctrlSchemataItem represents one of schemata object in a
+ * resource control group.
+ * eg: 0=f
+ */
+typedef struct _virResctrlSchemataItem virResctrlSchemataItem;
+typedef virResctrlSchemataItem *virResctrlSchemataItemPtr;
+struct _virResctrlSchemataItem {
+ unsigned int cache_id; /* cache resource id, eg: 0 */
+ unsigned int continuous_schemata; /* schemata, should be a continuous bits,
+ eg: f, this schemata can be persisted
+ to sysfs */
+ unsigned int schemata; /* schemata eg: f0f, a schemata which is calculated
+ at running time */
+ unsigned long long size; /* the cache size schemata represented in B,
+ eg: (min * bits of continuous_schemata) */
+};
+
+/*
+ * a virResctrlSchemata represents schemata objects of specific type of
+ * resource in a resource control group.
+ * eg: L3:0=f,1=ff
+ */
+typedef struct _virResctrlSchemata virResctrlSchemata;
+typedef virResctrlSchemata *virResctrlSchemataPtr;
+struct _virResctrlSchemata {
+ virResctrlType type; /* resource control type, eg: L3 */
+ size_t n_schemata_items; /* number of schemata item, eg: 2 */
+ virResctrlSchemataItemPtr *schemata_items; /* pointer list of schemata item */
+};
+
+/* Get free cache of the host, result saved in schemata */
+int virResctrlGetFreeCache(virResctrlType type,
+ virResctrlSchemataPtr *schemata);
+
+
+/* TODO Need to first define virDomainCachetunePtr */
+/* Set cache allocation for a VM domain */
+// int virResctrlSetCacheBanks(virDomainCachetunePtr cachetune,
+// unsigned char *group_name,
+// size_t n_pids,
+// pid_t *pids);
+//
+/* remove cache allocation for a VM domain */
+// int virResctrlRemoveCacheBanks(unsigned char *group_name);
+void virResctrlFreeSchemata(virResctrlSchemataPtr ptr);
+#endif
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 3cc828d..0e09e43 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -229,6 +229,7 @@ if WITH_LINUX
test_programs += fchosttest
test_programs += scsihosttest
test_programs += vircaps2xmltest
+test_programs += virresctrltest
test_libraries += virusbmock.la \
virnetdevbandwidthmock.la \
virnumamock.la \
@@ -1150,6 +1151,10 @@ vircaps2xmltest_SOURCES = \
vircaps2xmltest.c testutils.h testutils.c virfilemock.c
vircaps2xmltest_LDADD = $(LDADDS)
+virresctrltest_SOURCES = \
+ virresctrltest.c testutils.h testutils.c virfilemock.c
+virresctrltest_LDADD = $(LDADDS)
+
virnumamock_la_SOURCES = \
virnumamock.c
virnumamock_la_CFLAGS = $(AM_CFLAGS)
@@ -1157,7 +1162,7 @@ virnumamock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
virnumamock_la_LIBADD = $(MOCKLIBS_LIBS)
else ! WITH_LINUX
-EXTRA_DIST += vircaps2xmltest.c virnumamock.c
+EXTRA_DIST += vircaps2xmltest.c virresctrltest.c virnumamock.c
endif ! WITH_LINUX
if WITH_NSS
diff --git a/tests/virresctrldata/L3-free.schemata b/tests/virresctrldata/L3-free.schemata
new file mode 100644
index 0000000..9b47d25
--- /dev/null
+++ b/tests/virresctrldata/L3-free.schemata
@@ -0,0 +1 @@
+L3:0=1ffff;1=1ffff
diff --git a/tests/virresctrldata/L3CODE-free.schemata b/tests/virresctrldata/L3CODE-free.schemata
new file mode 100644
index 0000000..7039c45
--- /dev/null
+++ b/tests/virresctrldata/L3CODE-free.schemata
@@ -0,0 +1 @@
+L3CODE:0=cffff;1=cffff
diff --git a/tests/virresctrldata/L3DATA-free.schemata b/tests/virresctrldata/L3DATA-free.schemata
new file mode 100644
index 0000000..30f1cbd
--- /dev/null
+++ b/tests/virresctrldata/L3DATA-free.schemata
@@ -0,0 +1 @@
+L3DATA:0=3ffff;1=3ffff
diff --git a/tests/virresctrltest.c b/tests/virresctrltest.c
new file mode 100644
index 0000000..4926468
--- /dev/null
+++ b/tests/virresctrltest.c
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) Intel, Inc. 2017
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Authors:
+ * Eli Qiao <liyong.qiao(a)intel.com>
+ */
+
+#include <config.h>
+#include <stdlib.h>
+
+#include "testutils.h"
+#include "virbitmap.h"
+#include "virfilemock.h"
+#include "virresctrl.h"
+
+
+#define VIR_FROM_THIS VIR_FROM_NONE
+
+struct virResctrlData {
+ const char *filename;
+ virResctrlType type;
+};
+
+static void
+GetSchemataStr(virResctrlSchemataPtr schemata, char **str)
+{
+ size_t i;
+ virBuffer buf = VIR_BUFFER_INITIALIZER;
+ virBufferAsprintf(&buf, "%s:%u=%x",
+ virResctrlTypeToString(schemata->type),
+ schemata->schemata_items[0]->cache_id,
+ schemata->schemata_items[0]->schemata);
+
+ for (i = 1; i < schemata->n_schemata_items; i ++)
+ virBufferAsprintf(&buf, ";%u=%x",
+ schemata->schemata_items[i]->cache_id,
+ schemata->schemata_items[i]->schemata);
+
+ *str = virBufferContentAndReset(&buf);
+}
+
+static int
+test_virResctrl(const void *opaque)
+{
+ struct virResctrlData *data = (struct virResctrlData *) opaque;
+ char *dir = NULL;
+ char *resctrl = NULL;
+ int ret = -1;
+ virResctrlSchemataPtr schemata = NULL;
+ char *schemata_str;
+ char *schemata_file;
+
+ if (virAsprintf(&resctrl, "%s/virresctrldata/linux-%s/resctrl",
+ abs_srcdir, data->filename) < 0)
+ goto cleanup;
+
+ if (virAsprintf(&schemata_file, "%s/virresctrldata/%s-free.schemata",
+ abs_srcdir, virResctrlTypeToString(data->type)) < 0)
+ goto cleanup;
+
+ virFileMockAddPrefix("/sys/fs/resctrl", resctrl);
+
+ if (virResctrlGetFreeCache(data->type, &schemata) < 0)
+ goto cleanup;
+
+ GetSchemataStr(schemata, &schemata_str);
+
+ if (virTestCompareToFile(schemata_str, schemata_file) < 0)
+ goto cleanup;
+
+ virFileMockClearPrefixes();
+
+ ret = 0;
+
+ cleanup:
+ VIR_FREE(dir);
+ VIR_FREE(resctrl);
+ VIR_FREE(schemata_str);
+ virResctrlFreeSchemata(schemata);
+ return ret;
+}
+
+static int
+mymain(void)
+{
+ int ret = 0;
+
+#define DO_TEST_FULL(filename, type) \
+ do { \
+ struct virResctrlData data = {filename, \
+ type}; \
+ if (virTestRun(filename, test_virResctrl, &data) < 0) \
+ ret = -1; \
+ } while (0)
+
+ DO_TEST_FULL("resctrl", VIR_RESCTRL_TYPE_L3);
+ DO_TEST_FULL("resctrl-cdp", VIR_RESCTRL_TYPE_L3_CODE);
+ DO_TEST_FULL("resctrl-cdp", VIR_RESCTRL_TYPE_L3_DATA);
+
+ return ret;
+}
+
+VIR_TEST_MAIN_PRELOAD(mymain, abs_builddir "/.libs/virnumamock.so")
--
1.9.1
7 years, 8 months
[libvirt] Making panic great again
by Ed Swierk
The panic device is currently documented as a way for "libvirt to receive
panic notification from a QEMU guest".
This is true, but not the whole story. When a guest triggers the panic
device, QEMU pauses the guest, and libvirt takes the action specified by
on_crash. This can interfere with the guest's own crash handling actions
(e.g. writing a dump file and rebooting itself) if the guest triggers the
panic device first (as Windows does).
None of this is an obvious side effect of a notification mechanism, so the
panic device documentation should mention it. (I'll send a documentation
patch shortly.)
Nor is this a desirable side effect, for guests that are configured to deal
with crashes themselves. Sure, you can avoid using the panic device with
such guests, but then virsh list or another application using the libvirt
API to monitor domain state won't notice guest crashes. And if you still
want libvirt to take action on guests that don't do it themselves, then you
have to be careful to include the panic device only for those domains.
Ideally libvirt would offer (1) a state indicating "this guest crashed and
needs help" independently of triggering an action, and (2) a way to trigger
an action only when needed to recover from the crash, excluding guests that
deal with their own crashes.
Sadly pvpanic and the HyperV crash MSR convey only that the guest crashed,
not whether the guest is configured to take some action on its own. So
there's no way to know precisely that a crashed (and not paused) guest is
in need of assistance.
But a state indicating "this guest crashed N minutes ago and hasn't
rebooted itself" would be a useful approximation. And triggering an action
N minutes after a guest crash if it hasn't rebooted itself in the meantime
would make it easy to cap the downtime of crashed domains. Both could be
implemented without changing either QEMU or panic device semantics.
Does this seem useful to anyone else?
--Ed
7 years, 8 months
[libvirt] [PATCHv3 0/6] Support more options for intel-iommu
by Ján Tomko
[Adding Peter Xu to cc to see if he has any opinion on the docs]
https://bugzilla.redhat.com/show_bug.cgi?id=1427005
v1: https://www.redhat.com/archives/libvir-list/2017-March/msg01072.html
v2: https://www.redhat.com/archives/libvir-list/2017-April/msg00932.html
new in v3:
* add more devices to qemuxml2argv-intel-iommu-caching.xml
to check the ordering (intel-iommu should come before
other devices)
* fix the capability clustering
Ján Tomko (6):
conf: add <irqchip mode> to <features>
qemu: format kernel_irqchip on the command line
conf: add <driver intremap> to <iommu>
qemu: format intremap= on intel-iommu command line
conf: add caching attribute to iommu device
qemu: format caching-mode on iommu command line
docs/formatdomain.html.in | 41 +++++++++-
docs/schemas/domaincommon.rng | 30 ++++++++
src/conf/domain_conf.c | 90 ++++++++++++++++++++--
src/conf/domain_conf.h | 14 ++++
src/libvirt_private.syms | 1 +
src/qemu/qemu_capabilities.c | 13 ++++
src/qemu/qemu_capabilities.h | 5 ++
src/qemu/qemu_command.c | 40 ++++++++++
tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_2.4.0.x86_64.replies | 22 ++++--
tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_2.5.0.x86_64.replies | 24 ++++--
tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 1 +
.../caps_2.6.0-gicv2.aarch64.xml | 1 +
.../caps_2.6.0-gicv3.aarch64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 1 +
.../qemucapabilitiesdata/caps_2.6.0.x86_64.replies | 24 ++++--
tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 1 +
.../qemucapabilitiesdata/caps_2.7.0.x86_64.replies | 28 +++++--
tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 2 +
tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 1 +
.../qemucapabilitiesdata/caps_2.8.0.x86_64.replies | 37 +++++++--
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 2 +
.../qemucapabilitiesdata/caps_2.9.0.x86_64.replies | 49 +++++++++---
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 3 +
.../qemuxml2argv-intel-iommu-caching.args | 25 ++++++
.../qemuxml2argv-intel-iommu-caching.xml | 50 ++++++++++++
.../qemuxml2argv-intel-iommu-irqchip.args | 19 +++++
.../qemuxml2argv-intel-iommu-irqchip.xml | 31 ++++++++
tests/qemuxml2argvtest.c | 16 ++++
.../qemuxml2xmlout-intel-iommu-caching.xml | 1 +
.../qemuxml2xmlout-intel-iommu-irqchip.xml | 1 +
tests/qemuxml2xmltest.c | 2 +
37 files changed, 533 insertions(+), 49 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-intel-iommu-caching.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-intel-iommu-caching.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-intel-iommu-irqchip.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-intel-iommu-irqchip.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-caching.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-irqchip.xml
--
2.10.2
7 years, 8 months
[libvirt] [PATCH] docs: Add details about panic device behavior
by Ed Swierk
When a guest triggers the panic device, QEMU pauses the guest, and
libvirt takes the action specified by on_crash. This can interfere
with the guest's own crash handling actions (like writing a dump file
and rebooting itself) if the guest triggers the panic device first (as
Windows does via the Hyper-V crash CPU feature). This is not an
obvious side effect of a notification mechanism, so it's worth
explaining.
Signed-off-by: Ed Swierk <eswierk(a)skyportsystems.com>
---
docs/formatdomain.html.in | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index e31a271..1c5fdb9 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -7078,7 +7078,11 @@ qemu-kvm -net nic,model=? /dev/null
<h4><a name="elementsPanic">panic device</a></h4>
<p>
panic device enables libvirt to receive panic notification from a QEMU
- guest.
+ guest. When the guest triggers the panic device, QEMU pauses the guest, and
+ libvirt takes the action specified by the <code>on_crash</code> element.
+ Note that this may interfere with the guest's own crash handling actions
+ (like writing a dump file and rebooting itself) if the guest triggers the
+ panic device first (as Windows does via the Hyper-V crash CPU feature).
<span class="since">Since 1.2.1, QEMU and KVM only</span>
</p>
<p>
--
1.9.1
7 years, 8 months
[libvirt] [PATCH] news: Document libxl nested HVM support
by Jim Fehlig
Nested HVM support in the libxl driver is a news-worthy
improvement for libvirt 3.3.0.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
docs/news.xml | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index 1f558451f..5dc8403b4 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -48,6 +48,17 @@
ease handling such breaks if they happen in the future.
</description>
</change>
+ <change>
+ <summary>
+ Add support for nested HVM domains in the libxl driver.
+ </summary>
+ <description>
+ Xen has supported nested HVM domains since version 4.4. The
+ libvirt libxl driver now supports nested HVM domains by
+ specifying the host-passthrough CPU mode when defining a
+ domain.
+ </description>
+ </change>
</section>
<section title="Bug fixes">
</section>
--
2.11.0
7 years, 8 months
[libvirt] [PATCH] conf: format only relevant attributes for graphics based on listen type
by Pavel Hrdina
This patch changes following output:
...
<graphics type='vnc' port='-1' autoport='yes'>
<listen type='none'/>
</graphics>
...
into this output:
...
<graphics type='vnc'>
<listen type='none'/>
</graphics>
...
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
src/conf/domain_conf.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index fe9b7c7273..88bcd6c052 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -23297,7 +23297,8 @@ virDomainGraphicsDefFormat(virBufferPtr buf,
return -1;
}
- if (glisten->type == VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET) {
+ switch (glisten->type) {
+ case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET:
/* To not break migration we shouldn't print the 'socket' attribute
* if it's auto-generated or if it's based on config option from
* qemu.conf. If the socket is provided by user we need to print it
@@ -23307,7 +23308,10 @@ virDomainGraphicsDefFormat(virBufferPtr buf,
(flags & VIR_DOMAIN_DEF_FORMAT_MIGRATABLE))) {
virBufferEscapeString(buf, " socket='%s'", glisten->socket);
}
- } else {
+ break;
+
+ case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS:
+ case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NETWORK:
if (def->data.vnc.port &&
(!def->data.vnc.autoport || !(flags & VIR_DOMAIN_DEF_FORMAT_INACTIVE)))
virBufferAsprintf(buf, " port='%d'",
@@ -23325,6 +23329,10 @@ virDomainGraphicsDefFormat(virBufferPtr buf,
virBufferAsprintf(buf, " websocket='%d'", def->data.vnc.websocket);
virDomainGraphicsListenDefFormatAddr(buf, glisten, flags);
+ break;
+ case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE:
+ case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST:
+ break;
}
if (def->data.vnc.keymap)
--
2.12.2
7 years, 8 months
[libvirt] [PATCH v2 0/3] conf: don't ignore <target dev='blah'/> for macvtap interfaces
by Laine Stump
The parser had been clearing out *all* suggested device names for
type='direct' (aka macvtap) interfaces. All of the code implementing
macvtap allows for a user-specified device name, so we should allow
it. In the case that an interface name starts with "macvtap" or
"macvlan" though, we do still clear it out, just as we do with "vnet"
(which is the prefix used for automatically generated tap device
names), since those are the prefixes for the names we autogenerate for
macvtap and macvlan devices.
Resolves: https://bugzilla.redhat.com/1335798
Changes since V1:
* make a single #define for each of MACVLAN_PREFIX and MACVTAP_PREFIX
in virnetdevmacvlan.h rather than duplicating #defines from
virnetdevmacvlan.c into domain_conf.h (as suggested by Martin
* move/rename the auto-generated prefix for regular tap devices to be
consistent with the macvtap/macvlan prefixes.
Laine Stump (3):
util: make macvtap/macvlan generated name #defines available to other
files
conf: don't ignore <target dev='blah'/> for macvtap interfaces
util: rename/move VIR_NET_GENERATED_PREFIX to be consistent
docs/formatdomain.html.in | 6 ++--
src/bhyve/bhyve_command.c | 4 +--
src/conf/domain_conf.c | 11 ++++--
src/conf/domain_conf.h | 4 ---
src/interface/interface_backend_udev.c | 2 +-
src/qemu/qemu_interface.c | 8 ++---
src/uml/uml_conf.c | 4 +--
src/util/virnetdev.h | 5 +++
src/util/virnetdevmacvlan.c | 65 ++++++++++++++--------------------
src/util/virnetdevmacvlan.h | 6 ++++
10 files changed, 57 insertions(+), 58 deletions(-)
--
2.9.3
7 years, 8 months