[PATCH v2 0/2] Vhost-vdpa Shadow Virtqueue Hash calculation Support

Hawkins Jiawei posted 2 patches 8 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
net/vhost-vdpa.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
[PATCH v2 0/2] Vhost-vdpa Shadow Virtqueue Hash calculation Support
Posted by Hawkins Jiawei 8 months ago
This series enables shadowed CVQ to intercept
VIRTIO_NET_CTRL_MQ_HASH_CONFIG command through shadowed CVQ,
update the virtio NIC device model so qemu send it in a
migration, and the restore of that Hash calculation state
in the destination.

Note that this patch should be based on
patch "vdpa: Send all CVQ state load commands in parallel" at [1].

[1]. https://lore.kernel.org/all/cover.1693287885.git.yin31149@gmail.com/

TestStep
========
1. test the migration using vp-vdpa device
  - For L0 guest, boot QEMU with two virtio-net-pci net device with
`ctrl_vq`, `mq`, `hash` features on, command line like:
	-netdev tap,...
	-device virtio-net-pci,disable-legacy=on,disable-modern=off,
iommu_platform=on,mq=on,ctrl_vq=on,hash=on,guest_announce=off,
indirect_desc=off,queue_reset=off,...

  - For L1 guest, apply the relative patch series and compile the
source code, start QEMU with two vdpa device with svq mode on,
enable the `ctrl_vq`, `mq`, `hash` features on, command line like:
      -netdev type=vhost-vdpa,x-svq=true,...
      -device virtio-net-pci,mq=on,guest_announce=off,ctrl_vq=on,
hash=on,...

  - For L2 source guest, run the following bash command:
```bash
#!/bin/sh

ethtool -K eth0 rxhash on
```
  - Gdb attach the destination VM and break at the
vhost_vdpa_net_load_rss()

  - 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.


ChangeLog
=========
v2:
  - resolve conflict with updated patch
"vdpa: Send all CVQ state load commands in parallel", move the
`table` declaration at the beginning of the vhost_vdpa_net_load_rss()
in patch
"vdpa: Restore hash calculation state"

RFC: https://lore.kernel.org/all/cover.1691762906.git.yin31149@gmail.com/#t

Hawkins Jiawei (2):
  vdpa: Restore hash calculation state
  vdpa: Allow VIRTIO_NET_F_HASH_REPORT in SVQ

 net/vhost-vdpa.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

-- 
2.25.1
Re: [PATCH v2 0/2] Vhost-vdpa Shadow Virtqueue Hash calculation Support
Posted by Michael S. Tsirkin 6 months, 1 week ago
On Tue, Aug 29, 2023 at 04:47:33PM +0800, Hawkins Jiawei wrote:
> This series enables shadowed CVQ to intercept
> VIRTIO_NET_CTRL_MQ_HASH_CONFIG command through shadowed CVQ,
> update the virtio NIC device model so qemu send it in a
> migration, and the restore of that Hash calculation state
> in the destination.
> 
> Note that this patch should be based on
> patch "vdpa: Send all CVQ state load commands in parallel" at [1].
> 
> [1]. https://lore.kernel.org/all/cover.1693287885.git.yin31149@gmail.com/

Dropped due to CI failures:
https://gitlab.com/qemu-project/qemu/-/jobs/5329820077


> TestStep
> ========
> 1. test the migration using vp-vdpa device
>   - For L0 guest, boot QEMU with two virtio-net-pci net device with
> `ctrl_vq`, `mq`, `hash` features on, command line like:
> 	-netdev tap,...
> 	-device virtio-net-pci,disable-legacy=on,disable-modern=off,
> iommu_platform=on,mq=on,ctrl_vq=on,hash=on,guest_announce=off,
> indirect_desc=off,queue_reset=off,...
> 
>   - For L1 guest, apply the relative patch series and compile the
> source code, start QEMU with two vdpa device with svq mode on,
> enable the `ctrl_vq`, `mq`, `hash` features on, command line like:
>       -netdev type=vhost-vdpa,x-svq=true,...
>       -device virtio-net-pci,mq=on,guest_announce=off,ctrl_vq=on,
> hash=on,...
> 
>   - For L2 source guest, run the following bash command:
> ```bash
> #!/bin/sh
> 
> ethtool -K eth0 rxhash on
> ```
>   - Gdb attach the destination VM and break at the
> vhost_vdpa_net_load_rss()
> 
>   - 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.
> 
> 
> ChangeLog
> =========
> v2:
>   - resolve conflict with updated patch
> "vdpa: Send all CVQ state load commands in parallel", move the
> `table` declaration at the beginning of the vhost_vdpa_net_load_rss()
> in patch
> "vdpa: Restore hash calculation state"
> 
> RFC: https://lore.kernel.org/all/cover.1691762906.git.yin31149@gmail.com/#t
> 
> Hawkins Jiawei (2):
>   vdpa: Restore hash calculation state
>   vdpa: Allow VIRTIO_NET_F_HASH_REPORT in SVQ
> 
>  net/vhost-vdpa.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 92 insertions(+)
> 
> -- 
> 2.25.1