These patches provide the qmp interface, to query the io throttle
status of the all fsdev devices that are present in a vm.
also, it provides an interface to set the io throttle parameters of a
fsdev to a required value. some of the patches also remove the duplicate
code that was present in block and fsdev files.
Pradeep Jagadeesh (6):
throttle: factor out duplicate code
qmp: Create IOThrottle structure
throttle: move out function to reuse the code
hmp: create a throttle initialization function for code reusability
fsdev: hmp interface for throttling
fsdev: QMP interface for throttling
Makefile | 4 ++
blockdev.c | 97 ++-------------------------------
fsdev/qemu-fsdev-dummy.c | 10 ++++
fsdev/qemu-fsdev-throttle.c | 118 ++++++++++++++++++++++++++--------------
fsdev/qemu-fsdev-throttle.h | 13 +++++
fsdev/qemu-fsdev.c | 37 +++++++++++++
hmp-commands-info.hx | 18 ++++++
hmp-commands.hx | 19 +++++++
hmp.c | 87 +++++++++++++++++++++++++++--
hmp.h | 4 ++
include/qemu/throttle-options.h | 6 ++
include/qemu/throttle.h | 4 +-
include/qemu/typedefs.h | 1 +
monitor.c | 5 ++
qapi-schema.json | 3 +
qapi/block-core.json | 76 +-------------------------
qapi/fsdev.json | 84 ++++++++++++++++++++++++++++
qapi/iothrottle.json | 88 ++++++++++++++++++++++++++++++
qmp.c | 14 +++++
util/throttle.c | 110 +++++++++++++++++++++++++++++++++++++
20 files changed, 582 insertions(+), 216 deletions(-)
create mode 100644 qapi/fsdev.json
create mode 100644 qapi/iothrottle.json
v0 -> v1:
Addressed comments from Eric Blake, Greg Kurz and Daniel P.Berrange
Mainly renaming the functions and removing the redundant code.
v1 -> v2:
Addressed comments from Eric Blake and Greg Kurz.
As per the suggestion I split the patches into smaller patches.
Removed some more duplicate code.
v2 -> v3:
Addresssed comments from Alberto Garcia.
Changed the comment from block to iothrottle in the iothrottle.json
Added the dummy functions in qemu-fsdev-dummy.c to address the compilation
issues that were observed.
v3 -> v4:
Addressed comments from Eric Blake and Greg Kurz
Re-ordered the patches
Added the dummy functions in qmp.c to address the cross compilation issues
v4 -> v5:
Addressed comments from Eric Blake and Greg Kurz
Split the fsdev qmp patch into hmp and qmp related patches
Moved the common functionalities to throttle.c instead of creating
a new file
v5 -> v6:
Addressed comments from Greg Kurz and Markus Armbruster
Split the commits to specific to hmp and throttle as suggested by Greg
Moved ThrottleConfig typedef to qemu/typedefs.h
Addressed compilation issue on FreeBSD by adding flags in qmp.c
--
1.8.3.1