qemu-e2k/migration
Peter Xu 5e77343113 migration: Postpone the kick of the fault thread after recover
The new migrate_send_rp_req_pages_pending() call should greatly improve
destination responsiveness because it will resync faulted address after
postcopy recovery.  However it is also the 1st place to initiate the page
request from the main thread.

One thing is overlooked on that migrate_send_rp_message_req_pages() is not
designed to be thread-safe.  So if we wake the fault thread before syncing all
the faulted pages in the main thread, it means they can race.

Postpone the wake up operation after the sync of faulted addresses.

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>
Message-Id: <20201102153010.11979-3-peterx@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2020-11-02 18:25:48 +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
channel.c migration/tls: save hostname into MigrationState 2020-09-25 12:45:58 +01:00
channel.h
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
exec.h
fd.c monitor: Use getter/setter functions for cur_mon 2020-10-09 07:08:19 +02:00
fd.h
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-zstd.c
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
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
qemu-file-channel.h
qemu-file.c osdep: Make MIN/MAX evaluate arguments only once 2020-06-26 09:39:39 -04:00
qemu-file.h
qjson.c
qjson.h
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
savevm.c migration: Postpone the kick of the fault thread after recover 2020-11-02 18:25:48 +00:00
savevm.h
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
xbzrle.h