All of lore.kernel.org
 help / color / mirror / Atom feed
From: keith.busch@intel.com (Keith Busch)
Subject: [PATCH v3] nvme-pci: Support shared tags across queues for Apple 2018 controllers
Date: Mon, 5 Aug 2019 07:49:07 -0600	[thread overview]
Message-ID: <20190805134907.GC18647@localhost.localdomain> (raw)
In-Reply-To: <6290507e1b2830b1729fc858cd5c20b85d092728.camel@kernel.crashing.org>

On Mon, Aug 05, 2019@04:49:23PM +1000, Benjamin Herrenschmidt wrote:
> On Tue, 2019-07-30@13:28 -0700, Benjamin Herrenschmidt wrote:
> > > One problem is that we've an nvme parameter, io_queue_depth, that a user
> > > could set to something less than 32, and then you won't be able to do
> > > any IO. I'd recommend enforce the admin queue to QD1 for this device so
> > > that you have more potential IO tags.
> > 
> > So I had a look and it's not that trivial. I would have to change
> > a few things that use constants for the admin queue depth, such as
> > the AEN tag etc...
> > 
> > For such a special case, I am tempted instead to do the much simpler:
> > 
> >         if (dev->ctrl.quirks & NVME_QUIRK_SHARED_TAGS) {
> >                 if (dev->q_depth < (NVME_AQ_DEPTH + 2))
> >                         dev->q_depth = NVME_AQ_DEPTH + 2;
> >         }
> > 
> > In nvme_pci_enable() next to the existing q_depth hackery for other
> > controllers.
> > 
> > Thoughts ?
> 
> Ping ? I had another look today and I don't feel like mucking around
> with all the AQ size logic, AEN magic tag etc... just for that sake of
> that Apple gunk. I'm happy to have it give up IO tags, it doesn't seem
> to make much of a difference in practice anyway.
> 
> But if you feel strongly about it, then I'll implement the "proper" way
> sometimes this week, adding a way to shrink the AQ down to something
> like 3 (one admin request, one async event (AEN), and the empty slot)
> by making a bunch of the constants involved variables instead.

I don't feel too strongly about it. I think your patch is fine, so

Acked-by: Keith Busch <keith.busch at intel.com>

WARNING: multiple messages have this Message-ID (diff)
From: Keith Busch <keith.busch@intel.com>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Keith Busch <kbusch@kernel.org>,
	linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org,
	Paul Pawlowski <paul@mrarm.io>, Jens Axboe <axboe@fb.com>,
	Christoph Hellwig <hch@lst.de>,
	Minwoo Im <minwoo.im.dev@gmail.com>,
	Damien Le Moal <Damien.LeMoal@wdc.com>
Subject: Re: [PATCH v3] nvme-pci: Support shared tags across queues for Apple 2018 controllers
Date: Mon, 5 Aug 2019 07:49:07 -0600	[thread overview]
Message-ID: <20190805134907.GC18647@localhost.localdomain> (raw)
In-Reply-To: <6290507e1b2830b1729fc858cd5c20b85d092728.camel@kernel.crashing.org>

On Mon, Aug 05, 2019 at 04:49:23PM +1000, Benjamin Herrenschmidt wrote:
> On Tue, 2019-07-30 at 13:28 -0700, Benjamin Herrenschmidt wrote:
> > > One problem is that we've an nvme parameter, io_queue_depth, that a user
> > > could set to something less than 32, and then you won't be able to do
> > > any IO. I'd recommend enforce the admin queue to QD1 for this device so
> > > that you have more potential IO tags.
> > 
> > So I had a look and it's not that trivial. I would have to change
> > a few things that use constants for the admin queue depth, such as
> > the AEN tag etc...
> > 
> > For such a special case, I am tempted instead to do the much simpler:
> > 
> >         if (dev->ctrl.quirks & NVME_QUIRK_SHARED_TAGS) {
> >                 if (dev->q_depth < (NVME_AQ_DEPTH + 2))
> >                         dev->q_depth = NVME_AQ_DEPTH + 2;
> >         }
> > 
> > In nvme_pci_enable() next to the existing q_depth hackery for other
> > controllers.
> > 
> > Thoughts ?
> 
> Ping ? I had another look today and I don't feel like mucking around
> with all the AQ size logic, AEN magic tag etc... just for that sake of
> that Apple gunk. I'm happy to have it give up IO tags, it doesn't seem
> to make much of a difference in practice anyway.
> 
> But if you feel strongly about it, then I'll implement the "proper" way
> sometimes this week, adding a way to shrink the AQ down to something
> like 3 (one admin request, one async event (AEN), and the empty slot)
> by making a bunch of the constants involved variables instead.

I don't feel too strongly about it. I think your patch is fine, so

Acked-by: Keith Busch <keith.busch@intel.com>

  reply	other threads:[~2019-08-05 13:49 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-19  5:31 [PATCH v3] nvme-pci: Support shared tags across queues for Apple 2018 controllers Benjamin Herrenschmidt
2019-07-19  5:31 ` Benjamin Herrenschmidt
2019-07-19  5:45 ` Balbir Singh
2019-07-19  5:45   ` Balbir Singh
2019-07-19 12:28 ` Christoph Hellwig
2019-07-19 12:28   ` Christoph Hellwig
2019-07-19 13:51   ` Benjamin Herrenschmidt
2019-07-19 13:51     ` Benjamin Herrenschmidt
2019-07-22 21:54     ` Benjamin Herrenschmidt
2019-07-22 21:54       ` Benjamin Herrenschmidt
2019-07-23  1:36 ` Ming Lei
2019-07-23  1:36   ` Ming Lei
2019-07-30 15:30 ` Keith Busch
2019-07-30 15:30   ` Keith Busch
2019-07-30 20:15   ` Benjamin Herrenschmidt
2019-07-30 20:15     ` Benjamin Herrenschmidt
2019-07-30 20:28   ` Benjamin Herrenschmidt
2019-07-30 20:28     ` Benjamin Herrenschmidt
2019-08-05  6:49     ` Benjamin Herrenschmidt
2019-08-05  6:49       ` Benjamin Herrenschmidt
2019-08-05 13:49       ` Keith Busch [this message]
2019-08-05 13:49         ` Keith Busch
2019-08-05 18:27         ` Sagi Grimberg
2019-08-05 18:27           ` Sagi Grimberg
2019-08-05 18:35           ` Keith Busch
2019-08-05 18:35             ` Keith Busch
2019-08-05 19:07           ` Jens Axboe
2019-08-05 19:07             ` Jens Axboe
2019-08-05 19:56             ` Sagi Grimberg
2019-08-05 19:56               ` Sagi Grimberg
2019-08-05 20:07               ` Sagi Grimberg
2019-08-05 20:07                 ` Sagi Grimberg
2019-08-06  5:26                 ` Benjamin Herrenschmidt
2019-08-06  5:26                   ` Benjamin Herrenschmidt
2019-08-06  5:26           ` Benjamin Herrenschmidt
2019-08-06  5:26             ` Benjamin Herrenschmidt
2019-08-06  5:24         ` Benjamin Herrenschmidt
2019-08-06  5:24           ` Benjamin Herrenschmidt

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=20190805134907.GC18647@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.