From: "Michael S. Tsirkin" <mst@redhat.com>
To: Sahil Siddiq <icegambit91@gmail.com>
Cc: eperezma@redhat.com, sgarzare@redhat.com, qemu-devel@nongnu.org,
Sahil Siddiq <sahilcdq@proton.me>
Subject: Re: [PATCH] vdpa: Support setting vring_base for packed svq
Date: Thu, 14 Nov 2024 01:58:13 -0500 [thread overview]
Message-ID: <20241114015754-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20241104162124.49867-1-sahilcdq@proton.me>
On Mon, Nov 04, 2024 at 09:51:24PM +0530, Sahil Siddiq wrote:
> Linux commit v5.14-rc1~30^2~8 enabled the vp_vdpa driver to set the
> vq state to the device's initial state. This works differently for
> split and packed vqs.
>
> With shadow virtqueues enabled, vhost-vdpa sets the vring base using
> the VHOST_SET_VRING_BASE ioctl. The payload (vhost_vring_state)
> differs for split and packed vqs. The implementation in QEMU currently
> uses the payload required for split vqs (i.e., the num field of
> vhost_vring_state is set to 0). The kernel throws EOPNOTSUPP when this
> payload is used with packed vqs.
>
> This patch sets the num field in the payload appropriately so vhost-vdpa
> (with the vp_vdpa driver) can use packed svqs.
>
> Link: https://lists.nongnu.org/archive/html/qemu-devel/2024-10/msg05106.html
> Link: https://lore.kernel.org/r/20210602021536.39525-4-jasowang@redhat.com
> Signed-off-by: Sahil Siddiq <sahilcdq@proton.me>
Looks like a feature, not a bugfix to me, so I guess - next release?
> ---
> QEMU currently does not support packed vhost shadow virtqueues. I am
> working on adding support for packed svqs [1]. The test environment
> that I am using [2] requires vhost-vdpa to use the relevant payload
> when setting vring base.
>
> [1] https://wiki.qemu.org/Internships/ProjectIdeas/PackedShadowVirtqueue
> [2] https://www.redhat.com/en/blog/hands-vdpa-what-do-you-do-when-you-aint-got-hardware-part-2
>
> hw/virtio/vhost-vdpa.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
> index 3cdaa12ed5..5f81945109 100644
> --- a/hw/virtio/vhost-vdpa.c
> +++ b/hw/virtio/vhost-vdpa.c
> @@ -1230,6 +1230,10 @@ static bool vhost_vdpa_svq_setup(struct vhost_dev *dev,
> };
> int r;
>
> + if (virtio_vdev_has_feature(dev->vdev, VIRTIO_F_RING_PACKED)) {
> + s.num = 0x80008000;
> + }
> +
> r = vhost_vdpa_set_dev_vring_base(dev, &s);
> if (unlikely(r)) {
> error_setg_errno(errp, -r, "Cannot set vring base");
> --
> 2.47.0
next prev parent reply other threads:[~2024-11-14 7:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-04 16:21 [PATCH] vdpa: Support setting vring_base for packed svq Sahil Siddiq
2024-11-05 9:36 ` Stefano Garzarella
2024-11-05 14:54 ` Sahil Siddiq
2024-11-06 14:33 ` Stefano Garzarella
2024-11-06 15:00 ` Eugenio Perez Martin
2024-11-08 6:59 ` Sahil Siddiq
2024-11-14 6:58 ` Michael S. Tsirkin [this message]
2024-11-16 13:04 ` Sahil Siddiq
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=20241114015754-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=eperezma@redhat.com \
--cc=icegambit91@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=sahilcdq@proton.me \
--cc=sgarzare@redhat.com \
/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.