qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v9 2/7] virtio-pmem: Add virtio pmem driver


From: Pankaj Gupta
Subject: Re: [Qemu-devel] [PATCH v9 2/7] virtio-pmem: Add virtio pmem driver
Date: Fri, 17 May 2019 01:35:58 -0400 (EDT)


Hi Jakub,

> 
> On 5/14/19 7:54 AM, Pankaj Gupta wrote:
> > +           if (!list_empty(&vpmem->req_list)) {
> > +                   req_buf = list_first_entry(&vpmem->req_list,
> > +                                   struct virtio_pmem_request, list);
> > +                   req_buf->wq_buf_avail = true;
> > +                   wake_up(&req_buf->wq_buf);
> > +                   list_del(&req_buf->list);
> Yes, this change is the right one, thank you!

Thank you for the confirmation.

> 
> > +    /*
> > +     * If virtqueue_add_sgs returns -ENOSPC then req_vq virtual
> > +     * queue does not have free descriptor. We add the request
> > +     * to req_list and wait for host_ack to wake us up when free
> > +     * slots are available.
> > +     */
> > +   while ((err = virtqueue_add_sgs(vpmem->req_vq, sgs, 1, 1, req,
> > +                                   GFP_ATOMIC)) == -ENOSPC) {
> > +
> > +           dev_err(&vdev->dev, "failed to send command to virtio pmem" \
> > +                   "device, no free slots in the virtqueue\n");
> > +           req->wq_buf_avail = false;
> > +           list_add_tail(&req->list, &vpmem->req_list);
> > +           spin_unlock_irqrestore(&vpmem->pmem_lock, flags);
> > +
> > +           /* A host response results in "host_ack" getting called */
> > +           wait_event(req->wq_buf, req->wq_buf_avail);
> > +           spin_lock_irqsave(&vpmem->pmem_lock, flags);
> > +   }
> > +   err1 = virtqueue_kick(vpmem->req_vq);
> > +   spin_unlock_irqrestore(&vpmem->pmem_lock, flags);
> > +
> > +   /*
> > +    * virtqueue_add_sgs failed with error different than -ENOSPC, we can't
> > +    * do anything about that.
> > +    */
> > +   if (err || !err1) {
> > +           dev_info(&vdev->dev, "failed to send command to virtio pmem 
> > device\n");
> > +           err = -EIO;
> > +   } else {
> > +           /* A host repsonse results in "host_ack" getting called */
> > +           wait_event(req->host_acked, req->done);
> > +           err = req->ret;
> > +I confirm that the failures I was facing with the `-ENOSPC` error path are
> > not present in v9.

Can I take it your reviewed/acked-by? or tested-by tag? for the virtio patch :)

Thank you,
Pankaj

> 
> Best,
> Jakub Staron
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]