From: Max Gurtovoy <mgurtovoy@nvidia.com>
To: <linux-nvme@lists.infradead.org>, <hch@lst.de>,
<kbusch@kernel.org>, <sagi@grimberg.me>
Cc: <chaitanyak@nvidia.com>, <israelr@nvidia.com>, <oren@nvidia.com>,
<hare@suse.de>, <jsmart2021@gmail.com>,
Max Gurtovoy <mgurtovoy@nvidia.com>
Subject: [PATCH v2 0/10] Centrelize common fabrics code to core drivers
Date: Wed, 20 Oct 2021 13:38:34 +0300 [thread overview]
Message-ID: <20211020103844.7533-1-mgurtovoy@nvidia.com> (raw)
Hi Christoph, Sagi, Keith and Co,
This series is intended to move common reconnection, device removal,
error recovery and reset logic to common fabrics and core drivers.
In this stage, it mainly deals with the RDMA and TCP drivers which had
the same logic for the above tasks. FC driver can start using this
framework in the future after some preparation work that should be done.
This will ease on code maintenance and reduce the code duplication
between the RDMA and TCP drivers.
Since there are some attributes that were moved to generic nvme_ctrl
structure, I've measured perf impact.
NVMe PCI Perf numbers using NVIDIA's NVMe SNAP Bluefield-2 device
(Fio 16 jobs, 128 iodepth, libaio):
IO size rand READ (before/after) rand WRITE (before/after)
-------- ------------------------- --------------------------
512B 2189k/2197k 2031k/2092k
1KB 2188k/2201k 2027k/2088k
2KB 2166k/2181k 2023k/2078k
4KB 2153k/2169k 2025k/2076k
8KB 1381k/1381k 1378k/1375k
16KB 669k/676k 660k/664k
32KB 320k/322k 305k/305k
64KB 157k/157k 151k/151k
As we can see, there is no impact on the performance.
Changes from v1:
- collect some "Reviewed-by" signatures (Sagi, Hannes, Chaitanya)
- added reset flow to this series (thus added setup_ctrl callback)
- added more common code to nvmf_init_ctrl
- rename nvmf_teardown_ctrl to nvmf_uninit_ctrl (Sagi)
- add bool arguments to use RDMA/TCP callbacks directly (Hannes)
Max Gurtovoy (10):
nvme: add connect_work attribute to nvme ctrl
nvme-fabrics: introduce nvmf_reconnect_or_remove API
nvme: add err_work attribute to nvme ctrl
nvme-fabrics: introduce nvmf_error_recovery API
nvme/nvme-fabrics: introduce nvmf_error_recovery_work API
nvme/nvme-fabrics: introduce nvmf_reconnect_ctrl_work API
nvme-fabrics: add nvmf_init_ctrl/nvmf_uninit_ctrl API
nvme-rdma: update WARN_ON condition during reset
nvme/nvme-fabrics: move reset ctrl flow to common code
nvme-fabrics: set common attributes during nvmf_init_ctrl
drivers/nvme/host/fabrics.c | 121 +++++++++++++++++
drivers/nvme/host/fabrics.h | 3 +
drivers/nvme/host/fc.c | 23 ++--
drivers/nvme/host/nvme.h | 8 ++
drivers/nvme/host/rdma.c | 252 +++++++++++-------------------------
drivers/nvme/host/tcp.c | 152 +++-------------------
6 files changed, 241 insertions(+), 318 deletions(-)
--
2.18.1
next reply other threads:[~2021-10-20 10:39 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-20 10:38 Max Gurtovoy [this message]
2021-10-20 10:38 ` [PATCH 01/10] nvme: add connect_work attribute to nvme ctrl Max Gurtovoy
2021-11-02 22:59 ` James Smart
2021-10-20 10:38 ` [PATCH 02/10] nvme-fabrics: introduce nvmf_reconnect_or_remove API Max Gurtovoy
2021-11-02 23:38 ` James Smart
2021-10-20 10:38 ` [PATCH 03/10] nvme: add err_work attribute to nvme ctrl Max Gurtovoy
2021-10-20 11:05 ` Hannes Reinecke
2021-11-02 23:53 ` James Smart
2021-10-20 10:38 ` [PATCH 04/10] nvme-fabrics: introduce nvmf_error_recovery API Max Gurtovoy
2021-11-02 23:59 ` James Smart
2021-10-20 10:38 ` [PATCH 05/10] nvme/nvme-fabrics: introduce nvmf_error_recovery_work API Max Gurtovoy
2021-11-03 0:04 ` James Smart
2021-10-20 10:38 ` [PATCH 06/10] nvme/nvme-fabrics: introduce nvmf_reconnect_ctrl_work API Max Gurtovoy
2021-11-03 0:15 ` James Smart
2021-10-20 10:38 ` [PATCH 07/10] nvme-fabrics: add nvmf_init_ctrl/nvmf_uninit_ctrl API Max Gurtovoy
2021-11-03 0:19 ` James Smart
2021-10-20 10:38 ` [PATCH 08/10] nvme-rdma: update WARN_ON condition during reset Max Gurtovoy
2021-10-20 10:38 ` [PATCH 09/10] nvme/nvme-fabrics: move reset ctrl flow to common code Max Gurtovoy
2021-11-03 0:27 ` James Smart
2021-10-20 10:38 ` [PATCH 10/10] nvme-fabrics: set common attributes during nvmf_init_ctrl Max Gurtovoy
2021-11-03 0:30 ` James Smart
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=20211020103844.7533-1-mgurtovoy@nvidia.com \
--to=mgurtovoy@nvidia.com \
--cc=chaitanyak@nvidia.com \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=israelr@nvidia.com \
--cc=jsmart2021@gmail.com \
--cc=kbusch@kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=oren@nvidia.com \
--cc=sagi@grimberg.me \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox