On Wed, Feb 19, 2025 at 09:52:35AM +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 > 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. > > Fixes: 96a3d98d2c ("vhost: don't set vring call if no vector") > > Reported-by: Zhiyuan Yuan <yuanzhiy...@chinatelecom.cn> > Signed-off-by: Huaitong Han <han...@chinatelecom.cn>
Fails make check: https://gitlab.com/mstredhat/qemu/-/jobs/9201935243 how was this tested? Pls include data on testing in the commit log. > --- > v2: - add Fixes tag > - cc qemu-sta...@nongnu.org > > 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