All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hawkins Jiawei <yin31149@gmail.com>
To: jasowang@redhat.com, mst@redhat.com, eperezma@redhat.com
Cc: qemu-devel@nongnu.org, yin31149@gmail.com, 18801353760@163.com
Subject: [PATCH v3 0/2] Vhost-vdpa Shadow Virtqueue _F_CTRL_RX_EXTRA commands support
Date: Sat,  8 Jul 2023 17:24:50 +0800	[thread overview]
Message-ID: <cover.1688797728.git.yin31149@gmail.com> (raw)

This series enables shadowed CVQ to intercept rx commands related to
VIRTIO_NET_F_CTRL_RX_EXTRA feature through shadowed CVQ, update the virtio
NIC device model so qemu send it in a migration, and the restore of
that rx state in the destination.

To test this patch series, one should modify the `n->parent_obj.guest_features`
value in vhost_vdpa_net_load_rx() using gdb, as the linux virtio-net
driver does not currently support the VIRTIO_NET_F_CTRL_RX_EXTRA
feature.

Note that this patch should be based on
[1] patch "Vhost-vdpa Shadow Virtqueue _F_CTRL_RX commands support"

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

TestStep
========
1. test the patch series using vp-vdpa device

  - For L0 guest, boot QEMU with virtio-net-pci net device with
`ctrl_vq`, `ctrl_rx` and `ctrl_rx_extra` feature on, something like:
      -device virtio-net-pci,rx_queue_size=256,tx_queue_size=256,
iommu_platform=on,ctrl_vq=on,ctrl_rx=on,ctrl_rx_extra=on...

  - For L1 guest, apply the patch series and compile the code,
start QEMU with vdpa device with svq mode and enable the
`ctrl_vq`, `ctrl_rx` and `ctrl_rx_extra` feature on, something like:
      -netdev type=vhost-vdpa,x-svq=true,...
      -device virtio-net-pci,ctrl_vq=on,ctrl_rx=on,ctrl_rx_extra=on...
Use gdb to attach the VM and break at the net/vhost-vdpa.c:870.

With this series, gdb can hit the breakpoint. Enable the
VIRTIO_NET_F_CTRL_RX_EXTRA feature and enable the non-unicast mode
by entering the following gdb commands:
```gdb
set n->parent_obj.guest_features |= (1 << 20)
set n->nouni = 1
c
```
QEMU should not trigger any errors or warnings.

Without this series, QEMU should fail with
"x-svq=true: vdpa svq does not work with features 0x100000".

ChangeLog
=========
v3:
  - return early if mismatch the condition suggested by Eugenio in
patch 1 "vdpa: Restore packet receive filtering state relative with
_F_CTRL_RX_EXTRA feature"
  - remove the `on` variable suggested by Eugenio in patch 1 "vdpa:
Restore packet receive filtering state relative with
_F_CTRL_RX_EXTRA feature"

v2: https://lore.kernel.org/all/cover.1688365324.git.yin31149@gmail.com/
  - avoid sending CVQ command in default state suggested by Eugenio

v1: https://lists.nongnu.org/archive/html/qemu-devel/2023-06/msg04956.html

Hawkins Jiawei (2):
  vdpa: Restore packet receive filtering state relative with
    _F_CTRL_RX_EXTRA feature
  vdpa: Allow VIRTIO_NET_F_CTRL_RX_EXTRA in SVQ

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

-- 
2.25.1



             reply	other threads:[~2023-07-08  9:26 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-08  9:24 Hawkins Jiawei [this message]
2023-07-08  9:24 ` [PATCH v3 1/2] vdpa: Restore packet receive filtering state relative with _F_CTRL_RX_EXTRA feature Hawkins Jiawei
2023-07-08  9:24 ` [PATCH v3 2/2] vdpa: Allow VIRTIO_NET_F_CTRL_RX_EXTRA in SVQ Hawkins Jiawei

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1688797728.git.yin31149@gmail.com \
    --to=yin31149@gmail.com \
    --cc=18801353760@163.com \
    --cc=eperezma@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.