Hi, all.
I started this work as adding missing parts/fixing issues/etc in block iotune
code but then turned to refactoring code. We use a lot of macros in this place
and if we get rid of them I belive we will have much more readable/reusable/
extendable code.
Most of macros usage is for iterating over unsigned long long values. I'm
talking about parsing/formating xml, converting from/to virTypedParameterPtr
list etc. These places do not care about tune semantics and thus we can
add tools for the said iteration. See patch [1] for the first such conversion.
Patches before it partially prepare for this conversion, partially just
improve code reuse and add missing parts.
The work on removing macros in code handling iotunes is not finished as
I wanted to get an approvement that I have taken a right direction. At the
same time series shows the potential of the approach (take a look on how
qemuDomainSetBlockIoTune and testDomainSetBlockIoTune are looking now!).
Some places like qemuDomainSetBlockIoTuneDefaults deal with fields semantics.
So we need another approach to remove macros there but it is a matter of
a different RFC.
Nikolay Shirokovskiy (23):
qemu: pass supportGroupNameOption as expected
qemu: factor out qemuValidateDomainBlkdeviotune
qemu: reuse validation in qemuDomainSetBlockIoTune
qemu: remove extra check for QEMU_BLOCK_IOTUNE_MAX
conf: factor out virDomainBlockIoTuneValidate
qemu: reuse virDomainBlockIoTuneValidate
test driver: reuse virDomainBlockIoTuneValidate
qemu: reset max iotune setting when needed
qemu: add max iotune settings check to virDomainBlockIoTuneValidate
qemu: remove iotune max checks
test driver: remove iotune max checks
qemu: prepare for removing qemuBlockIoTuneSetFlags
qemu: use group_name instead of QEMU_BLOCK_IOTUNE_SET_GROUP_NAME
qemu: remove qemuBlockIoTuneSetFlags usage in qemuDomainSetBlockIoTune
qemu: remove qemuBlockIoTuneSetFlags enum completly
conf: get rid of macros in virDomainDiskDefIotuneParse [1]
conf: get rid of macros in virDomainDiskDefFormatIotune
conf: add virDomainBlockIoTuneFromParams
conf: add virDomainBlockIoTuneToEventParams
qemu: qemuDomainSetBlockIoTune use functions to convert to/from params
test driver: remove TEST_BLOCK_IOTUNE_MAX checks
test driver: prepare to delete macros in testDomainSetBlockIoTune
test driver: testDomainSetBlockIoTune: use functions to convert
to/from params
src/conf/domain_conf.c | 303 +++++++++++++++++++++++++++++++++--------------
src/conf/domain_conf.h | 16 +++
src/libvirt_private.syms | 3 +
src/qemu/qemu_driver.c | 281 ++++++++++++-------------------------------
src/qemu/qemu_validate.c | 100 +++++++++-------
src/qemu/qemu_validate.h | 4 +
src/test/test_driver.c | 156 ++----------------------
7 files changed, 380 insertions(+), 483 deletions(-)
--
1.8.3.1