Since I'm a procrastinator and I wanted to do this after full node-name support is added I'm kind of late for this release here. Since oVirt is asking for this feature for a very long time I would like to deliver it ASAP though. This series adds a event which is fired once a guest writes beyond a configured offset in the backing file. The threshold offset is configurable via a new API. This series is in RFC state since I did not manage to polish few details mostly connected to node names: - currently only the top level image can be selected - some blockjobs may clear the remembered node names and thus break this ( re-detection of the backing chain needs to be connected with node name detection ) - the node name detection code is VERY crude - I'm not sure how well it plays with qcow images, since I select only the top level node (qcow protocol) rather than the file backing it - the documentation probably sucks since I did not proof-read Any feedback is welcome. Peter Krempa (12): util: storage: Split out useful bits of virStorageFileParseChainIndex util: storage: Add preliminary storage for node names into virStorageSource lib: Introduce event for tracking disk backing file write threshold qemu: monitor: Add support for BLOCK_WRITE_THRESHOLD event qemu: domain: Add helper to lookup disk by node name qemu: domain: Add helper to generate indexed backing store names qemu: process: Wire up firing of the VIR_DOMAIN_EVENT_ID_BLOCK_THRESHOLD event lib: Add API for setting the threshold size for VIR_DOMAIN_EVENT_ID_BLOCK_THRESHOLD virsh: Implement 'blockthreshold' command to call virDomainSetBlockThreshold qemu: domain: Add helper to look up disk soruce by the backing store string qemu: implement qemuDomainSetBlockThreshold qemu: WIP: lookup nodenames daemon/remote.c | 43 +++++++++ examples/object-events/event-test.c | 19 ++++ include/libvirt/libvirt-domain.h | 36 +++++++ src/conf/domain_event.c | 97 +++++++++++++++++++ src/conf/domain_event.h | 15 +++ src/driver-hypervisor.h | 8 ++ src/libvirt-domain.c | 51 ++++++++++ src/libvirt_private.syms | 4 + src/libvirt_public.syms | 1 + src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_domain.c | 103 ++++++++++++++++++++ src/qemu/qemu_domain.h | 14 +++ src/qemu/qemu_driver.c | 64 +++++++++++++ src/qemu/qemu_monitor.c | 42 ++++++++- src/qemu/qemu_monitor.h | 19 ++++ src/qemu/qemu_monitor_json.c | 65 ++++++++++++- src/qemu/qemu_monitor_json.h | 6 ++ src/qemu/qemu_process.c | 41 ++++++++ src/remote/remote_driver.c | 34 +++++++ src/remote/remote_protocol.x | 33 ++++++- src/remote_protocol-structs | 16 ++++ src/util/virstoragefile.c | 105 ++++++++++++++++++--- src/util/virstoragefile.h | 14 +++ tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 1 + 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 + tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 + tools/virsh-domain.c | 84 +++++++++++++++++ tools/virsh.pod | 8 ++ 37 files changed, 922 insertions(+), 14 deletions(-) -- 2.11.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list