From: willy@linux.intel.com (Matthew Wilcox)
Subject: [PATCH 1/1] NVMe I/O queue depth change to module parameter
Date: Wed, 16 Jul 2014 09:27:39 -0400 [thread overview]
Message-ID: <20140716132739.GH5855@linux.intel.com> (raw)
In-Reply-To: <CACuVHZ=vSQ1341CUziDZJjv5DkGzw-9K7WOda59yfpT3WOzG2Q@mail.gmail.com>
On Wed, Jul 16, 2014@11:00:31AM +0530, mundu agarwal wrote:
> Willy,
>
> In one of the server test environment, user unable to change I/O queue
> depth more than 1024. Controller supports much higher number but still
> limit to 1024.
> Is there any thought for keeping 1024 only ?
That's the kind of comment you need to write in the changelog description.
Now, the reason I limited a queue to 1024 entries was that this was
sufficient to saturate a PCIe bus with typical flash latencies.
If the PCIe bus is x8 gen3, we have 8GB/s of bandwidth available.
Assuming that I/Os are on average 4k and it's a 50/50 read/write split,
we need to service 4 million IOPS to saturate the bus (I haven't heard
of anyone producing a 4 million IOPS device, but let's assume someone's
trying to).
Assuming the controller takes about 100us to service any individual
request, servicing 4 million I/Os serially would take 400 seconds, so
we need to have at least 400 I/Os with the device at all times in order
to hit our goal of saturating the PCIe bus.
So with 1024 I/Os on any given queue, we're a factor of 2.5 above that
goal, *per queue*. So increasing the maximum queue depth any further
isn't going to help us achieve our goal of saturating the PCIe bus.
Indeed, it's only going to upset some of the other timeouts; we've already
had reports that I/Os will start to time out if you saturate all of the
queues as the controllers can't complete the I/Os fast enough.
So what's your motivation for needing a deeper queue?
next prev parent reply other threads:[~2014-07-16 13:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-15 17:36 [PATCH 1/1] NVMe I/O queue depth change to module parameter Mundu
2014-07-15 18:28 ` Matthew Wilcox
2014-07-16 5:37 ` mundu agarwal
[not found] ` <CACuVHZ=vSQ1341CUziDZJjv5DkGzw-9K7WOda59yfpT3WOzG2Q@mail.gmail.com>
2014-07-16 13:27 ` Matthew Wilcox [this message]
2014-07-20 14:15 ` mundu agarwal
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=20140716132739.GH5855@linux.intel.com \
--to=willy@linux.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.