qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 00/19] virtio-net: live-TAP local migration
@ 2025-09-19  9:55 Vladimir Sementsov-Ogievskiy
  2025-09-19  9:55 ` [PATCH v5 01/19] migration/qemu-file: don't make incoming fds blocking again Vladimir Sementsov-Ogievskiy
                   ` (18 more replies)
  0 siblings, 19 replies; 26+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2025-09-19  9:55 UTC (permalink / raw)
  To: mst
  Cc: qemu-devel, philmd, thuth, eblake, michael.roth, armbru, farosas,
	peterx, berrange, jasowang, steven.sistare, leiyang, davydov-max,
	yc-core, Vladimir Sementsov-Ogievskiy

Hi all!

Here is a  new migration parameter fds, which allows to enable the new
local migration of TAP device, including its properties
and open fds.

With this new option, management software doesn't need to
initialize new TAP and do a switch to it. Nothing should be
done around virtio-net in local migration: it just migrates
and continues to use same TAP device. So we avoid extra logic
in management software, extra allocations in kenel (for new TAP),
and corresponding extra delay in migration downtime.

v5:

Follows [PATCH v3 0/9] virtio-net: live-TAP local migration,
but called v5, to not conflict with

   [PATCH v4 0/8] TAP initialization refactoring

, which becomes obsolete, and with

   [PATCH v4 0/2] save qemu-file incoming non-blocking fds

(two patches simply included here, to not create extra
dependancy).

What was changed:

1. Now, based on master.

As already said patches 01-02 are from

   [PATCH v4 0/2] save qemu-file incoming non-blocking fds

(which still may be merged in separate)

Also note, that the series is in small conflict with
in-flight

   [PATCH v5 00/13] io: deal with blocking/non-blocking fds

, I'll rebase if it merged first.

2. New interface: simply one migration parameter

    fds = [ virtio-net ]

It could simply be reduced to boolean fds=true, but I think
that a possibility to specify target is good, see more in
patch 16.

The series supersedes:
[PATCH v4 0/8] TAP initialization refactoring
Supersedes: <20250911165101.1637608-1-vsementsov@yandex-team.ru>

Vladimir Sementsov-Ogievskiy (19):
  migration/qemu-file: don't make incoming fds blocking again
  io/channel: document how qio_channel_readv_full() handles fds
  net/tap: net_init_tap_one(): drop extra error propagation
  net/tap: net_init_tap_one(): move parameter checking earlier
  net/tap: rework net_tap_init()
  net/tap: setup exit notifier only when needed
  net/tap: split net_tap_fd_init()
  net/tap: rework tap_set_sndbuf()
  net/tap: rework sndbuf handling
  net/tap: introduce net_tap_setup()
  net/tap: move vhost fd initialization to net_tap_new()
  net/tap: use net_tap_setup() in net_init_bridge()
  net/tap: finalize net_tap_set_fd() logic
  migration: add MIG_EVENT_PRE_INCOMING
  net/tap: postpone tap setup to pre-incoming
  qapi: add interface for local TAP migration
  virtio-net: support fds migration of TAP backend
  tests/functional: add skipUnlessPasswordlessSudo() decorator
  tests/functional: add test_x86_64_tap_fd_migration

 hw/net/virtio-net.c                           | 138 +++++-
 include/io/channel.h                          |  18 +
 include/migration/misc.h                      |   1 +
 include/net/tap.h                             |   5 +
 include/qapi/util.h                           |  17 +
 io/channel-socket.c                           |  13 +-
 migration/migration.c                         |   8 +-
 migration/options.c                           |  25 ++
 migration/options.h                           |   2 +
 migration/qemu-file.c                         |   3 +-
 net/tap-bsd.c                                 |   3 +-
 net/tap-linux.c                               |  19 +-
 net/tap-solaris.c                             |   3 +-
 net/tap-stub.c                                |   3 +-
 net/tap.c                                     | 422 ++++++++++++++----
 net/tap_int.h                                 |   4 +-
 qapi/migration.json                           |  46 +-
 tests/functional/qemu_test/decorators.py      |  16 +
 .../test_x86_64_tap_fd_migration.py           | 343 ++++++++++++++
 19 files changed, 970 insertions(+), 119 deletions(-)
 create mode 100644 tests/functional/test_x86_64_tap_fd_migration.py

-- 
2.48.1



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

end of thread, other threads:[~2025-09-19 17:36 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-19  9:55 [PATCH v5 00/19] virtio-net: live-TAP local migration Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 01/19] migration/qemu-file: don't make incoming fds blocking again Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 02/19] io/channel: document how qio_channel_readv_full() handles fds Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 03/19] net/tap: net_init_tap_one(): drop extra error propagation Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 04/19] net/tap: net_init_tap_one(): move parameter checking earlier Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 05/19] net/tap: rework net_tap_init() Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 06/19] net/tap: setup exit notifier only when needed Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 07/19] net/tap: split net_tap_fd_init() Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 08/19] net/tap: rework tap_set_sndbuf() Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 09/19] net/tap: rework sndbuf handling Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 10/19] net/tap: introduce net_tap_setup() Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 11/19] net/tap: move vhost fd initialization to net_tap_new() Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 12/19] net/tap: use net_tap_setup() in net_init_bridge() Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 13/19] net/tap: finalize net_tap_set_fd() logic Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 14/19] migration: add MIG_EVENT_PRE_INCOMING Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 15/19] net/tap: postpone tap setup to pre-incoming Vladimir Sementsov-Ogievskiy
2025-09-19 17:19   ` Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 16/19] qapi: add interface for local TAP migration Vladimir Sementsov-Ogievskiy
2025-09-19 15:20   ` Fabiano Rosas
2025-09-19 15:50     ` Vladimir Sementsov-Ogievskiy
2025-09-19 17:13       ` Fabiano Rosas
2025-09-19 17:35         ` Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 17/19] virtio-net: support fds migration of TAP backend Vladimir Sementsov-Ogievskiy
2025-09-19  9:55 ` [PATCH v5 18/19] tests/functional: add skipUnlessPasswordlessSudo() decorator Vladimir Sementsov-Ogievskiy
2025-09-19 12:00   ` Thomas Huth
2025-09-19  9:55 ` [PATCH v5 19/19] tests/functional: add test_x86_64_tap_fd_migration Vladimir Sementsov-Ogievskiy

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 NNTP newsgroup(s).