qemu-e2k/migration
Andrey Gruzdev 278e2f551a migration: support UFFD write fault processing in ram_save_iterate()
In this particular implementation the same single migration
thread is responsible for both normal linear dirty page
migration and procesing UFFD page fault events.

Processing write faults includes reading UFFD file descriptor,
finding respective RAM block and saving faulting page to
the migration stream. After page has been saved, write protection
can be removed. Since asynchronous version of qemu_put_buffer()
is expected to be used to save pages, we also have to flush
migraion stream prior to un-protecting saved memory range.

Write protection is being removed for any previously protected
memory chunk that has hit the migration stream. That's valid
for pages from linear page scan along with write fault pages.

Signed-off-by: Andrey Gruzdev <andrey.gruzdev@virtuozzo.com>
Acked-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20210129101407.103458-4-andrey.gruzdev@virtuozzo.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
  fixup pagefault.address cast for 32bit
2021-02-08 11:19:51 +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: Add yank feature 2021-01-13 10:21:17 +01:00
channel.h
colo-failover.c qemu/atomic.h: rename atomic_ to qatomic_ 2020-09-23 16:07:44 +01:00
colo.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
dirtyrate.c migration/dirtyrate: simplify includes in dirtyrate.c 2020-11-12 15:52:14 +00: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 zstd: convert to meson 2021-01-06 10:21:20 +01:00
migration.c migration: introduce 'background-snapshot' migration capability 2021-02-08 11:19:51 +00:00
migration.h migration: introduce 'background-snapshot' migration capability 2021-02-08 11:19:51 +00:00
multifd-zlib.c
multifd-zstd.c
multifd.c migration: Add yank feature 2021-01-13 10:21:17 +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 qapi: Use QAPI_LIST_PREPEND() where possible 2020-12-19 10:20:14 +01:00
postcopy-ram.h migration/: fix some comment spelling errors 2020-09-17 20:36:32 +02:00
qemu-file-channel.c migration: Add yank feature 2021-01-13 10:21:17 +01:00
qemu-file-channel.h
qemu-file.c migration/qemu-file: Fix maybe uninitialized on qemu_get_buffer_in_place() 2021-02-08 11:19:51 +00:00
qemu-file.h
ram.c migration: support UFFD write fault processing in ram_save_iterate() 2021-02-08 11:19:51 +00:00
ram.h migration: support UFFD write fault processing in ram_save_iterate() 2021-02-08 11:19:51 +00:00
rdma.c migration: Delete redundant spaces 2020-10-26 16:15:04 +00:00
rdma.h
savevm.c savevm: Fix memory leak of vmstate_configuration 2021-02-08 11:19:51 +00:00
savevm.h
socket.c
socket.h
tls.c migration: Fix Lesser GPL version number 2020-11-15 16:43:28 +01:00
tls.h migration: Fix Lesser GPL version number 2020-11-15 16:43:28 +01:00
trace-events migration: support UFFD write fault processing in ram_save_iterate() 2021-02-08 11:19:51 +00:00
trace.h
vmstate-types.c migration: Replace migration's JSON writer by the general one 2020-12-19 10:39:16 +01:00
vmstate.c migration: Replace migration's JSON writer by the general one 2020-12-19 10:39:16 +01:00
xbzrle.c
xbzrle.h