[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v6 0/6] add throttle block driver filter
From: |
Manos Pitsidianakis |
Subject: |
[Qemu-devel] [PATCH v6 0/6] add throttle block driver filter |
Date: |
Mon, 21 Aug 2017 12:31:44 +0300 |
This series adds a throttle block driver filter. Currently throttling is done
at the BlockBackend level. Using block driver interfaces we can move the
throttling to any point in the BDS graph using a throttle node which uses the
existing throttling code. This allows for potentially more complex
configurations (throttling at any point in the graph, chained filters)
v6:
don't allow named group limit configuration in block/throttle.c; allow either
-drive driver=throttle,file.filename=foo.qcow2, \
limits.iops-total=...
or
-drive driver=throttle,file.filename=foo.qcow2,throttle-group=bar
fixes suggested by berto
v5:
fix crash in 'add aio_context field in ThrottleGroupMember'
fix suggestions in block/throttle.c
v4:
fix suggestions in block/throttle.c
fix suggestions in block/throttle_groups.c
add doc note in BlockDevOptionsThrottle
v3:
fix style error in 'add aio_context field in ThrottleGroupMember'
v2:
change QOM throttle group object name
print valid ranges for uint on error
move frees in throttle_group_obj_finalize()
split throttle_group_{set,get}()
add throttle_recurse_is_first_non_filter()
Manos Pitsidianakis (6):
block: move ThrottleGroup membership to ThrottleGroupMember
block: add aio_context field in ThrottleGroupMember
block: tidy ThrottleGroupMember initializations
block: convert ThrottleGroup to object with QOM
block: add throttle block filter driver
qemu-iotests: add 184 for throttle filter driver
qapi/block-core.json | 70 +++-
include/block/throttle-groups.h | 47 ++-
include/qapi/qmp/qdict.h | 1 +
include/qemu/throttle-options.h | 60 ++--
include/qemu/throttle.h | 3 +
include/sysemu/block-backend.h | 20 +-
block/block-backend.c | 62 ++--
block/qapi.c | 8 +-
block/throttle-groups.c | 734 +++++++++++++++++++++++++++++-----------
block/throttle.c | 332 ++++++++++++++++++
blockdev.c | 4 +-
qobject/qdict.c | 2 +-
tests/test-throttle.c | 111 +++---
util/throttle.c | 151 +++++++++
block/Makefile.objs | 1 +
tests/qemu-iotests/184 | 244 +++++++++++++
tests/qemu-iotests/184.out | 339 +++++++++++++++++++
tests/qemu-iotests/group | 1 +
18 files changed, 1868 insertions(+), 322 deletions(-)
create mode 100644 block/throttle.c
create mode 100755 tests/qemu-iotests/184
create mode 100644 tests/qemu-iotests/184.out
--
2.11.0
- [Qemu-devel] [PATCH v6 0/6] add throttle block driver filter,
Manos Pitsidianakis <=
- [Qemu-devel] [PATCH v6 6/6] qemu-iotests: add 184 for throttle filter driver, Manos Pitsidianakis, 2017/08/21
- [Qemu-devel] [PATCH v6 2/6] block: add aio_context field in ThrottleGroupMember, Manos Pitsidianakis, 2017/08/21
- [Qemu-devel] [PATCH v6 4/6] block: convert ThrottleGroup to object with QOM, Manos Pitsidianakis, 2017/08/21
- [Qemu-devel] [PATCH v6 1/6] block: move ThrottleGroup membership to ThrottleGroupMember, Manos Pitsidianakis, 2017/08/21
- [Qemu-devel] [PATCH v6 5/6] block: add throttle block filter driver, Manos Pitsidianakis, 2017/08/21
- [Qemu-devel] [PATCH v6 3/6] block: tidy ThrottleGroupMember initializations, Manos Pitsidianakis, 2017/08/21