Messages in this thread | | | Subject | Re: [V2 PATCH 9/9] vhost: zerocopy: poll vq in zerocopy callback | From | Shirley Ma <> | Date | Tue, 15 May 2012 09:50:30 -0700 |
| |
On Wed, 2012-05-02 at 11:42 +0800, Jason Wang wrote: > We add used and signal guest in worker thread but did not poll the > virtqueue > during the zero copy callback. This may lead the missing of adding and > signalling during zerocopy. Solve this by polling the virtqueue and > let it > wakeup the worker during callback. > > Signed-off-by: Jason Wang <jasowang@redhat.com> > --- > drivers/vhost/vhost.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index 947f00d..7b75fdf 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -1604,6 +1604,7 @@ void vhost_zerocopy_callback(void *arg) > struct vhost_ubuf_ref *ubufs = ubuf->arg; > struct vhost_virtqueue *vq = ubufs->vq; > > + vhost_poll_queue(&vq->poll); > /* set len = 1 to mark this desc buffers done DMA */ > vq->heads[ubuf->desc].len = VHOST_DMA_DONE_LEN; > kref_put(&ubufs->kref, vhost_zerocopy_done_signal);
Doing so, we might have redundant vhost_poll_queue(). Do you know in which scenario there might be missing of adding and signaling during zerocopy?
Thanks Shirley
| |