在 2023/7/19 15:47, Hawkins Jiawei 写道: > This series enables shadowed CVQ to intercept VLAN commands > through shadowed CVQ, update the virtio NIC device model > so qemu send it in a migration, and the restore of that > VLAN state in the destination.
This patch series is based on "[PATCH 0/3] Vhost-vdpa Shadow Virtqueue VLAN support" at [1], with these changes: - move `MAX_VLAN` macro to include/hw/virtio/virtio-net.h instead of net/vhost-vdpa.c - fix conflicts with the master branch Thanks! [1]. https://lists.gnu.org/archive/html/qemu-devel/2022-09/msg01016.html > > TestStep > ======== > 1. test the migration using vp-vdpa device > - For L0 guest, boot QEMU with two virtio-net-pci net device with > `ctrl_vq`, `ctrl_vlan` features on, command line like: > -device virtio-net-pci,disable-legacy=on,disable-modern=off, > iommu_platform=on,mq=on,ctrl_vq=on,guest_announce=off, > indirect_desc=off,queue_reset=off,ctrl_vlan=on,... > > - For L1 guest, apply the patch series and compile the source code, > start QEMU with two vdpa device with svq mode on, enable the `ctrl_vq`, > `ctrl_vlan` features on, command line like: > -netdev type=vhost-vdpa,x-svq=true,... > -device virtio-net-pci,mq=on,guest_announce=off,ctrl_vq=on, > ctrl_vlan=on,... > > - For L2 source guest, run the following bash command: > ```bash > #!/bin/sh > > for idx in {1..4094} > do > ip link add link eth0 name vlan$idx type vlan id $idx > done > ``` > > - gdb attaches the L2 dest VM and break at the > vhost_vdpa_net_load_single_vlan(), and execute the following > gdbscript > ```gdbscript > ignore 1 4094 > c > ``` > > - Execute the live migration in L2 source monitor > > - Result > * with this series, gdb can hit the breakpoint and continue > the executing without triggering any error or warning. > > Eugenio Pérez (1): > virtio-net: do not reset vlan filtering at set_features > > Hawkins Jiawei (3): > virtio-net: Expose MAX_VLAN > vdpa: Restore vlan filtering state > vdpa: Allow VIRTIO_NET_F_CTRL_VLAN in SVQ > > hw/net/virtio-net.c | 6 +--- > include/hw/virtio/virtio-net.h | 6 ++++ > net/vhost-vdpa.c | 50 ++++++++++++++++++++++++++++++++++ > 3 files changed, 57 insertions(+), 5 deletions(-) >