From: keith.busch@intel.com (Keith Busch)
Subject: [PATCH V2] nvme-pci: assign separate irq vectors for adminq and ioq0
Date: Thu, 1 Mar 2018 08:15:44 -0700 [thread overview]
Message-ID: <20180301151544.GA17676@localhost.localdomain> (raw)
In-Reply-To: <66e4ad3e-4019-13ec-94c0-e168cc1d95b4@oracle.com>
On Thu, Mar 01, 2018@06:05:53PM +0800, jianchao.wang wrote:
> When the adminq is free, ioq0 irq completion path has to invoke nvme_irq twice, one for itself,
> one for adminq completion irq action.
Let's be a little more careful on the terminology when referring to spec
defined features: there is no such thing as "ioq0". The IO queues start
at 1. The admin queue is the '0' index queue.
> We are trying to save every cpu cycle across the nvme host path, why we waste nvme_irq cycles here.
> If we have enough vectors, we could allocate another irq vector for adminq to avoid this.
Please understand the _overwhelming_ majority of time spent for IRQ
handling is the context switches. There's a reason you're not able to
measure a perf difference between IOQ1 and IOQ2: the number of CPU cycles
to chain a second action is negligible.
WARNING: multiple messages have this Message-ID (diff)
From: Keith Busch <keith.busch@intel.com>
To: "jianchao.wang" <jianchao.w.wang@oracle.com>
Cc: Sagi Grimberg <sagi@grimberg.me>, Christoph Hellwig <hch@lst.de>,
axboe@fb.com, linux-kernel@vger.kernel.org,
linux-nvme@lists.infradead.org
Subject: Re: [PATCH V2] nvme-pci: assign separate irq vectors for adminq and ioq0
Date: Thu, 1 Mar 2018 08:15:44 -0700 [thread overview]
Message-ID: <20180301151544.GA17676@localhost.localdomain> (raw)
In-Reply-To: <66e4ad3e-4019-13ec-94c0-e168cc1d95b4@oracle.com>
On Thu, Mar 01, 2018 at 06:05:53PM +0800, jianchao.wang wrote:
> When the adminq is free, ioq0 irq completion path has to invoke nvme_irq twice, one for itself,
> one for adminq completion irq action.
Let's be a little more careful on the terminology when referring to spec
defined features: there is no such thing as "ioq0". The IO queues start
at 1. The admin queue is the '0' index queue.
> We are trying to save every cpu cycle across the nvme host path, why we waste nvme_irq cycles here.
> If we have enough vectors, we could allocate another irq vector for adminq to avoid this.
Please understand the _overwhelming_ majority of time spent for IRQ
handling is the context switches. There's a reason you're not able to
measure a perf difference between IOQ1 and IOQ2: the number of CPU cycles
to chain a second action is negligible.
next prev parent reply other threads:[~2018-03-01 15:15 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-28 15:48 [PATCH V2] nvme-pci: assign separate irq vectors for adminq and ioq0 Jianchao Wang
2018-02-28 15:48 ` Jianchao Wang
2018-02-28 15:59 ` Andy Shevchenko
2018-02-28 15:59 ` Andy Shevchenko
2018-03-02 3:06 ` jianchao.wang
2018-03-02 3:06 ` jianchao.wang
2018-03-12 18:59 ` Keith Busch
2018-03-12 18:59 ` Keith Busch
2018-03-13 1:47 ` jianchao.wang
2018-03-13 1:47 ` jianchao.wang
2018-02-28 16:47 ` Christoph Hellwig
2018-02-28 16:47 ` Christoph Hellwig
2018-03-01 9:28 ` Sagi Grimberg
2018-03-01 9:28 ` Sagi Grimberg
2018-03-01 10:05 ` jianchao.wang
2018-03-01 10:05 ` jianchao.wang
2018-03-01 15:15 ` Keith Busch [this message]
2018-03-01 15:15 ` Keith Busch
2018-03-02 3:11 ` jianchao.wang
2018-03-02 3:11 ` jianchao.wang
2018-03-01 15:03 ` Ming Lei
2018-03-01 15:03 ` Ming Lei
2018-03-01 16:10 ` Keith Busch
2018-03-01 16:10 ` Keith Busch
2018-03-08 7:42 ` Christoph Hellwig
2018-03-08 7:42 ` Christoph Hellwig
2018-03-09 17:24 ` Keith Busch
2018-03-09 17:24 ` Keith Busch
2018-03-12 9:09 ` Ming Lei
2018-03-12 9:09 ` Ming Lei
2018-10-08 5:05 ` nvme-pci: number of queues off by one Prasun Ratn
2018-10-08 5:59 ` Dongli Zhang
2018-10-08 5:59 ` Dongli Zhang
2018-10-08 6:58 ` Dongli Zhang
2018-10-08 6:58 ` Dongli Zhang
2018-10-08 14:54 ` Keith Busch
2018-10-08 14:54 ` Keith Busch
2018-10-08 10:19 ` Ming Lei
2018-10-08 10:19 ` Ming Lei
2018-03-02 3:18 ` [PATCH V2] nvme-pci: assign separate irq vectors for adminq and ioq0 jianchao.wang
2018-03-02 3:18 ` jianchao.wang
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=20180301151544.GA17676@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.