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

Vladimir Sementsov-Ogievskiy posted 8 patches 2 days, 22 hours ago
Failed in applying to current master (apply log)
There is a newer version of this series
hw/net/virtio-net.c                           | 100 ++++-
include/hw/virtio/virtio-net.h                |   2 +
include/net/tap.h                             |   4 +
migration/options.c                           |   7 +
migration/options.h                           |   1 +
net/tap.c                                     | 323 ++++++++++++----
net/trace-events                              |   7 +
qapi/migration.json                           |   9 +-
qapi/net.json                                 |  12 +-
tests/functional/qemu_test/cmd.py             |   7 +-
.../test_x86_64_tap_fd_migration.py           | 347 ++++++++++++++++++
11 files changed, 734 insertions(+), 85 deletions(-)
create mode 100644 tests/functional/test_x86_64_tap_fd_migration.py
[PATCH v2 0/8] virtio-net: live-TAP local migration
Posted by Vladimir Sementsov-Ogievskiy 2 days, 22 hours ago
Hi all!

Here is a  new migration capability "local-tap", which
allows 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.

Note that patch 07 is reused from
[PATCH 00/33] vhost-user-blk: live-backend local migration
to not create extra dependency on a big series.

Based on [PATCH v3 00/19] TAP initialization refactoring, or in other
words:
Based-on: <20250903124934.1169899-1-vsementsov@yandex-team.ru>

Vladimir Sementsov-Ogievskiy (8):
  net/tap: add some trace points
  net/tap: keep exit notifier only when downscript set
  net/tap: refactor net_tap_setup_vhost()
  qapi: add interface for local TAP migration
  net/tap: implement interfaces for local migration
  virtio-net: support local tap migration
  test/functional: exec_command_and_wait_for_pattern: add vm arg
  tests/functional: add test_x86_64_tap_fd_migration

 hw/net/virtio-net.c                           | 100 ++++-
 include/hw/virtio/virtio-net.h                |   2 +
 include/net/tap.h                             |   4 +
 migration/options.c                           |   7 +
 migration/options.h                           |   1 +
 net/tap.c                                     | 323 ++++++++++++----
 net/trace-events                              |   7 +
 qapi/migration.json                           |   9 +-
 qapi/net.json                                 |  12 +-
 tests/functional/qemu_test/cmd.py             |   7 +-
 .../test_x86_64_tap_fd_migration.py           | 347 ++++++++++++++++++
 11 files changed, 734 insertions(+), 85 deletions(-)
 create mode 100644 tests/functional/test_x86_64_tap_fd_migration.py

-- 
2.48.1
Re: [PATCH v2 0/8] virtio-net: live-TAP local migration
Posted by Lei Yang 1 day, 21 hours ago
Tested the current series of patches, mixed with patches from series
[1] and [2], and the virtio-net regression tests passed. I also tested
local VM migration under multiple NIC queues enabled and disabled, it
also passed.

[1] https://patchwork.ozlabs.org/project/qemu-devel/cover/20250903094411.1029449-1-vsementsov@yandex-team.ru/
[2] https://patchwork.ozlabs.org/project/qemu-devel/cover/20250903124934.1169899-1-vsementsov@yandex-team.ru/

Tested-by: Lei Yang <leiyang@redhat.com>

On Wed, Sep 3, 2025 at 9:37 PM Vladimir Sementsov-Ogievskiy
<vsementsov@yandex-team.ru> wrote:
>
> Hi all!
>
> Here is a  new migration capability "local-tap", which
> allows 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.
>
> Note that patch 07 is reused from
> [PATCH 00/33] vhost-user-blk: live-backend local migration
> to not create extra dependency on a big series.
>
> Based on [PATCH v3 00/19] TAP initialization refactoring, or in other
> words:
> Based-on: <20250903124934.1169899-1-vsementsov@yandex-team.ru>
>
> Vladimir Sementsov-Ogievskiy (8):
>   net/tap: add some trace points
>   net/tap: keep exit notifier only when downscript set
>   net/tap: refactor net_tap_setup_vhost()
>   qapi: add interface for local TAP migration
>   net/tap: implement interfaces for local migration
>   virtio-net: support local tap migration
>   test/functional: exec_command_and_wait_for_pattern: add vm arg
>   tests/functional: add test_x86_64_tap_fd_migration
>
>  hw/net/virtio-net.c                           | 100 ++++-
>  include/hw/virtio/virtio-net.h                |   2 +
>  include/net/tap.h                             |   4 +
>  migration/options.c                           |   7 +
>  migration/options.h                           |   1 +
>  net/tap.c                                     | 323 ++++++++++++----
>  net/trace-events                              |   7 +
>  qapi/migration.json                           |   9 +-
>  qapi/net.json                                 |  12 +-
>  tests/functional/qemu_test/cmd.py             |   7 +-
>  .../test_x86_64_tap_fd_migration.py           | 347 ++++++++++++++++++
>  11 files changed, 734 insertions(+), 85 deletions(-)
>  create mode 100644 tests/functional/test_x86_64_tap_fd_migration.py
>
> --
> 2.48.1
>
Re: [PATCH v2 0/8] virtio-net: live-TAP local migration
Posted by Vladimir Sementsov-Ogievskiy 1 day, 21 hours ago
On 04.09.25 17:42, Lei Yang wrote:
> Tested the current series of patches, mixed with patches from series
> [1] and [2], and the virtio-net regression tests passed. I also tested
> local VM migration under multiple NIC queues enabled and disabled, it
> also passed.
> 
> [1] https://patchwork.ozlabs.org/project/qemu-devel/cover/20250903094411.1029449-1-vsementsov@yandex-team.ru/
> [2] https://patchwork.ozlabs.org/project/qemu-devel/cover/20250903124934.1169899-1-vsementsov@yandex-team.ru/
> 
> Tested-by: Lei Yang <leiyang@redhat.com>
> 


Thanks a lot for testing!


-- 
Best regards,
Vladimir