From: Sagi Grimberg <sagi@grimberg.me> To: linux-nvme@lists.infradead.org Cc: linux-block@vger.kernel.org, Christoph Hellwig <hch@lst.de>, Keith Busch <keith.busch@intel.com>, Jens Axboe <axboe@kernel.dk> Subject: [PATCH v4 0/6] restore nvme-rdma polling Date: Fri, 14 Dec 2018 11:06:04 -0800 [thread overview] Message-ID: <20181214190610.20086-1-sagi@grimberg.me> (raw) Add an additional queue mapping for polling queues that will host polling for latency critical I/O. Allocate the poll queues with IB_POLL_DIRECT context. For nvmf connect we introduce a new blk_execute_rq_polled to poll for the completion and have nvmf_connect_io_queue use it for conneting polling queues. Changes from v3: - renamed nvme_rdma_poller_queue to nvme_rdma_poll_queue - dropped explicit setting of QUEUE_FLAG_POLL in the connect_q - report nr_maps=3 only if we got opts->nr_poll_queues - dropped local cq variable from nvme_rdma_poll Changes from v2: - move blk_execute_rq_polled to nvme-core - turn off REQ_HIPRI if polling is not supported (e.g. for stacking devices) - omit nvme-cli patch - can be taken from v2 - removed blk_tag_to_qc_t and open-coded it in request_to_tag instead Changes from v1: - get rid of ib_change_cq_ctx - poll for nvmf connect over poll queues Christoph Hellwig (1): block: clear REQ_HIPRI if polling is not supported Sagi Grimberg (5): block: make request_to_qc_t public nvme-core: optionally poll sync commands nvme-fabrics: allow nvmf_connect_io_queue to poll nvme-fabrics: allow user to pass in nr_poll_queues nvme-rdma: implement polling queue map block/blk-core.c | 3 +++ block/blk-mq.c | 8 ------ drivers/nvme/host/core.c | 38 ++++++++++++++++++++++++---- drivers/nvme/host/fabrics.c | 25 ++++++++++++++----- drivers/nvme/host/fabrics.h | 5 +++- drivers/nvme/host/fc.c | 2 +- drivers/nvme/host/nvme.h | 2 +- drivers/nvme/host/rdma.c | 49 ++++++++++++++++++++++++++++++++----- drivers/nvme/host/tcp.c | 2 +- drivers/nvme/target/loop.c | 2 +- include/linux/blk-mq.h | 10 ++++++++ include/linux/blk_types.h | 11 --------- 12 files changed, 116 insertions(+), 41 deletions(-) -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: sagi@grimberg.me (Sagi Grimberg) Subject: [PATCH v4 0/6] restore nvme-rdma polling Date: Fri, 14 Dec 2018 11:06:04 -0800 [thread overview] Message-ID: <20181214190610.20086-1-sagi@grimberg.me> (raw) Add an additional queue mapping for polling queues that will host polling for latency critical I/O. Allocate the poll queues with IB_POLL_DIRECT context. For nvmf connect we introduce a new blk_execute_rq_polled to poll for the completion and have nvmf_connect_io_queue use it for conneting polling queues. Changes from v3: - renamed nvme_rdma_poller_queue to nvme_rdma_poll_queue - dropped explicit setting of QUEUE_FLAG_POLL in the connect_q - report nr_maps=3 only if we got opts->nr_poll_queues - dropped local cq variable from nvme_rdma_poll Changes from v2: - move blk_execute_rq_polled to nvme-core - turn off REQ_HIPRI if polling is not supported (e.g. for stacking devices) - omit nvme-cli patch - can be taken from v2 - removed blk_tag_to_qc_t and open-coded it in request_to_tag instead Changes from v1: - get rid of ib_change_cq_ctx - poll for nvmf connect over poll queues Christoph Hellwig (1): block: clear REQ_HIPRI if polling is not supported Sagi Grimberg (5): block: make request_to_qc_t public nvme-core: optionally poll sync commands nvme-fabrics: allow nvmf_connect_io_queue to poll nvme-fabrics: allow user to pass in nr_poll_queues nvme-rdma: implement polling queue map block/blk-core.c | 3 +++ block/blk-mq.c | 8 ------ drivers/nvme/host/core.c | 38 ++++++++++++++++++++++++---- drivers/nvme/host/fabrics.c | 25 ++++++++++++++----- drivers/nvme/host/fabrics.h | 5 +++- drivers/nvme/host/fc.c | 2 +- drivers/nvme/host/nvme.h | 2 +- drivers/nvme/host/rdma.c | 49 ++++++++++++++++++++++++++++++++----- drivers/nvme/host/tcp.c | 2 +- drivers/nvme/target/loop.c | 2 +- include/linux/blk-mq.h | 10 ++++++++ include/linux/blk_types.h | 11 --------- 12 files changed, 116 insertions(+), 41 deletions(-) -- 2.17.1
next reply other threads:[~2018-12-14 19:06 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-12-14 19:06 Sagi Grimberg [this message] 2018-12-14 19:06 ` [PATCH v4 0/6] restore nvme-rdma polling Sagi Grimberg 2018-12-14 19:06 ` [PATCH v4 1/6] block: clear REQ_HIPRI if polling is not supported Sagi Grimberg 2018-12-14 19:06 ` Sagi Grimberg 2018-12-14 19:06 ` [PATCH v4 2/6] block: make request_to_qc_t public Sagi Grimberg 2018-12-14 19:06 ` Sagi Grimberg 2018-12-14 19:06 ` [PATCH v4 3/6] nvme-core: optionally poll sync commands Sagi Grimberg 2018-12-14 19:06 ` Sagi Grimberg 2018-12-14 19:06 ` [PATCH v4 4/6] nvme-fabrics: allow nvmf_connect_io_queue to poll Sagi Grimberg 2018-12-14 19:06 ` Sagi Grimberg 2018-12-14 19:06 ` [PATCH v4 5/6] nvme-fabrics: allow user to pass in nr_poll_queues Sagi Grimberg 2018-12-14 19:06 ` Sagi Grimberg 2018-12-14 19:06 ` [PATCH v4 6/6] nvme-rdma: implement polling queue map Sagi Grimberg 2018-12-14 19:06 ` Sagi Grimberg 2018-12-18 16:48 ` [PATCH v4 0/6] restore nvme-rdma polling Christoph Hellwig 2018-12-18 16:48 ` Christoph Hellwig
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=20181214190610.20086-1-sagi@grimberg.me \ --to=sagi@grimberg.me \ --cc=axboe@kernel.dk \ --cc=hch@lst.de \ --cc=keith.busch@intel.com \ --cc=linux-block@vger.kernel.org \ --cc=linux-nvme@lists.infradead.org \ /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: linkBe 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.