Throttling groups allow multiple drives to share the same throttling state (i.e. budget) between them. Manos is working on moving the throttling code into a block filter driver so it is no longer hardcoded into the I/O code path.
Throttling groups are not defined explicitly using -object syntax. Instead they are brought into existence by referring to them by name: -drive throttling.group=group0. A quirk in the current implementation is that the throttling limits for the group are overwritten by each -drive throttling.group=group0. Limits for all but the last -drive in a group are ignored. There is no way to associate with an existing throttling group while keeping current limits in place. The caller must pass in desired limits with at least the last -drive (and with every hotplugged drive). The new throttling filter node could do things differently: If *no* limits were specified (i.e. iops, bps, etc) then keep existing limits for the group in place. These semantics are more convenient - especially for hotplugging drives after the guest has launched. Manos: I suggest implementing this new behavior when you write the throttling filter driver. The code needs to check that all throttle cfg fields are 0. There are no backwards compatibility concerns since the throttle filter is new and existing users don't rely on it. Thoughts? Stefan
