> Thanks for raising this.
> 
> I noticed that mirror_run() does not throttle the first loop where it
> populates the dirty bitmap using bdrv_is_allocated_above().

This is on purpose.  Does it causes a noticeable stall in the guest?

> The main
> copy loop does take the speed limit into account but perhaps that's
> broken too.

Yeah, it looks broken.  Each iteration of the loop can write much more
than sectors_per_chunk sectors, but here:

            if (s->common.speed) {
                delay_ns = ratelimit_calculate_delay(&s->limit, 
sectors_per_chunk);
            } else {
                delay_ns = 0;
            }

the second argument is fixed. :/

Paolo

_______________________________________________
libvirt-users mailing list
libvirt-users@redhat.com
https://www.redhat.com/mailman/listinfo/libvirt-users

Reply via email to