I tested this patch with virtio-net regression tests, everything works fine.

Tested-by: Lei Yang <leiy...@redhat.com>

On Tue, Feb 18, 2025 at 8:04 PM Stefano Garzarella <sgarz...@redhat.com> wrote:
>
> On Tue, Feb 18, 2025 at 04:32:08PM +0800, oen...@gmail.com wrote:
> >From: Huaitong Han <han...@chinatelecom.cn>
> >
> >The vring call fd is set even when the guest does not use MSIX (e.g., virtio
> >PMD). This results in unnecessary CPU overhead for handling virtio 
> >interrupts.
> >The previous patch only optimized the condition when query_queue_notifier was
>
> Which patch/commit are you referring to?
>
> The last commit touching that check is commit 96a3d98d2c ("vhost: don't
> set vring call if no vector"), but I'm not sure if you are referring to
> it. If it's the case, please add it in that form in the description.
>
> It would also be better to add the Fixes tag as well and Cc stable if we
> would like to have this fix in the stable branch.
>
> Thanks,
> Stefano
>
> >enabled and the vector was unset. However, if query_queue_notifier is 
> >disabled,
> >the vring call FD should also be unset to avoid this inefficiency.
> >
> >Reported-by: Zhiyuan Yuan <yuanzhiy...@chinatelecom.cn>
> >Signed-off-by: Huaitong Han <han...@chinatelecom.cn>
> >---
> > hw/virtio/vhost.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> >diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
> >index 6aa72fd434..d17e7cc6fe 100644
> >--- a/hw/virtio/vhost.c
> >+++ b/hw/virtio/vhost.c
> >@@ -1342,8 +1342,8 @@ int vhost_virtqueue_start(struct vhost_dev *dev,
> >     }
> >
> >     if (k->query_guest_notifiers &&
> >-        k->query_guest_notifiers(qbus->parent) &&
> >-        virtio_queue_vector(vdev, idx) == VIRTIO_NO_VECTOR) {
> >+        (!k->query_guest_notifiers(qbus->parent) ||
> >+            virtio_queue_vector(vdev, idx) == VIRTIO_NO_VECTOR)) {
> >         file.fd = -1;
> >         r = dev->vhost_ops->vhost_set_vring_call(dev, &file);
> >         if (r) {
> >--
> >2.43.5
> >
>
>


Reply via email to