Message ID | cover.1689690854.git.yin31149@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | Vhost-vdpa Shadow Virtqueue VLAN support | expand |
在 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(-) >
QE tested this series patch with real hardware, it can support setup vlan for the nic, and the vlan id still can be found after finished migrate. In addition, this series patch also help to test another patch, can got the expect result. Tested-by: Lei Yang <leiyang@redhat.com> On Wed, Jul 19, 2023 at 6:54 PM Hawkins Jiawei <yin31149@gmail.com> wrote: > > 在 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(-) > > >