On Wed, Jun 03, 2026 at 11:03:18AM +0200, Stefano Garzarella wrote:
> On Tue, May 19, 2026 at 03:15:47PM -0400, Stefan Hajnoczi wrote:
> > When a vring is started the back-end must look for available vq buffers
> > and process them. This scenario can happen if the back-end is stopped
> > with unprocessed available buffers and then started again.
> > 
> > The inflight I/O tracking code already did this, but it should also be
> > done when inflight I/O tracking is not enabled. Move the code.
> > 
> > Signed-off-by: Stefan Hajnoczi <[email protected]>
> > ---
> > subprojects/libvhost-user/libvhost-user.c | 10 +++++-----
> > 1 file changed, 5 insertions(+), 5 deletions(-)
> > 
> > diff --git a/subprojects/libvhost-user/libvhost-user.c 
> > b/subprojects/libvhost-user/libvhost-user.c
> > index 9c630c2170..2e286ea6d9 100644
> > --- a/subprojects/libvhost-user/libvhost-user.c
> > +++ b/subprojects/libvhost-user/libvhost-user.c
> > @@ -1390,11 +1390,6 @@ vu_check_queue_inflights(VuDev *dev, VuVirtq *vq)
> >         vq->counter = vq->resubmit_list[0].counter + 1;
> >     }
> > 
> > -    /* in case of I/O hang after reconnecting */
> > -    if (eventfd_write(vq->kick_fd, 1)) {
> > -        return -1;
> > -    }
> > -
> >     return 0;
> > }
> > 
> > @@ -1436,6 +1431,11 @@ vu_set_vring_kick_exec(VuDev *dev, VhostUserMsg 
> > *vmsg)
> >         vu_panic(dev, "Failed to check inflights for vq: %d\n", index);
> >     }
> > 
> > +    /* Inject a kick to look for available vq buffers */
> > +    if (eventfd_write(dev->vq[index].kick_fd, 1)) {
> 
> Should we check if kick_fd is not -1 like we already do in other places in
> this function? (mainly when `nofd` is true)
>
> > +        return -1;
> 
> This function returns boolean, -1 is `true` and IIUC means that we ask for a
> reply which is not the case here. We should fix it.

Thanks for catch these things. I'm going to redo this patch. Not sure
what I was thinking :).

Stefan

Attachment: signature.asc
Description: PGP signature

Reply via email to