From: keith.busch@intel.com (Keith Busch)
Subject: [PATCH v6 RFC] nvme: improve performance for virtual NVMe devices
Date: Thu, 30 Mar 2017 13:33:24 -0400 [thread overview]
Message-ID: <20170330173324.GH20181@localhost.localdomain> (raw)
In-Reply-To: <1490633408-27529-1-git-send-email-helen.koike@collabora.com>
On Mon, Mar 27, 2017@01:50:08PM -0300, Helen Koike wrote:
> changes since v5:
> - remove anonymous dbbuf struct in struct nvme_dev and struct nvme_queue
> - use inline functions for sq_idx and cq_idx instead of macros
> - add a warning when nvme_dbbuf_set fails
> - remove comment "Borrowed from vring_need_event"
> - change formatting of the parameters in nvme_write_doorbell
> - don't fail nvme_reset_work if nvme_dbbuf_dma_alloc fails
> - remove nvme_write_doorbell_{sq,cq} wrappers
> - in nvme_write_doorbell(), call writel last
I'm pretty much okay with this. The only thing I'd change is to call
nvme_dbbuf_dma_free only when we're unbinding so that we don't have to
reallocate it on a every controller reset:
> +static int nvme_dbbuf_dma_alloc(struct nvme_dev *dev)
> +{
> + unsigned int mem_size = nvme_dbbuf_size(dev->db_stride);
if (dev->dbbuf_dbs)
return 0;
> +
> + dev->dbbuf_dbs = dma_alloc_coherent(dev->dev, mem_size,
> + &dev->dbbuf_dbs_dma_addr,
> + GFP_KERNEL);
> + if (!dev->dbbuf_dbs)
> + return -ENOMEM;
> + dev->dbbuf_eis = dma_alloc_coherent(dev->dev, mem_size,
> + &dev->dbbuf_eis_dma_addr,
> + GFP_KERNEL);
> + if (!dev->dbbuf_eis) {
> + dma_free_coherent(dev->dev, mem_size,
> + dev->dbbuf_dbs, dev->dbbuf_dbs_dma_addr);
> + dev->dbbuf_dbs = NULL;
> + return -ENOMEM;
> + }
> +
> + return 0;
> +}
> @@ -1066,6 +1187,7 @@ static struct nvme_queue *nvme_alloc_queue(struct nvme_dev *dev, int qid,
> nvmeq->q_depth = depth;
> nvmeq->qid = qid;
> nvmeq->cq_vector = -1;
> + nvme_dbbuf_init(dev, nvmeq, qid);
> dev->queues[qid] = nvmeq;
> dev->queue_count++;
Remove the above since it's duplicated in nvme_init_queue.
> @@ -1700,6 +1825,7 @@ static void nvme_dev_disable(struct nvme_dev *dev, bool shutdown)
> nvme_disable_admin_queue(dev, shutdown);
> }
> nvme_pci_disable(dev);
> + nvme_dbbuf_dma_free(dev);
And move this to nvme_pci_free_ctrl().
next prev parent reply other threads:[~2017-03-30 17:33 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-14 18:04 [PATCH v2 RFC] nvme: improve performance for virtual NVMe devices Helen Mae Koike Fornazier
2016-04-21 13:33 ` Helen Koike
2016-04-21 13:38 ` Christoph Hellwig
2016-04-21 18:11 ` Ming Lin
2016-04-27 15:26 ` Helen Koike
2016-05-03 8:05 ` Christoph Hellwig
2016-05-04 16:48 ` Helen Koike
2016-05-05 14:17 ` Christoph Hellwig
2016-05-11 16:50 ` Helen Koike
2016-05-11 17:43 ` Keith Busch
2016-05-12 4:05 ` Helen Koike
2016-05-12 7:05 ` Christoph Hellwig
[not found] ` <CALu-fzt8=kmzZDqKsRYE42Q+F+Zu3U_s6XErpd9izXdxG1cUMA@mail.gmail.com>
[not found] ` <CAPst7KAAymUqbNwzxNAczduF6iLXQAMm5-auEdXZ_zHwhHtbWQ@mail.gmail.com>
2016-05-12 17:29 ` Mike Waychison
2016-05-05 15:15 ` Helen Koike
2016-05-05 15:24 ` Helen Koike
2016-08-16 1:41 ` [PATCH v3 RFC 0/2] Virtual NVMe device optimization Helen Koike
2016-08-16 1:41 ` Helen Koike
2016-08-16 1:41 ` [PATCH v3 RFC 1/2] PCI: Add Google device ID Helen Koike
2016-08-18 21:59 ` Bjorn Helgaas
2016-08-16 1:41 ` [PATCH v3 RFC 2/2] nvme: improve performance for virtual NVMe devices Helen Koike
2016-08-16 1:41 ` Helen Koike
2016-08-16 20:45 ` J Freyensee
2016-08-16 20:45 ` J Freyensee
2016-08-16 23:45 ` Keith Busch
2016-08-16 23:45 ` Keith Busch
2017-03-17 21:44 ` [PATCH v4 RFC] " Helen Koike
2017-03-17 22:28 ` Keith Busch
2017-03-17 22:26 ` Helen Koike
2017-03-24 4:23 ` [PATCH v5 " Helen Koike
2017-03-27 9:49 ` Christoph Hellwig
2017-03-27 16:04 ` Helen Koike
2017-03-27 16:25 ` Helen Koike
2017-03-27 14:43 ` Keith Busch
2017-03-27 16:50 ` [PATCH v6 " Helen Koike
2017-03-30 17:33 ` Keith Busch [this message]
2017-03-30 17:46 ` [PATCH v7 " Helen Koike
2017-03-31 7:01 ` Christoph Hellwig
2017-04-01 21:50 ` Helen Koike
2017-04-10 15:31 ` Helen Koike
2017-04-10 15:37 ` Christoph Hellwig
2017-04-10 15:51 ` [PATCH v8] " Helen Koike
2017-04-14 18:10 ` Helen Koike
2017-04-14 18:10 ` Helen Koike
2017-04-17 23:01 ` Keith Busch
2017-04-17 23:01 ` Keith Busch
2017-04-17 23:20 ` Helen Koike
2017-04-17 23:20 ` Helen Koike
2017-04-20 10:22 ` Sagi Grimberg
2017-04-20 10:22 ` Sagi Grimberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170330173324.GH20181@localhost.localdomain \
--to=keith.busch@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.