qemu/migration
Peter Xu 301d7ffe5f migration: Fix migration crash when target psize larger than host
Commit d9e474ea56 overlooked the case where the target psize is even larger
than the host psize.  One example is Alpha has 8K page size and migration
will start to crash the source QEMU when running Alpha migration on x86.

Fix it by detecting that case and set host start/end just to cover the
single page to be migrated.

This will slightly optimize the common case where host psize equals to
guest psize so we don't even need to do the roundups, but that's trivial.

Cc: qemu-stable@nongnu.org
Reported-by: Thomas Huth <thuth@redhat.com>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1456
Fixes: d9e474ea56 ("migration: Teach PSS about host page")
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2023-02-06 19:22:56 +01:00
..
block-dirty-bitmap.c include/block: Untangle inclusion loops 2023-01-20 07:24:28 +01:00
block.c include/block: Untangle inclusion loops 2023-01-20 07:24:28 +01:00
block.h migration: disable auto-converge during bulk block migration 2017-09-27 11:27:14 +01:00
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 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 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 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 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: Move the QMP command from monitor/ to migration/ 2023-02-04 07:56:54 +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 migration: Enable TLS for preempt channel 2022-07-20 12:15:09 +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: Fix migration crash when target psize larger than host 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 migration: Export rdma.c functions in its own file 2017-06-01 18:49:23 +02:00
savevm.c include/block: Untangle inclusion loops 2023-01-20 07:24:28 +01:00
savevm.h migration: Add blocker information 2021-02-08 11:19:51 +00: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 Revert "migration: Simplify unqueue_page()" 2022-08-02 16:46:52 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
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 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
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