From: keith.busch@intel.com (Keith Busch)
Subject: [PATCH 1/5] NVMe: Fix admin queue ring wrap
Date: Wed, 30 Dec 2015 17:56:58 +0000 [thread overview]
Message-ID: <20151230175658.GB22501@localhost.localdomain> (raw)
In-Reply-To: <20151230174954.GB21400@infradead.org>
On Wed, Dec 30, 2015@09:49:54AM -0800, Christoph Hellwig wrote:
> On Wed, Dec 30, 2015@10:27:47AM -0700, Keith Busch wrote:
> > The tag set queue depth needs to be one less than the h/w queue depth
> > so we don't wrap the circular buffer. This conforms to the specification
> > defined "Full Queue" condition.
>
> You'll need to change NVME_AQ_DEPTH to make sure the magic for the
> AEN commands still work.
It'll still work. The command id is just a cookie to the controller,
and the AEN command id is still higher than the highest request "tag",
so the logic all works.
> But can you explain the actual issue a little more while we're at it?
> Preferably in a comment in the code!
Our admin queue depth is fixed to 256. We reserve one for AEN, so the
depth we told blk-mq is 255. If we use all 255 tags, plus the special one
for AEN, we wrapped the queue. In practice, it is unlikely you're going
to use up 255 admin tags, so I don't think it's a condition frequently
tested, but we need to tell blk-mq to use only 254 tags instead.
next prev parent reply other threads:[~2015-12-30 17:56 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-30 17:27 [PATCH 0/5] NVMe fixes and updates for 4.5 Keith Busch
2015-12-30 17:27 ` [PATCH 1/5] NVMe: Fix admin queue ring wrap Keith Busch
2015-12-30 17:49 ` Christoph Hellwig
2015-12-30 17:56 ` Keith Busch [this message]
2015-12-30 17:53 ` Jens Axboe
2015-12-30 18:09 ` Christoph Hellwig
2015-12-30 17:27 ` [PATCH 2/5] NVMe: Use a retryable error code on reset Keith Busch
2015-12-30 17:52 ` Christoph Hellwig
2015-12-30 18:09 ` Keith Busch
2015-12-30 18:18 ` Christoph Hellwig
2015-12-30 17:27 ` [PATCH 3/5] NVMe: Remove queue freezing on resets Keith Busch
2015-12-30 17:53 ` Christoph Hellwig
2015-12-30 20:44 ` Sagi Grimberg
2015-12-30 20:42 ` Sagi Grimberg
2015-12-31 17:19 ` Sagi Grimberg
2015-12-30 17:27 ` [PATCH 4/5] NVMe: Shutdown controller only for power-off Keith Busch
2015-12-30 17:58 ` Christoph Hellwig
2015-12-30 18:02 ` Keith Busch
2015-12-30 18:14 ` Christoph Hellwig
2015-12-30 17:27 ` [PATCH 5/5] NVMe: IO queue deletion re-write Keith Busch
2015-12-30 18:04 ` Christoph Hellwig
2015-12-30 19:07 ` Keith Busch
2016-01-02 17:07 ` Christoph Hellwig
2016-01-02 21:30 ` Keith Busch
2016-01-03 11:40 ` Christoph Hellwig
2016-01-03 15:43 ` Keith Busch
2016-01-03 16:17 ` Christoph Hellwig
2016-01-03 16:26 ` Keith Busch
2016-01-03 18:04 ` Keith Busch
2016-01-03 17:05 ` 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=20151230175658.GB22501@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.