mirror_qemu/migration
Peter Xu cc5ab87200 migration: Unify reset of last_rb on destination node when recover
When postcopy recover happens, we need to reset last_rb after each return of
postcopy_pause_fault_thread() because that means we just got the postcopy
migration continued.

Unify this reset to the place right before we want to kick the fault thread
again, when we get the command MIG_CMD_POSTCOPY_RESUME from source.

This is actually more than that - because the main thread on destination will
now be able to call migrate_send_rp_req_pages_pending() too, so the fault
thread is not the only user of last_rb now.  Move the reset earlier will allow
the first call to migrate_send_rp_req_pages_pending() to use the reset value
even if called from the main thread.

(NOTE: this is not a real fix to 0c26781c09 mentioned below, however it is just
 a mark that when picking up 0c26781c09 we'd better have this one too; the real
 fix will come later)

Fixes: 0c26781c09 ("migration: Sync requested pages after postcopy recovery")
Tested-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20201102153010.11979-2-peterx@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2020-11-02 18:25:39 +00:00
..
block-dirty-bitmap.c migration/block-dirty-bitmap: fix uninitialized variable warning 2020-10-26 06:56:24 -05:00
block.c migration: using trace_ to replace DPRINTF 2020-10-26 16:15:04 +00:00
block.h migration: disable auto-converge during bulk block migration 2017-09-27 11:27:14 +01:00
channel.c migration/tls: save hostname into MigrationState 2020-09-25 12:45:58 +01:00
channel.h migration: Route errors down through migration_channel_connect 2018-02-06 10:55:12 +00:00
colo-failover.c qemu/atomic.h: rename atomic_ to qatomic_ 2020-09-23 16:07:44 +01:00
colo.c error: Remove NULL checks on error_propagate() calls (again) 2020-10-09 08:36:23 +02:00
dirtyrate.c Trivial Patches Pull request 20201013 2020-10-13 14:06:22 +01:00
dirtyrate.h migration/dirtyrate: Implement set_sample_page_period() and is_sample_period_valid() 2020-09-25 12:45:58 +01:00
exec.c migration: unify incoming processing 2018-07-10 12:48:53 +01:00
exec.h migration: Export exec.c functions in its own file 2017-06-01 18:49:22 +02:00
fd.c monitor: Use getter/setter functions for cur_mon 2020-10-09 07:08:19 +02:00
fd.h migration: Fix fd protocol for incoming defer 2019-06-05 12:43:55 +02:00
global_state.c migration: Silence compiler warning in global_state_store_running() 2020-10-02 12:28:48 +01:00
meson.build migration: Move the creation of the library to the main meson.build 2020-10-12 11:50:20 -04:00
migration.c qapi: Add VFIO devices migration stats in Migration stats 2020-11-01 12:30:51 -07:00
migration.h migration: Maintain postcopy faulted addresses 2020-10-26 16:15:04 +00:00
multifd-zlib.c multifd: Add zlib compression multifd support 2020-02-28 09:24:43 +01:00
multifd-zstd.c multifd: Add zstd compression multifd support 2020-02-28 09:25:49 +01:00
multifd.c Trivial Patches Pull request 20200928 2020-09-28 14:03:09 +01:00
multifd.h migration/tls: add tls_hostname into MultiFDSendParams 2020-09-25 12:45:58 +01:00
page_cache.c migration: using trace_ to replace DPRINTF 2020-10-26 16:15:04 +00:00
page_cache.h migration: Make cache_init() take an error parameter 2017-10-23 18:03:25 +02:00
postcopy-ram.c migration: Unify reset of last_rb on destination node when recover 2020-11-02 18:25:39 +00:00
postcopy-ram.h migration/: fix some comment spelling errors 2020-09-17 20:36:32 +02:00
qemu-file-channel.c Header cleanup patches for 2019-08-13 2019-08-16 14:53:43 +01: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 osdep: Make MIN/MAX evaluate arguments only once 2020-06-26 09:39:39 -04:00
qemu-file.h Header cleanup patches for 2019-08-13 2019-08-16 14:53:43 +01:00
qjson.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
qjson.h migration: fix vmdesc leak on vmstate_save() error 2019-09-25 15:51:19 +01:00
ram.c migration: Do not initialise statics and globals to 0 or NULL 2020-10-26 16:15:04 +00:00
ram.h migration/dirtyrate: move RAMBLOCK_FOREACH_MIGRATABLE into ram.h 2020-09-25 12:45:57 +01:00
rdma.c migration: Delete redundant spaces 2020-10-26 16:15:04 +00:00
rdma.h migration: Export rdma.c functions in its own file 2017-06-01 18:49:23 +02:00
savevm.c migration: Unify reset of last_rb on destination node when recover 2020-11-02 18:25:39 +00:00
savevm.h migration: Optimization about wait-unplug migration state 2020-02-13 10:53:10 +01:00
socket.c migration: unify the framework of socket-type channel 2020-08-28 13:34:52 +01:00
socket.h migration: unify the framework of socket-type channel 2020-08-28 13:34:52 +01:00
tls.c migration/tls: extract migration_tls_client_create for common-use 2020-09-25 12:45:58 +01:00
tls.h migration/tls: extract migration_tls_client_create for common-use 2020-09-25 12:45:58 +01:00
trace-events migration: Sync requested pages after postcopy recovery 2020-10-26 16:15:04 +00:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vmstate-types.c migration: Drop unused VMSTATE_FLOAT64 support 2020-10-26 16:15:04 +00:00
vmstate.c migration: Add spaces around operator 2020-10-26 16:15:04 +00: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