Libvirt found out that we have a pretty nasty data race between block-stream and block-job-set-speed. If a user wants to throttle a job, they cannot request the throttling until after the job has been started (thanks to the DeviceNotActive error of block-job-set-speed), but by the time you actually get a chance to throttle the job, you have no idea how much data transpired between the job start and the throttling request. migrate_set_speed does not have this issue, since it can be issued _prior_ to the migration.
Is there any way we can add an optional parameter to 'block-stream' (in the tree now) and 'drive-mirror' (in Paolo's pending patch series) to set the speed as part of starting the job, or to atomically fail with NotSupported if throttling cannot be managed, rather than having a race window before getting a chance to call block-job-set-speed? Now's the time to do it, since 'block-stream' is new to qemu 1.1. -- Eric Blake ebl...@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature