qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 0/5] migration: Fix disorder of channel creations


From: Peter Xu
Subject: [PATCH 0/5] migration: Fix disorder of channel creations
Date: Tue, 13 Dec 2022 16:38:45 -0500

Based-on: <20221011215559.602584-1-peterx@redhat.com>

This whole set is based on the whole set of preempt-full mode being applied
first here:

https://lore.kernel.org/r/20221011215559.602584-1-peterx@redhat.com

I also picked up the latest version from Manish on fixing multifd
counterpart of the problem, here (which are the initial two patches):

https://lore.kernel.org/r/20221123172735.25181-1-manish.mishra@nutanix.com

One trivial change is to fix RDMA builds for patch 1 there.

I verified that I can trigger disordered connections with preempt mode
postcopy (1 out of a few attemps), which can cause migration to hang during
precopy phase, if e.g. I set the NIC packet loss rate to 50%.  So now with
all the 5 patches applied we should fix all the migration disorder issue on
channel creation.

Patch 3 is IMHO a cleanup that I'd think good to have even without patch
4/5.  Patch 5 actually fixes the ordering issue.  For each of the patch,
please refer to the commit message and comments in-code.  Any comment
welcomed.

A side note to Juan: logically it should apply cleanly to your -next tree
as long as Manish's patches are not there - because they're also included
here with a fix to RDMA builds.

Peter Xu (3):
  migration: Rework multi-channel checks on URI
  migration: Add a semaphore to count PONGs
  migration: Postpone postcopy preempt channel to be after main

manish.mishra (2):
  io: Add support for MSG_PEEK for socket channel
  migration: check magic value for deciding the mapping of channels

 chardev/char-socket.c               |   4 +-
 include/io/channel.h                |   6 +
 io/channel-buffer.c                 |   1 +
 io/channel-command.c                |   1 +
 io/channel-file.c                   |   1 +
 io/channel-null.c                   |   1 +
 io/channel-socket.c                 |  17 ++-
 io/channel-tls.c                    |   1 +
 io/channel-websock.c                |   1 +
 io/channel.c                        |  16 ++-
 migration/channel-block.c           |   1 +
 migration/channel.c                 |  45 ++++++++
 migration/channel.h                 |   5 +
 migration/migration.c               | 164 +++++++++++++++++++---------
 migration/migration.h               |  15 ++-
 migration/multifd.c                 |  24 +---
 migration/multifd.h                 |   2 +-
 migration/postcopy-ram.c            |  36 +++---
 migration/postcopy-ram.h            |   6 +-
 migration/rdma.c                    |   1 +
 migration/savevm.c                  |   6 +-
 scsi/qemu-pr-helper.c               |   2 +-
 tests/qtest/tpm-emu.c               |   2 +-
 tests/unit/test-io-channel-socket.c |   1 +
 util/vhost-user-server.c            |   2 +-
 25 files changed, 254 insertions(+), 107 deletions(-)

-- 
2.37.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]