All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC 00/11] migration/block: disk activation rewrite
@ 2024-12-04  0:51 Peter Xu
  2024-12-04  0:51 ` [PATCH RFC 01/11] migration: Add helper to get target runstate Peter Xu
                   ` (11 more replies)
  0 siblings, 12 replies; 15+ messages in thread
From: Peter Xu @ 2024-12-04  0:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-block, Fabiano Rosas, Dr . David Alan Gilbert, Eric Blake,
	Kevin Wolf, Vladimir Sementsov-Ogievskiy,
	Daniel P . Berrangé, Andrey Drobyshev, peterx,
	Stefan Hajnoczi

I started looking at this problem as a whole when reviewing Fabiano's
series, especially the patch (for a QEMU crash [1]):

https://lore.kernel.org/r/20241125144612.16194-5-farosas@suse.de

The proposed patch could work, but it's unwanted to add such side effect to
migration.  So I start to think about whether we can provide a cleaner
approach, at least remove that "we must active the disk for migration"
dependency, because migration really don't need the disks to be active..

It's also a pure wish that, if bdrv_inactivate_all() could be benign to be
called even if all disks are already inactive.  Then problem also gone.
After all, similar call on bdrv_activate_all() upon all-active disks is all
fine.  I hope that wish could still be fair.

And when I was looking at that, I found more things spread all over the
place on disk activation.  I decided to clean all of them up, while
hopefully fixing the QEMU crash [1] too.

So this is what I came up with as of today.  Marking RFC as of now, just to
collect some feedbacks first.  At least I'd like to go with one more patch
to deprecate late-block-active - not deprecating its function, but make it
always happen (which is the default as of now for Libvirt), which should
hopefully be migration-ABI-safe.

With the help of Fabiano's test cases, I at least am sure this series works
for the ping pong migrations, and all existing qtests.

Let me know, thanks.

[1] https://gitlab.com/qemu-project/qemu/-/issues/2395

Fabiano Rosas (4):
  tests/qtest/migration: Move more code under only_target
  tests/qtest/migration: Don't use hardcoded strings for -serial
  tests/qtest/migration: Support cleaning up only one side of migration
  tests/qtest/migration: Test successive migrations

Peter Xu (7):
  migration: Add helper to get target runstate
  migration/block: Make late-block-active the default
  migration/block: Apply late-block-active behavior to postcopy
  migration/block: Fix possible race with block_inactive
  migration/block: Merge block reactivations for fail/cancel
  migration/block: Extend the migration_block_* API to dest side
  migration/block: Apply the migration_block_* API to postcopy

 migration/migration.h           |  33 ++++-
 tests/qtest/migration-helpers.h |   2 +
 migration/migration.c           | 177 +++++++++++-----------
 migration/savevm.c              |  32 ++--
 tests/qtest/migration-helpers.c |   8 +
 tests/qtest/migration-test.c    | 252 +++++++++++++++++++++++++-------
 6 files changed, 344 insertions(+), 160 deletions(-)

-- 
2.47.0



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

end of thread, other threads:[~2024-12-04 19:12 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-04  0:51 [PATCH RFC 00/11] migration/block: disk activation rewrite Peter Xu
2024-12-04  0:51 ` [PATCH RFC 01/11] migration: Add helper to get target runstate Peter Xu
2024-12-04  0:51 ` [PATCH RFC 02/11] migration/block: Make late-block-active the default Peter Xu
2024-12-04  0:51 ` [PATCH RFC 03/11] migration/block: Apply late-block-active behavior to postcopy Peter Xu
2024-12-04  0:51 ` [PATCH RFC 04/11] migration/block: Fix possible race with block_inactive Peter Xu
2024-12-04  0:51 ` [PATCH RFC 05/11] migration/block: Merge block reactivations for fail/cancel Peter Xu
2024-12-04  0:51 ` [PATCH RFC 06/11] migration/block: Extend the migration_block_* API to dest side Peter Xu
2024-12-04 14:49   ` Peter Xu
2024-12-04  0:51 ` [PATCH RFC 07/11] migration/block: Apply the migration_block_* API to postcopy Peter Xu
2024-12-04  0:51 ` [PATCH RFC 08/11] tests/qtest/migration: Move more code under only_target Peter Xu
2024-12-04  0:51 ` [PATCH RFC 09/11] tests/qtest/migration: Don't use hardcoded strings for -serial Peter Xu
2024-12-04 19:11   ` Fabiano Rosas
2024-12-04  0:51 ` [PATCH RFC 10/11] tests/qtest/migration: Support cleaning up only one side of migration Peter Xu
2024-12-04  0:51 ` [PATCH RFC 11/11] tests/qtest/migration: Test successive migrations Peter Xu
2024-12-04 17:25 ` [PATCH RFC 00/11] migration/block: disk activation rewrite Peter Xu

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.