From: Stefano Brivio <sbrivio@redhat.com>
To: passt-dev@passt.top
Cc: David Gibson <david@gibson.dropbear.id.au>
Subject: [PATCH v12 0/6] Non-draft state migration
Date: Fri, 7 Feb 2025 23:54:09 +0100 [thread overview]
Message-ID: <20250207225415.1067296-1-sbrivio@redhat.com> (raw)
v12:
- clean up, add comments, complete error handling
- add iperf3 test with 6 concurrent flows and migration under flood
This looks reasonably stable and polished to me, probably
enough to be merged. The behaviour now looks solid under flood,
too.
Still to do, I guess:
1. more iperf3 tests, with IPv6, in the other direction, and
with mixed flows
2. support for other types of flow (assuming that we care at
all... things already work)
3. find a way to close the window socket-side early on, and
reopen it in the target, to entirely avoid retransmissions.
I can set the socket in repair mode in the source, fetch
TCP_REPAIR_WINDOW parameters, just change rcv_wnd to 0, set
them back, then disable repair mode. Nothing bad happens and
the window probe from TCP_REPAIR_OFF is visible, but the
window isn't updated, because it's not actually recalculated
using rcv_wnd meanwhile. Dummy send/recv() calls don't really
change things, either. But there must be some other way.
I haven't tried doing this guest-side but that part should
be trivial.
David Gibson (1):
migrate: Migrate guest observed addresses
Stefano Brivio (5):
migrate: Skeleton of live migration logic
Add interfaces and configuration bits for passt-repair
vhost_user: Make source quit after reporting migration state
migrate: Migrate TCP flows
test: Add migration tests
Makefile | 14 +-
conf.c | 44 ++-
epoll_type.h | 6 +-
flow.c | 202 +++++++++++++
flow.h | 6 +
migrate.c | 300 +++++++++++++++++++
migrate.h | 54 ++++
passt.1 | 11 +
passt.c | 15 +-
passt.h | 15 +
repair.c | 211 ++++++++++++++
repair.h | 16 +
tap.c | 65 +----
tcp.c | 583 +++++++++++++++++++++++++++++++++++++
tcp_conn.h | 87 ++++++
test/lib/layout | 55 +++-
test/lib/setup | 128 ++++++++
test/lib/test | 48 +++
test/migrate/basic | 54 ++++
test/migrate/bidirectional | 59 ++++
test/migrate/iperf3_out4 | 42 +++
test/run | 10 +
util.c | 62 ++++
util.h | 30 ++
vhost_user.c | 68 ++---
virtio.h | 4 -
vu_common.c | 49 +---
vu_common.h | 2 +-
28 files changed, 2060 insertions(+), 180 deletions(-)
create mode 100644 migrate.c
create mode 100644 migrate.h
create mode 100644 repair.c
create mode 100644 repair.h
create mode 100644 test/migrate/basic
create mode 100644 test/migrate/bidirectional
create mode 100644 test/migrate/iperf3_out4
--
2.43.0
next reply other threads:[~2025-02-07 22:54 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-07 22:54 Stefano Brivio [this message]
2025-02-07 22:54 ` [PATCH v12 1/6] migrate: Skeleton of live migration logic Stefano Brivio
2025-02-07 22:54 ` [PATCH v12 2/6] migrate: Migrate guest observed addresses Stefano Brivio
2025-02-07 22:54 ` [PATCH v12 3/6] Add interfaces and configuration bits for passt-repair Stefano Brivio
2025-02-07 22:54 ` [PATCH v12 4/6] vhost_user: Make source quit after reporting migration state Stefano Brivio
2025-02-07 22:54 ` [PATCH v12 5/6] migrate: Migrate TCP flows Stefano Brivio
2025-02-07 22:54 ` [PATCH v12 6/6] test: Add migration tests Stefano Brivio
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250207225415.1067296-1-sbrivio@redhat.com \
--to=sbrivio@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=passt-dev@passt.top \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://passt.top/passt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).