[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: |
Jakub Staroń |
Subject: |
Re: [Qemu-devel] [PATCH v9 2/7] virtio-pmem: Add virtio pmem driver |
Date: |
Thu, 16 May 2019 17:12:36 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 |
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!
> + /*
> + * 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.
Best,
Jakub Staron
- [Qemu-devel] [PATCH v9 2/7] virtio-pmem: Add virtio pmem driver, (continued)
- [Qemu-devel] [PATCH v9 2/7] virtio-pmem: Add virtio pmem driver, Pankaj Gupta, 2019/05/14
- Re: [Qemu-devel] [PATCH v9 2/7] virtio-pmem: Add virtio pmem driver, David Hildenbrand, 2019/05/15
- Re: [Qemu-devel] [PATCH v9 2/7] virtio-pmem: Add virtio pmem driver, Pankaj Gupta, 2019/05/16
- Re: [Qemu-devel] [PATCH v9 2/7] virtio-pmem: Add virtio pmem driver, Michael S. Tsirkin, 2019/05/16
- Re: [Qemu-devel] [PATCH v9 2/7] virtio-pmem: Add virtio pmem driver, Pankaj Gupta, 2019/05/17
Re: [Qemu-devel] [PATCH v9 2/7] virtio-pmem: Add virtio pmem driver,
Jakub Staroń <=
[Qemu-devel] [PATCH v9 3/7] libnvdimm: add dax_dev sync flag, Pankaj Gupta, 2019/05/14
[Qemu-devel] [PATCH v9 4/7] dm: enable synchronous dax, Pankaj Gupta, 2019/05/14
[Qemu-devel] [PATCH v9 5/7] dax: check synchronous mapping is supported, Pankaj Gupta, 2019/05/14
[Qemu-devel] [PATCH v9 6/7] ext4: disable map_sync for async flush, Pankaj Gupta, 2019/05/14
[Qemu-devel] [PATCH v9 7/7] xfs: disable map_sync for async flush, Pankaj Gupta, 2019/05/14