qemu-e2k/migration
Vladimir Sementsov-Ogievskiy a4c6275aa1 migration: restore vmstate on migration failure
1. Otherwise failed migration just drops guest-panicked state, which is
   not good for management software.

2. We do keep different paused states like guest-panicked during
   migration with help of global_state state.

3. We do restore running state on source when migration is cancelled or
   failed.

4. "postmigrate" state is documented as "guest is paused following a
   successful 'migrate'", so originally it's only for successful path
   and we never documented current behavior.

Let's restore paused states like guest-panicked in case of cancel or
fail too. Allow same transitions like for inmigrate state.

This commit changes the behavior that was introduced by commit
42da5550d6 "migration: set state to post-migrate on failure" and
provides a bit different fix on related
  https://bugzilla.redhat.com/show_bug.cgi?id=1355683

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Message-Id: <20230517123752.21615-6-vsementsov@yandex-team.ru>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2023-06-02 01:03:19 +02:00
..
block-dirty-bitmap.c migration: Move rate_limit_max and rate_limit_used to migration_stats 2023-05-18 18:40:51 +02:00
block.c migration: Move rate_limit_max and rate_limit_used to migration_stats 2023-05-18 18:40:51 +02:00
block.h migration: disable auto-converge during bulk block migration 2017-09-27 11:27:14 +01:00
channel-block.c io: Add support for MSG_PEEK for socket channel 2023-02-06 19:22:56 +01:00
channel-block.h migration: introduce a QIOChannel impl for BlockDriverState VMState 2022-06-22 19:33:43 +01:00
channel.c migration: check magic value for deciding the mapping of channels 2023-02-06 19:22:57 +01:00
channel.h migration: check magic value for deciding the mapping of channels 2023-02-06 19:22:57 +01:00
colo-failover.c migration/colo: Improve an x-colo-lost-heartbeat error message 2023-02-23 14:10:17 +01:00
colo.c migration: process_incoming_migration_co(): move colo part to colo 2023-05-18 18:40:51 +02:00
dirtyrate.c migration: Add last stage indicator to global dirty log 2023-05-18 08:53:50 +02:00
dirtyrate.h migration/dirtyrate: Refactor dirty page rate calculation 2022-07-20 12:15:08 +01:00
exec.c *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
exec.h
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: never fail in global_state_store() 2023-06-02 01:03:19 +02:00
meson.build migration: Build migration_files once 2023-05-23 16:51:18 -07:00
migration-hmp-cmds.c build: move COLO under CONFIG_REPLICATION 2023-05-10 18:48:11 +02:00
migration-stats.c migration: We don't need the field rate_limit_used anymore 2023-05-18 18:40:51 +02:00
migration-stats.h migration: We don't need the field rate_limit_used anymore 2023-05-18 18:40:51 +02:00
migration.c migration: restore vmstate on migration failure 2023-06-02 01:03:19 +02:00
migration.h migration: switch from .vm_was_running to .vm_old_state 2023-06-02 01:03:19 +02:00
multifd-zlib.c migration: Move parameters functions to option.c 2023-04-24 15:01:46 +02:00
multifd-zstd.c migration: Move parameters functions to option.c 2023-04-24 15:01:46 +02:00
multifd.c migration/multifd: Compute transferred bytes correctly 2023-05-18 18:41:46 +02:00
multifd.h multifd: Add the ramblock to MultiFDRecvParams 2023-05-10 18:48:11 +02:00
options.c migration: Move rate_limit_max and rate_limit_used to migration_stats 2023-05-18 18:40:51 +02:00
options.h migration: Move rate_limit_max and rate_limit_used to migration_stats 2023-05-18 18:40:51 +02: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: Drop unused parameter for migration_tls_client_create() 2023-05-03 11:24:20 +02:00
postcopy-ram.h migration: Allow postcopy_ram_supported_by_host() to report err 2023-04-27 10:18:25 +02:00
qemu-file.c migration: We don't need the field rate_limit_used anymore 2023-05-18 18:40:51 +02:00
qemu-file.h migration: Move rate_limit_max and rate_limit_used to migration_stats 2023-05-18 18:40:51 +02:00
ram-compress.c ram-compress.c: Make target independent 2023-05-08 15:25:26 +02:00
ram-compress.h ram.c: Move core decompression code into its own file 2023-05-08 15:25:26 +02:00
ram.c migration/xbzrle: Use i386 host/cpuinfo.h 2023-05-23 16:51:18 -07:00
ram.h ram: Add public helper to set colo bitmap 2023-05-10 18:48:11 +02:00
rdma.c aio: remove aio_disable_external() API 2023-05-30 17:37:26 +02:00
rdma.h
savevm.c migration: never fail in global_state_store() 2023-06-02 01:03:19 +02:00
savevm.h migration: Rename res_{postcopy,precopy}_only 2023-02-15 20:04:30 +01:00
socket.c migration: Move migrate_use_zero_copy_send() to options.c 2023-04-24 15:01:46 +02:00
socket.h migration: Postcopy preemption preparation on channel creation 2022-07-20 12:15:08 +01:00
target.c migration: fix populate_vfio_info 2023-03-16 16:07:07 +01:00
threadinfo.c migration: Introduce interface query-migrationthreads 2023-02-06 19:22:57 +01:00
threadinfo.h migration: Introduce interface query-migrationthreads 2023-02-06 19:22:57 +01:00
tls.c migration: Drop unused parameter for migration_tls_client_create() 2023-05-03 11:24:20 +02:00
tls.h migration: Drop unused parameter for migration_tls_client_create() 2023-05-03 11:24:20 +02:00
trace-events migration: Add a trace for migration_transferred_bytes 2023-05-18 18:40:51 +02: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 qemu-file: Remove total from qemu_file_total_transferred_*() 2023-05-15 13:46:14 +02:00
xbzrle.c migration/xbzrle: Use i386 host/cpuinfo.h 2023-05-23 16:51:18 -07:00
xbzrle.h migration/xbzrle: Use i386 host/cpuinfo.h 2023-05-23 16:51:18 -07: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