This series adds iotest case for IO throttling. There is a change in qemu-io sub-commands "aio_read" and "aio_write", which makes the aio requests accounted and the statistics reflected in blockstats.
Note that IO throttling implementation allows overcommiting of requests, so the actual IO happened in a time unit may be a bit larger than given limits. In the test case, the stats numbers are compared against 110%, to make room for such flexibility in order to improve determinism. v2: [01/05] qemu-io: Account IO by aio_read and aio_write Account unconditionally. (Paolo) [02/05] qtest: Add scripts/qtest/qtest.py New. [03/05] qemu-iotests: Add VM method qtest() to iotests.py Utilize qtests.py [04/05] qemu-iotests: Allow caller to disable underscore convertion for qmp Fix commit spelling. (Eric) [05/05] qemu-iotests: Add 080 for IO throttling Add assertion on ending blockstats. Spell fix. (Stefan) Change bps limits to 1024. (Stefan) Remove commented line. (Stefan) Add comment on overriding "bps_max" and "iops_max". (Stefan) Reduce amount of requests issued with qemu-io cmd. (Stefan) Change "<" to "<=" in check_limits, it's safer for burst. Fam Zheng (5): qemu-io: Account IO by aio_read and aio_write qtest: Add scripts/qtest/qtest.py qemu-iotests: Add VM method qtest() to iotests.py qemu-iotests: Allow caller to disable underscore convertion for qmp qemu-iotests: Add 080 for IO throttling qemu-io-cmds.c | 10 +++ scripts/qtest | 5 -- scripts/qtest/qtest.py | 78 +++++++++++++++++++ tests/qemu-iotests/080 | 172 ++++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/080.out | 5 ++ tests/qemu-iotests/group | 1 + tests/qemu-iotests/iotests.py | 27 ++++++- 7 files changed, 289 insertions(+), 9 deletions(-) delete mode 100755 scripts/qtest create mode 100644 scripts/qtest/qtest.py create mode 100755 tests/qemu-iotests/080 create mode 100644 tests/qemu-iotests/080.out -- 1.8.5.4