This is v6 of Hu's original proposal: v1: https://www.redhat.com/archives/libvir-list/2011-September/msg00334.html v4: https://www.redhat.com/archives/libvir-list/2011-October/msg00444.html v5: https://www.redhat.com/archives/libvir-list/2011-November/msg00060.html Patches 1-3 are solid in my testing. When I first started working on these patches, I was thinking it would be worth having VIR_TYPED_PARAM_STRING in 0.9.7; however, now that I've spent longer on it, I'm reluctant to push this new virTypedParameter API without at least one other API that takes advantage of a typed string. I tested 1-3 by using patches 4 and 5, using all 4 combinations of pre- and post-patch clients and servers. If either (or both) sides were old, then behavior is unchanged from 0.9.6 (no strings are present, a new client won't confuse an old server, a new server won't confuse an old client, and all non-string parameters are still passed in all cases); if both sides are new, then the string passing works as designed. Patch 4 is close to feature-complete, and would be the first API to take advantage of patches 1-3, but it is pointless to apply it without at least one driver implementation. Also, it has a user interface issue, in that '/path/to/dev1,weight;/path/to/dev2,weight' is awkward to type in a virsh command line; it might be nicer if if we used the string '/path/to/dev1,weight,/path/to/dev2,weight' instead, but that would mean some further parsing alterations. Note that in patch 4, I renamed the virsh option to 'virsh blkiotune --device-weight', in part because having both '--weight-device' and '--weight' would interfere with my (future) plans to make virsh do unambiguous option prefix parsing, and in part because the XML is laid out with device as the primary name, with weight as a sub-feature of each device (just because cgroups named things backwards doesn't mean that we have to repeat that mistake). Patch 5 is broken. I've already spent too long on this series, so I'm hoping Hu can resume ownership of this series and post a working v7 that resolves my complaints. More details in that particular patch message; but the short summary is that 'virsh blkiotune --live' and 'virsh blkiotune --config' must give identically formatted output. Eric Blake (4): API: add VIR_TYPED_PARAM_STRING API: remote support for VIR_TYPED_PARAM_STRING API: add trivial qemu support for VIR_TYPED_PARAM_STRING blkiotune: add interface for blkiotune.device_weight Hu Tao (1): blkiotune: add qemu support for blkiotune.device_weight daemon/remote.c | 88 ++++++++++++----- docs/formatdomain.html.in | 29 +++++- docs/schemas/domaincommon.rng | 12 +++ include/libvirt/libvirt.h.in | 42 ++++++++- src/conf/domain_conf.c | 130 ++++++++++++++++++++++++- src/conf/domain_conf.h | 17 ++++ src/libvirt.c | 92 +++++++++++++++--- src/libvirt_internal.h | 9 ++- src/libvirt_private.syms | 3 + src/qemu/qemu_cgroup.c | 22 ++++ src/qemu/qemu_driver.c | 213 +++++++++++++++++++++++++++++++++++++++-- src/remote/remote_driver.c | 28 +++++- src/remote/remote_protocol.x | 2 + src/remote_protocol-structs | 2 + src/rpc/gendispatch.pl | 3 +- src/util/cgroup.c | 33 +++++++ src/util/cgroup.h | 4 + src/util/util.c | 14 +++ src/util/util.h | 2 + tools/virsh.c | 32 ++++++- tools/virsh.pod | 6 +- 21 files changed, 720 insertions(+), 63 deletions(-) -- 1.7.4.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list