[PATCH v11 0/8] virtio-net: live-TAP local migration

Vladimir Sementsov-Ogievskiy posted 8 patches 1 month, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260219115530.2019498-1-vsementsov@yandex-team.ru
Maintainers: Eduardo Habkost <eduardo@habkost.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Yanan Wang <wangyanan55@huawei.com>, Zhao Liu <zhao1.liu@intel.com>, "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>, Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>, Thomas Huth <thuth@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
There is a newer version of this series
hw/core/machine.c                             |   1 +
hw/net/virtio-net.c                           | 137 +++++-
include/hw/virtio/virtio-net.h                |   2 +
include/migration/misc.h                      |   2 +
include/net/net.h                             |   6 +
migration/options.c                           |  18 +-
net/net.c                                     |  47 ++
net/tap.c                                     | 189 +++++++--
qapi/migration.json                           |  14 +-
qapi/net.json                                 |   6 +-
tests/functional/qemu_test/decorators.py      |  16 +
tests/functional/x86_64/meson.build           |   1 +
tests/functional/x86_64/test_tap_migration.py | 401 ++++++++++++++++++
13 files changed, 795 insertions(+), 45 deletions(-)
create mode 100755 tests/functional/x86_64/test_tap_migration.py
[PATCH v11 0/8] virtio-net: live-TAP local migration
Posted by Vladimir Sementsov-Ogievskiy 1 month, 3 weeks ago
Hi all!

Here is a new migration parameter "local", which allows to
enable local migration of TAP virtio-net backend (and maybe other
devices and backends in future), 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 kernel (for new TAP), and corresponding extra delay in
migration downtime.

v11: rebranding "backend-transfer" -> "local"
06: require script=no and downscript=no
    instead of requiring absent options,
    for future compatibility


Vladimir Sementsov-Ogievskiy (8):
  net/tap: move vhost-net open() calls to tap_parse_vhost_fds()
  net/tap: move vhost initialization to tap_setup_vhost()
  qapi: add local migration parameter
  net: introduce vmstate_net_peer_backend
  virtio-net: support local migration of backend
  net/tap: support local migration with virtio-net
  tests/functional: add skipWithoutSudo() decorator
  tests/functional: add test_tap_migration

 hw/core/machine.c                             |   1 +
 hw/net/virtio-net.c                           | 137 +++++-
 include/hw/virtio/virtio-net.h                |   2 +
 include/migration/misc.h                      |   2 +
 include/net/net.h                             |   6 +
 migration/options.c                           |  18 +-
 net/net.c                                     |  47 ++
 net/tap.c                                     | 189 +++++++--
 qapi/migration.json                           |  14 +-
 qapi/net.json                                 |   6 +-
 tests/functional/qemu_test/decorators.py      |  16 +
 tests/functional/x86_64/meson.build           |   1 +
 tests/functional/x86_64/test_tap_migration.py | 401 ++++++++++++++++++
 13 files changed, 795 insertions(+), 45 deletions(-)
 create mode 100755 tests/functional/x86_64/test_tap_migration.py

-- 
2.52.0
Re: [PATCH v11 0/8] virtio-net: live-TAP local migration
Posted by Vladimir Sementsov-Ogievskiy 1 month, 3 weeks ago
Based-on: <20260218202829.1322088-1-vsementsov@yandex-team.ru>
   "[PATCH v3 00/12] net: refactoring and fixes"

On 19.02.26 14:55, Vladimir Sementsov-Ogievskiy wrote:
> Hi all!
> 
> Here is a new migration parameter "local", which allows to
> enable local migration of TAP virtio-net backend (and maybe other
> devices and backends in future), 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 kernel (for new TAP), and corresponding extra delay in
> migration downtime.
> 
> v11: rebranding "backend-transfer" -> "local"
> 06: require script=no and downscript=no
>      instead of requiring absent options,
>      for future compatibility
> 
> 
> Vladimir Sementsov-Ogievskiy (8):
>    net/tap: move vhost-net open() calls to tap_parse_vhost_fds()
>    net/tap: move vhost initialization to tap_setup_vhost()
>    qapi: add local migration parameter
>    net: introduce vmstate_net_peer_backend
>    virtio-net: support local migration of backend
>    net/tap: support local migration with virtio-net
>    tests/functional: add skipWithoutSudo() decorator
>    tests/functional: add test_tap_migration
> 
>   hw/core/machine.c                             |   1 +
>   hw/net/virtio-net.c                           | 137 +++++-
>   include/hw/virtio/virtio-net.h                |   2 +
>   include/migration/misc.h                      |   2 +
>   include/net/net.h                             |   6 +
>   migration/options.c                           |  18 +-
>   net/net.c                                     |  47 ++
>   net/tap.c                                     | 189 +++++++--
>   qapi/migration.json                           |  14 +-
>   qapi/net.json                                 |   6 +-
>   tests/functional/qemu_test/decorators.py      |  16 +
>   tests/functional/x86_64/meson.build           |   1 +
>   tests/functional/x86_64/test_tap_migration.py | 401 ++++++++++++++++++
>   13 files changed, 795 insertions(+), 45 deletions(-)
>   create mode 100755 tests/functional/x86_64/test_tap_migration.py
> 


-- 
Best regards,
Vladimir