Right now, libvirt only supports the cfq based blkio cgorup,
this means if the block devices doesn't use cfq scheduler, the
blkio cgroup will loss effect.
This patchset adds the throttle blkio cgroup support for libvirt,
introduces four elements for domain configuration and extend the
virsh command blkiotune.
This patchset is a new version of Guan Qiang's patchset
://www.redhat.com/archives/libvir-list/2013-October/msg01066.html
Change from v1:
1, rearrange the order of patches
2, change the options/elements of throttle blkio cgroup to consist
with disk iotune.
3, fix complie error when cgroup is unavailable.
4, remove virCgroupSetBlkioDevice, split virCgroupSetBlkioDeviceBps
and virCgroupSetBlkioDeviceIops
Change from Guan Qiang's patchset:
1, split to 8 patches, make logic more clear
2, change the type of read/write iops form unsigned long long to unsigned int,
trying to set read/write iops to the value which bigger than max number of
unsigned int will fail.
3, fix some logic shortage.
Gao feng (8):
rename virDomainBlkioDeviceWeightParseXML to
virDomainBlkioDeviceParseXML
rename virBlkioDeviceWeightArrayClear to virBlkioDeviceArrayClear
rename virBlkioDeviceWeightPtr to virBlkioDevicePtr
domain: introduce xml elements for throttle blkio cgroup
blkio: Setting throttle blkio cgroup for domain
virsh: add setting throttle blkio cgroup option to blkiotune
qemu: allow to setup throttle blkio cgroup through virsh
lxc: allow to setup throttle blkio cgroup through virsh
docs/schemas/domaincommon.rng | 28 +-
include/libvirt/libvirt.h.in | 45 ++
src/conf/domain_conf.c | 113 +++-
src/conf/domain_conf.h | 16 +-
src/libvirt_private.syms | 6 +-
src/lxc/lxc_cgroup.c | 29 +-
src/lxc/lxc_driver.c | 649 ++++++++++++++++++++-
src/qemu/qemu_cgroup.c | 29 +-
src/qemu/qemu_driver.c | 443 ++++++++++++--
src/util/vircgroup.c | 224 ++++++-
src/util/vircgroup.h | 16 +
.../qemuxml2argv-blkiotune-device.xml | 8 +
tools/virsh-domain.c | 64 ++
tools/virsh.pod | 36 +-
14 files changed, 1583 insertions(+), 123 deletions(-)
--
1.8.3.1