All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/9] migration: Fix issues during qmp_migrate_cancel
@ 2025-02-13 17:59 Fabiano Rosas
  2025-02-13 17:59 ` [PATCH v3 1/9] migration: Set migration error outside of migrate_cancel Fabiano Rosas
                   ` (8 more replies)
  0 siblings, 9 replies; 15+ messages in thread
From: Fabiano Rosas @ 2025-02-13 17:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Xu, Daniel P . Berrangé

changes from v2:

Added more if != CANCELLING where it was missing. We have other work
[1] pending around migration states, so I've kept this simple for
correctness only.

CI run: https://gitlab.com/farosas/qemu/-/pipelines/1670135398

1- https://lore.kernel.org/r/20250110100707.4805-1-shivam.kumar1@nutanix.com

v2:
https://lore.kernel.org/r/20250211150136.6781-1-farosas@suse.de
v1:
https://lore.kernel.org/r/20241202220137.32584-1-farosas@suse.de

While working on downstream issues with postcopy, I ended up writing a
set of tests for issuing qmp_migrate_cancel() at various points during
the migration. That exposed some bugs, which this series attempts to
fix.

There is also a fix for the issue Daniel found:

https://gitlab.com/qemu-project/qemu/-/issues/2633

I'm also sending the test code. It creates one test per
MIGRATION_STATUS_ state. Each test starts a migration, waits for that
specific state to be reached, issues qmp_migrate_cancel() and checks
that the migration state changes to cancelled (for now only cancelling
migration from the source side).

I was initially worried that this would be too racy, but so far each
test has survived 1000 iterations. I'm thinking it's worth merging,
specially because even after working on this I haven't been able to
clear the questions we have in our todo list [1], so we'll probably
need more work around this area in the future.

1- https://wiki.qemu.org/ToDo/LiveMigration#Migration_cancel_concurrency

Fabiano Rosas (9):
  migration: Set migration error outside of migrate_cancel
  migration: Unify migration_cancel and migrate_fd_cancel
  migration: Change migrate_fd_ to migration_
  migration: Fix hang after error in destination setup phase
  migration: Reject qmp_migrate_cancel after postcopy
  migration: Don't set FAILED state when cancelling
  tests/qtest/migration: Introduce migration_test_add_suffix
  tests/qtest/migration: Add a cancel test
  migration: Update migrate_cancel documentation

 migration/channel.c                    |   9 +-
 migration/migration.c                  |  81 +++++++-----
 migration/migration.h                  |   4 +-
 migration/multifd.c                    |   2 +-
 migration/ram.c                        |   4 +-
 migration/rdma.c                       |   2 +-
 migration/trace-events                 |   4 +-
 qapi/migration.json                    |   4 +-
 tests/qtest/migration/migration-util.c |  24 ++++
 tests/qtest/migration/migration-util.h |   2 +
 tests/qtest/migration/precopy-tests.c  | 176 +++++++++++++++++++++++++
 11 files changed, 267 insertions(+), 45 deletions(-)

-- 
2.35.3



^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2025-02-18  7:55 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-13 17:59 [PATCH v3 0/9] migration: Fix issues during qmp_migrate_cancel Fabiano Rosas
2025-02-13 17:59 ` [PATCH v3 1/9] migration: Set migration error outside of migrate_cancel Fabiano Rosas
2025-02-13 17:59 ` [PATCH v3 2/9] migration: Unify migration_cancel and migrate_fd_cancel Fabiano Rosas
2025-02-13 17:59 ` [PATCH v3 3/9] migration: Change migrate_fd_ to migration_ Fabiano Rosas
2025-02-13 20:59   ` Peter Xu
2025-02-18  7:54   ` Zhijian Li (Fujitsu) via
2025-02-13 17:59 ` [PATCH v3 4/9] migration: Fix hang after error in destination setup phase Fabiano Rosas
2025-02-13 17:59 ` [PATCH v3 5/9] migration: Reject qmp_migrate_cancel after postcopy Fabiano Rosas
2025-02-13 17:59 ` [PATCH v3 6/9] migration: Don't set FAILED state when cancelling Fabiano Rosas
2025-02-13 21:04   ` Peter Xu
2025-02-14 12:25     ` Fabiano Rosas
2025-02-14 15:13       ` Peter Xu
2025-02-13 17:59 ` [PATCH v3 7/9] tests/qtest/migration: Introduce migration_test_add_suffix Fabiano Rosas
2025-02-13 17:59 ` [PATCH v3 8/9] tests/qtest/migration: Add a cancel test Fabiano Rosas
2025-02-13 17:59 ` [PATCH v3 9/9] migration: Update migrate_cancel documentation Fabiano Rosas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.