> 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@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvirt-users