I think thanks to previous patches regarding sysfs, this should be very easy to review. The XML snippet that shows how the capablity XML looks like can be seen in the second to last patch which adds test for it. Again, first few patches are trivial because I couldn't be bothered to split the branch in two and writing two cover letters and moreover those are patches for trivialities I stumbled upon during the work on this series. Also, this series is based upon Peter's news.xml validation against RNG schema: https://www.redhat.com/archives/libvir-list/2017-March/msg01478.html Previous discussion threads on the XML design and patches touching this topic can be found here (not meant to be a complete list): https://www.redhat.com/archives/libvir-list/2017-January/msg00354.html https://www.redhat.com/archives/libvir-list/2017-January/msg00512.html https://www.redhat.com/archives/libvir-list/2017-January/msg00633.html https://www.redhat.com/archives/libvir-list/2017-February/msg00777.html https://www.redhat.com/archives/libvir-list/2017-March/msg00197.html Martin Kletzander (16): conf: Fix possible memleak in capabilities util: Fix virDirRead() description virsysfs: Add comments to separate logical blocks of functions util: Add virStringTrimOptionalNewline util: Add virFileReadValueScaledInt util: Add virSysfsDirOpen util: Add virSysfsCpuDirOpen util: Use virStringTrimOptionalNewline in virFileRead* util: Unify behaviour of the functions in sysfs.c util: Add virSysfsGetCPUCache* functions tests: Test capability XMLs in vircaps2xmldata Add RNG schema for host cache information in capabilities Add host cache information into capabilities tests: Add missing cache data for vircaps2xmltest tests: Add tests for caches into vircaps2xmltest Init host cache info in drivers docs/schemas/capability.rng | 34 +++++ src/conf/capabilities.c | 162 ++++++++++++++++++++- src/conf/capabilities.h | 29 ++++ src/libvirt_private.syms | 9 ++ 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 | 50 +++++-- src/util/virfile.h | 1 + src/util/virhostcpu.c | 4 +- src/util/virstring.h | 8 + src/util/virsysfs.c | 162 +++++++++++++++++++-- src/util/virsysfs.h | 56 +++++++ src/vbox/vbox_common.c | 3 + src/vmware/vmware_conf.c | 3 + src/vz/vz_driver.c | 2 + .../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/vircaps-x86_64-caches.xml | 15 ++ tests/vircaps2xmltest.c | 3 +- tests/virschematest.c | 3 +- 101 files changed, 608 insertions(+), 79 deletions(-) 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 -- 2.12.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list