On 24/02/14 23:26, Paolo Bonzini wrote:
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
Thanks for the answer. Something is still not clear to me. Are we in
front of a bug (that means, something that could be fixed) or is this
behaviour somehow expected for some reason? More and more tests I am
doing, I get allways the same throughput chart: unlimited bandwidth when
syncronizing the disk, and smooth bandwidth limit when migrating RAM.
Joaquim
_______________________________________________
libvirt-users mailing list
libvirt-users@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvirt-users