qemu-patch-raspberry4/migration
Felipe Franciosi 9884db2814 migration: keep bytes_xfer_prev init'd to zero
The first time migration_bitmap_sync() is called, bytes_xfer_prev is set
to ram_state.bytes_transferred which is, at this point, zero. The next
time migration_bitmap_sync() is called, an iteration has happened and
bytes_xfer_prev is set to 'x' bytes. Most likely, more than one second
has passed, so the auto converge logic will be triggered and
bytes_xfer_now will also be set to 'x' bytes.

This condition is currently masked by dirty_rate_high_cnt, which will
wait for a few iterations before throttling. It would otherwise always
assume zero bytes have been copied and therefore throttle the guest
(possibly) prematurely.

Given bytes_xfer_prev is only used by the auto convergence logic, it
makes sense to only set its value after a check has been made against
bytes_xfer_now.

Signed-off-by: Felipe Franciosi <felipe@nutanix.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2017-05-31 09:39:20 +02:00
..
block.c migration: Remove vmstate.h from migration.h 2017-05-18 19:20:59 +02:00
channel.c migration: Export qemu-file-channel.c functions in its own file 2017-05-18 19:20:50 +02:00
channel.h migration: Split migration/channel.c for channel operations 2017-05-18 19:20:24 +02:00
colo-comm.c migration: Remove vmstate.h from migration.h 2017-05-18 19:20:59 +02:00
colo-failover.c COLO: Implement the process of failover for primary VM 2016-10-30 15:17:39 +05:30
colo.c migration: Create savevm.h for functions exported from savevm.c 2017-05-31 09:39:19 +02:00
exec.c migration: Split migration/channel.c for channel operations 2017-05-18 19:20:24 +02:00
fd.c migration: Split migration/channel.c for channel operations 2017-05-18 19:20:24 +02:00
Makefile.objs migration: Make savevm.c target independent 2017-05-18 19:21:00 +02:00
migration.c migration: Create savevm.h for functions exported from savevm.c 2017-05-31 09:39:19 +02:00
page_cache.c migration: Move page_cache.c to migration/ 2017-05-17 12:04:59 +02:00
page_cache.h migration: Move page_cache.c to migration/ 2017-05-17 12:04:59 +02:00
postcopy-ram.c migration: Create savevm.h for functions exported from savevm.c 2017-05-31 09:39:19 +02:00
postcopy-ram.h migration: Move postcopy stuff to postcopy-ram.c 2017-05-17 12:04:59 +02:00
qemu-file-channel.c migration: Export qemu-file-channel.c functions in its own file 2017-05-18 19:20:50 +02:00
qemu-file-channel.h migration: Export qemu-file-channel.c functions in its own file 2017-05-18 19:20:50 +02:00
qemu-file.c add 'release-ram' migrate capability 2017-02-13 17:27:13 +00:00
qjson.c migration: Move qjson.h to migration/ 2017-05-18 19:20:59 +02:00
qjson.h migration: Move qjson.h to migration/ 2017-05-18 19:20:59 +02:00
ram.c migration: keep bytes_xfer_prev init'd to zero 2017-05-31 09:39:20 +02:00
rdma.c migration: Export qemu-file-channel.c functions in its own file 2017-05-18 19:20:50 +02:00
savevm.c migration: Create savevm.h for functions exported from savevm.c 2017-05-31 09:39:19 +02:00
savevm.h migration: Create savevm.h for functions exported from savevm.c 2017-05-31 09:39:19 +02:00
socket.c migration: Split migration/channel.c for channel operations 2017-05-18 19:20:24 +02:00
tls.c migration: Split migration/channel.c for channel operations 2017-05-18 19:20:24 +02:00
trace-events migration: Extra tracing 2017-05-04 10:41:23 +02:00
vmstate-types.c migration: Split vmstate-types.c from vmstate.c 2017-05-18 19:20:59 +02:00
vmstate.c migration: Split vmstate-types.c from vmstate.c 2017-05-18 19:20:59 +02:00
xbzrle.c migration: Create migration/xbzrle.h 2017-05-18 18:04:54 +02:00
xbzrle.h migration: Create migration/xbzrle.h 2017-05-18 18:04:54 +02:00