qemu-e2k/migration
David Hildenbrand e41c57702e migration/ram: Optimize ram_write_tracking_start() for RamDiscardManager
ram_block_populate_read() already optimizes for RamDiscardManager.
However, ram_write_tracking_start() will still try protecting discarded
memory ranges.

Let's optimize, because discarded ranges don't map any pages and

(1) For anonymous memory, trying to protect using uffd-wp without a mapped
    page is ignored by the kernel and consequently a NOP.

(2) For shared/file-backed memory, we will fill present page tables in the
    range with PTE markers. However, we will even allocate page tables
    just to fill them with unnecessary PTE markers and effectively
    waste memory.

So let's exclude these ranges, just like ram_block_populate_read()
already does.

Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2023-02-06 19:22:56 +01:00
..
block-dirty-bitmap.c migration: Remove unused threshold_size parameter 2023-02-06 19:22:56 +01:00
block.c migration: Remove unused threshold_size parameter 2023-02-06 19:22:56 +01:00
block.h
channel-block.c migration/channel-block: fix return value for qio_channel_block_{readv,writev} 2022-11-21 11:56:12 +01:00
channel-block.h migration: introduce a QIOChannel impl for BlockDriverState VMState 2022-06-22 19:33:43 +01:00
channel.c migration: Add helpers to detect TLS capability 2022-07-20 12:15:08 +01:00
channel.h
colo-failover.c
colo.c qapi migration: Elide redundant has_FOO in generated C 2022-12-14 20:04:47 +01:00
dirtyrate.c cleanup: Tweak and re-run return_directly.cocci 2022-12-14 16:19:35 +01:00
dirtyrate.h migration/dirtyrate: Refactor dirty page rate calculation 2022-07-20 12:15:08 +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
meson.build migration: Move HMP commands from monitor/ to migration/ 2023-02-04 07:56:54 +01:00
migration-hmp-cmds.c migration: Move HMP commands from monitor/ to migration/ 2023-02-04 07:56:54 +01:00
migration.c migration: simplify migration_iteration_run() 2023-02-06 19:22:56 +01:00
migration.h migration: Remove old preempt code around state maintainance 2022-12-15 10:30:37 +01:00
multifd-zlib.c multifd: Create page_size fields into both MultiFD{Recv,Send}Params 2022-12-15 10:30:37 +01:00
multifd-zstd.c multifd: Create page_size fields into both MultiFD{Recv,Send}Params 2022-12-15 10:30:37 +01:00
multifd.c migration: Use atomic ops properly for page accountings 2022-12-15 10:30:37 +01:00
multifd.h multifd: Create page_count fields into both MultiFD{Recv,Send}Params 2022-12-15 10:30:37 +01:00
page_cache.c migration: Fix cache_init()'s "Failed to allocate" error messages 2021-02-08 11:19:51 +00:00
page_cache.h migration: Clean up signed vs. unsigned XBZRLE cache-size 2021-02-08 11:19:51 +00:00
postcopy-ram.c util/userfaultfd: Add uffd_open() 2023-02-06 19:22:56 +01:00
postcopy-ram.h migration: Create the postcopy preempt channel asynchronously 2022-07-20 12:15:08 +01:00
qemu-file.c migration: Fix race on qemu_file_shutdown() 2022-11-21 11:58:10 +01:00
qemu-file.h migration: Postcopy recover with preempt enabled 2022-07-20 12:15:08 +01:00
ram.c migration/ram: Optimize ram_write_tracking_start() for RamDiscardManager 2023-02-06 19:22:56 +01:00
ram.h migration: Use atomic ops properly for page accountings 2022-12-15 10:30:37 +01:00
rdma.c migration: remove the QEMUFileOps abstraction 2022-06-23 10:18:13 +01:00
rdma.h
savevm.c migration: Remove unused threshold_size parameter 2023-02-06 19:22:56 +01:00
savevm.h migration: Remove unused threshold_size parameter 2023-02-06 19:22:56 +01:00
socket.c migration: Postcopy preemption preparation on channel creation 2022-07-20 12:15:08 +01:00
socket.h migration: Postcopy preemption preparation on channel creation 2022-07-20 12:15:08 +01:00
target.c migration: Move populate_vfio_info() into a separate file 2021-05-14 12:31:51 +02:00
tls.c cleanup: Tweak and re-run return_directly.cocci 2022-12-14 16:19:35 +01:00
tls.h migration: Add helpers to detect TLS capability 2022-07-20 12:15:08 +01:00
trace-events migration: Remove unused threshold_size parameter 2023-02-06 19:22:56 +01:00
trace.h
vmstate-types.c Move CPU softfloat unions to cpu-float.h 2022-04-06 14:31:43 +02:00
vmstate.c migration: rename qemu_ftell to qemu_file_total_transferred 2022-06-22 19:33:36 +01:00
xbzrle.c
xbzrle.h
yank_functions.c migration: Move the yank unregister of channel_close out 2021-07-26 12:45:03 +01:00
yank_functions.h migration: Move the yank unregister of channel_close out 2021-07-26 12:45:03 +01:00