qemu-irix/tests
Francesco Romani e2462113b2 block: add event when disk usage exceeds threshold
Managing applications, like oVirt (http://www.ovirt.org), make extensive
use of thin-provisioned disk images.
To let the guest run smoothly and be not unnecessarily paused, oVirt sets
a disk usage threshold (so called 'high water mark') based on the occupation
of the device,  and automatically extends the image once the threshold
is reached or exceeded.

In order to detect the crossing of the threshold, oVirt has no choice but
aggressively polling the QEMU monitor using the query-blockstats command.
This lead to unnecessary system load, and is made even worse under scale:
deployments with hundreds of VMs are no longer rare.

To fix this, this patch adds:
* A new monitor command `block-set-write-threshold', to set a mark for
  a given block device.
* A new event `BLOCK_WRITE_THRESHOLD', to report if a block device
  usage exceeds the threshold.
* A new `write_threshold' field into the `BlockDeviceInfo' structure,
  to report the configured threshold.

This will allow the managing application to use smarter and more
efficient monitoring, greatly reducing the need of polling.

[Updated qemu-iotests 067 output to add the new 'write_threshold'
property. --Stefan]
[Changed g_assert_false() to !g_assert() to fix the build on older glib
versions. --Kevin]

Signed-off-by: Francesco Romani <fromani@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 1421068273-692-1-git-send-email-fromani@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2015-02-06 17:24:21 +01:00
..
acpi-test-data acpi-test: update expected DSDT 2015-01-27 14:45:10 +02:00
image-fuzzer block: delete cow block driver 2014-09-22 11:39:45 +01:00
libqos libqos: Convert malloc-pc allocator to a generic allocator 2015-01-13 11:47:57 +00:00
multiboot tests/multiboot: Add test for modules 2015-01-26 12:22:44 +01:00
qapi-schema tests: add QMP input visitor test for unions with no discriminator 2014-09-26 13:14:11 -04:00
qemu-iotests block: add event when disk usage exceeds threshold 2015-02-06 17:24:21 +01:00
tcg target-xtensa: test cross-page opcode 2014-12-17 05:49:32 +03:00
vmstate-static-checker-data tests: vmstate static checker: add size mismatch inside substructure 2014-06-23 19:14:52 +02:00
.gitignore qapi: Ignore files created during make check 2014-09-26 21:18:15 +04:00
Makefile block: add event when disk usage exceeds threshold 2015-02-06 17:24:21 +01:00
ac97-test.c
ahci-test.c misc: Fix new typos in comments 2015-01-15 10:44:13 +03:00
bios-tables-test.c bios-tables-test: split piix4 and q35 tests 2015-01-27 14:46:17 +02:00
boot-order-test.c
check-block.sh
check-qdict.c
check-qfloat.c
check-qint.c
check-qjson.c
check-qlist.c
check-qom-interface.c
check-qstring.c
display-vga-test.c
drive_del-test.c qtests: Specify image format explicitly 2014-12-10 10:31:12 +01:00
e1000-test.c
eepro100-test.c
endianness-test.c
es1370-test.c
fdc-test.c qtests: Specify image format explicitly 2014-12-10 10:31:12 +01:00
fw_cfg-test.c
hd-geo-test.c tests/hd-geo-test.c: Remove unused test_image variable 2015-01-15 10:44:13 +03:00
i440fx-test.c qtests: Specify image format explicitly 2014-12-10 10:31:12 +01:00
i82801b11-test.c
ide-test.c qtests: Specify image format explicitly 2014-12-10 10:31:12 +01:00
intel-hda-test.c
ioh3420-test.c
ipoctal232-test.c
libqtest.c tests: Add virtio device initialization 2014-09-08 11:12:43 +01:00
libqtest.h glib: add compatibility interface for g_get_monotonic_time() 2014-10-15 13:43:35 +01:00
m48t59-test.c
ne2000-test.c
nvme-test.c qtests: Specify image format explicitly 2014-12-10 10:31:12 +01:00
pcnet-test.c
pvpanic-test.c
qemu-iotests-quick.sh qemu-iotests: Speed up make check-block 2015-01-13 11:47:55 +00:00
qom-test.c libqtest: escape strings in QMP commands, fix leak 2014-07-01 10:20:41 +02:00
rcutorture.c rcu: allow nesting of rcu_read_lock/rcu_read_unlock 2015-02-02 16:55:10 +01:00
rtc-test.c
rtl8139-test.c
spapr-phb-test.c
test-aio.c async: aio_context_new(): Handle event_notifier_init failure 2014-09-22 11:39:48 +01:00
test-bitops.c tests: Add missing include to test-bitops.c 2014-11-02 10:04:34 +03:00
test-coroutine.c test-coroutine: avoid overflow on 32-bit systems 2015-01-13 13:43:29 +00:00
test-cutils.c
test-hbitmap.c
test-int128.c
test-iov.c
test-mul64.c
test-opts-visitor.c
test-qdev-global-props.c qdev: Move global validation to a single function 2014-09-18 21:51:24 +03:00
test-qemu-opts.c tests: Add missing 'static' attributes (fix warnings from smatch) 2014-07-18 17:45:37 +04:00
test-qmp-commands.c
test-qmp-event.c tests/test-qmp-event: fix for GLib < 2.31 2014-06-30 15:06:11 +02:00
test-qmp-input-strict.c tests: add QMP input visitor test for unions with no discriminator 2014-09-26 13:14:11 -04:00
test-qmp-input-visitor.c
test-qmp-output-visitor.c
test-rfifolock.c
test-string-input-visitor.c
test-string-output-visitor.c tests: Fix unterminated string output visitor enum human string 2014-07-14 12:03:20 +02:00
test-thread-pool.c block: Rename BlockDriverAIOCB* to BlockAIOCB* 2014-10-20 13:41:27 +02:00
test-throttle.c async: aio_context_new(): Handle event_notifier_init failure 2014-09-22 11:39:48 +01:00
test-visitor-serialization.c tests: Add missing 'static' attributes (fix warnings from smatch) 2014-07-18 17:45:37 +04:00
test-vmstate.c migration: Append JSON description of migration stream 2015-02-05 17:16:14 +01:00
test-write-threshold.c block: add event when disk usage exceeds threshold 2015-02-06 17:24:21 +01:00
test-x86-cpuid.c
test-xbzrle.c
tmp105-test.c libqtest: escape strings in QMP commands, fix leak 2014-07-01 10:20:41 +02:00
tpci200-test.c
usb-hcd-ehci-test.c tests: usb: Generic usb device hotplug 2014-10-15 05:03:13 +02:00
usb-hcd-ohci-test.c tests: usb: Generic usb device hotplug 2014-10-15 05:03:13 +02:00
usb-hcd-uhci-test.c qtests: Specify image format explicitly 2014-12-10 10:31:12 +01:00
usb-hcd-xhci-test.c qtests: Specify image format explicitly 2014-12-10 10:31:12 +01:00
vhost-user-test.c vhost-user-test: Fix 'make check' broken on glib < 2.26 2014-11-05 12:53:08 +00:00
virtio-9p-test.c
virtio-balloon-test.c
virtio-blk-test.c qtests: Specify image format explicitly 2014-12-10 10:31:12 +01:00
virtio-console-test.c
virtio-net-test.c tests: virtio-net: Check if hot-plug/unplug works 2014-10-15 05:03:12 +02:00
virtio-rng-test.c tests: virtio-rng: Check if hot-plug/unplug works 2014-10-15 05:03:12 +02:00
virtio-scsi-test.c qtests: Specify image format explicitly 2014-12-10 10:31:12 +01:00
virtio-serial-test.c tests: virtio-serial: Check if hot-plug/unplug works 2014-10-15 05:03:12 +02:00
vmxnet3-test.c
wdt_ib700-test.c qtest: new test for wdt_ib700 2014-07-18 14:57:35 +02:00