From: ming.lei@redhat.com (Ming Lei)
Subject: [PATCH V2 3/3] nvme pci: introduce module parameter of 'default_queues'
Date: Sat, 29 Dec 2018 11:26:50 +0800 [thread overview]
Message-ID: <20181229032650.27256-4-ming.lei@redhat.com> (raw)
In-Reply-To: <20181229032650.27256-1-ming.lei@redhat.com>
On big system with lots of CPU cores, it is easy to consume up irq
vectors by assigning defaut queue with num_possible_cpus() irq vectors.
Meantime it is often not necessary to allocate so many vectors for
reaching NVMe's top performance under that situation.
This patch introduces module parameter of 'default_queues' to try
to address this issue reported by Shan Hai.
Reported-by: Shan Hai <shan.hai at oracle.com>
Cc: Shan Hai <shan.hai at oracle.com>
Cc: Keith Busch <keith.busch at intel.com>
Cc: Jens Axboe <axboe at fb.com>
Signed-off-by: Ming Lei <ming.lei at redhat.com>
---
drivers/nvme/host/pci.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 584ea7a57122..17a261e7f941 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -81,6 +81,12 @@ static const struct kernel_param_ops queue_count_ops = {
.get = param_get_int,
};
+static int default_queues;
+module_param_cb(default_queues, &queue_count_ops, &default_queues, 0644);
+MODULE_PARM_DESC(default_queues,
+ "Number of queues to use DEFAULT queue type. If not set, "
+ "num_possible_cpus() will be used.");
+
static int write_queues;
module_param_cb(write_queues, &queue_count_ops, &write_queues, 0644);
MODULE_PARM_DESC(write_queues,
@@ -254,7 +260,9 @@ static inline void _nvme_check_size(void)
static unsigned int max_io_queues(void)
{
- return num_possible_cpus() + write_queues + poll_queues;
+ int def_io_queues = default_queues ?: num_possible_cpus();
+
+ return def_io_queues + write_queues + poll_queues;
}
static unsigned int max_queue_count(void)
--
2.9.5
next prev parent reply other threads:[~2018-12-29 3:26 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-29 3:26 [PATCH V2 0/3] nvme pci: two fixes on nvme_setup_irqs Ming Lei
2018-12-29 3:26 ` Ming Lei
2018-12-29 3:26 ` [PATCH V2 1/3] PCI/MSI: preference to returning -ENOSPC from pci_alloc_irq_vectors_affinity Ming Lei
2018-12-29 3:26 ` Ming Lei
2018-12-31 22:00 ` Bjorn Helgaas
2018-12-31 22:00 ` Bjorn Helgaas
2018-12-31 22:41 ` Keith Busch
2018-12-31 22:41 ` Keith Busch
2019-01-01 5:24 ` Ming Lei
2019-01-01 5:24 ` Ming Lei
2019-01-02 21:02 ` Bjorn Helgaas
2019-01-02 21:02 ` Bjorn Helgaas
2019-01-02 22:46 ` Keith Busch
2019-01-02 22:46 ` Keith Busch
2018-12-29 3:26 ` [PATCH V2 2/3] nvme pci: fix nvme_setup_irqs() Ming Lei
2018-12-29 3:26 ` Ming Lei [this message]
2018-12-31 21:24 ` [PATCH V2 3/3] nvme pci: introduce module parameter of 'default_queues' Bjorn Helgaas
2019-01-01 5:47 ` Ming Lei
2019-01-02 2:14 ` Shan Hai
[not found] ` <20190102073607.GA25590@ming.t460p>
[not found] ` <d59007c6-af13-318c-5c9d-438ad7d9149d@oracle.com>
[not found] ` <20190102083901.GA26881@ming.t460p>
2019-01-03 2:04 ` Shan Hai
2019-01-02 20:11 ` Bjorn Helgaas
2019-01-03 2:12 ` Ming Lei
2019-01-03 2:52 ` Shan Hai
2019-01-03 3:11 ` Shan Hai
2019-01-03 3:31 ` Ming Lei
2019-01-03 4:36 ` Shan Hai
2019-01-03 10:34 ` Ming Lei
2019-01-04 2:53 ` Shan Hai
2019-01-03 4:51 ` Shan Hai
2019-01-03 3:21 ` Ming Lei
2019-01-14 13:13 ` [PATCH V2 0/3] nvme pci: two fixes on nvme_setup_irqs John Garry
2019-01-14 13:13 ` John Garry
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=20181229032650.27256-4-ming.lei@redhat.com \
--to=ming.lei@redhat.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.