Still in RFC stage because I need more work on qemu to turn on
auto-node-naming, then corresponding work in libvirt to do
node name lookups for both setting the threshold and for mapping
events back to the right device name. But with this series in
place and a simple hack to qemu to allow threshold settings on
the active layer of a device (wrong node), I was able to do
round trip threshold modifications (set a number, and read it
back correctly) and rudimentary threshold event testing (I set
such a low threshold that pretty much any guest write was enough
to fire the event, although the corresponding length past the
offset was unpredictable and had no bearing on whether the host
allocation had actually changed as a result of the guest write).
Posting now, since most of these patches will be fairly similar
to their final form; only those touching src/qemu/ will need
changes, once I get the counterpart qemu patches for
auto-node-naming working and integrated.
Eric Blake (8):
threshold: new API virDomainBlockSetWriteThreshold
threshold: expose new API in virsh
threshold: new event object for tracking write threshold
threshold: wire up threshold event in RPC
threshold: add qemu capability bit
threshold: add threshold event handling in qemu
threshold: scrape threshold data from QMP
threshold: add write threshold setting in qemu
daemon/remote.c | 39 +++++++++++++++
include/libvirt/libvirt-domain.h | 47 ++++++++++++++++++
src/conf/domain_event.c | 93 +++++++++++++++++++++++++++++++++-
src/conf/domain_event.h | 14 +++++-
src/driver-hypervisor.h | 7 +++
src/libvirt-domain.c | 95 +++++++++++++++++++++++++++++++++++
src/libvirt_private.syms | 2 +
src/libvirt_public.syms | 5 ++
src/qemu/qemu_capabilities.c | 4 +-
src/qemu/qemu_capabilities.h | 3 +-
src/qemu/qemu_driver.c | 104 +++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor.c | 27 ++++++++++
src/qemu/qemu_monitor.h | 17 +++++++
src/qemu/qemu_monitor_json.c | 79 +++++++++++++++++++++++++++++
src/qemu/qemu_monitor_json.h | 3 ++
src/qemu/qemu_process.c | 34 +++++++++++++
src/remote/remote_driver.c | 34 +++++++++++++
src/remote/remote_protocol.x | 29 ++++++++++-
src/remote_protocol-structs | 15 ++++++
tests/qemumonitortest.c | 13 ++---
tools/virsh-domain-monitor.c | 81 ++++++++++++++++++++++++++++++
tools/virsh-domain.c | 23 +++++++++
tools/virsh.pod | 25 ++++++++++
23 files changed, 782 insertions(+), 11 deletions(-)
--
2.4.2