From: Max Gurtovoy <maxg@mellanox.com> To: linux-nvme@lists.infradead.org, sagi@grimberg.me, linux-rdma@vger.kernel.org, kbusch@kernel.org, hch@lst.de, martin.petersen@oracle.com Cc: vladimirk@mellanox.com, idanb@mellanox.com, maxg@mellanox.com, israelr@mellanox.com, axboe@kernel.dk, shlomin@mellanox.com Subject: [PATCH 00/19 V4] nvme-rdma/nvmet-rdma: Add metadata/T10-PI support Date: Mon, 24 Feb 2020 18:45:24 +0200 [thread overview] Message-ID: <20200224164544.219438-1-maxg@mellanox.com> (raw) Hello Sagi, Christoph, Keith, Martin and Co This patchset adds metadata (T10-PI) support for NVMeoF/RDMA host side and target side, using signature verbs API. This set starts with a few preparation commits to the NVMe host core layer. It continues with NVMeoF/RDMA host implementation + few preparation commits to the RDMA/rw API and to NVMe target core layer. The patchset ends with NVMeoF/RDMA target implementation. Configuration: Host: - nvme connect --pi_enable --transport=rdma --traddr=10.0.1.1 --nqn=test-nvme Target: - echo 1 > /config/nvmet/subsystems/${NAME}/attr_pi_enable - echo 1 > /config/nvmet/ports/${PORT_NUM}/param_pi_enable The code was tested using Mellanox's ConnectX-4/ConnectX-5 HCAs. This series applies on top of nvme_5.7 branch cleanly. Changes from v3: - Added Reviewed-by signatures - New RDMA/rw patch (Patch 17/19) - Add mdts setting op for controllers (Patches 14/19, 18/19) - Rename NVME_NS_DIX_SUPPORTED to NVME_NS_MD_HOST_SUPPORTED and NVME_NS_DIF_SUPPORTED to NVME_NS_MD_CTRL_SUPPORTED (Patch 01/19) - Split "nvme: Introduce namespace features flag" patch (patch 02/19) - Rename nvmet_rdma_set_diff_domain to nvmet_rdma_set_sig_domain and nvme_rdma_set_diff_domain to nvme_rdma_set_sig_domain (Patches 08/19, 19/19) - Remove ns parameter from nvme_rdma_set_sig_domain/nvmet_rdma_set_sig_domain functions (patch 08/19, 19/19) - Rebase over nvme-5.7 branch Changes from v2: - Convert the virtual start sector (which passed to bip_set_seed function) to be in integrity interval units (Patch 14/15) - Clarify some commit messages Changes from v1: - Added Reviewed-by signatures - Added namespace features flag (Patch 01/15) - Remove nvme_ns_has_pi function (Patch 01/15) - Added has_pi field to struct nvme_request (Patch 01/15) - Subject change for patch 02/15 - Fix comment for PCI metadata (Patch 03/15) - Rebase over "nvme: Avoid preallocating big SGL for data" patchset - Introduce NVME_INLINE_PROT_SG_CNT flag (Patch 05/15) - Introduce nvme_rdma_sgl structure (Patch 06/15) - Remove first_sgl pointer from struct nvme_rdma_request (Patch 06/15) - Split nvme-rdma patches (Patches 06/15, 07/15) - Rename is_protected to use_pi (Patch 07/15) - Refactor nvme_rdma_get_max_fr_pages function (Patch 07/15) - Added ifdef CONFIG_BLK_DEV_INTEGRITY (Patches 07/15, 09/15, 13/15, 14/15, 15/15) - Added port configfs pi_enable (Patch 14/15) Israel Rukshin (13): nvme: Introduce namespace features flag nvme: Add has_pi field to the nvme_req structure nvme-fabrics: Allow user enabling metadata/T10-PI support nvme: Introduce NVME_INLINE_PROT_SG_CNT nvme-rdma: Introduce nvme_rdma_sgl structure nvmet: Prepare metadata request nvmet: Add metadata characteristics for a namespace nvmet: Rename nvmet_rw_len to nvmet_rw_data_len nvmet: Rename nvmet_check_data_len to nvmet_check_transfer_len nvme: Add Metadata Capabilities enumerations nvmet: Add metadata/T10-PI support nvmet: Add metadata support for block devices nvmet-rdma: Add metadata/T10-PI support Max Gurtovoy (6): nvme: Enforce extended LBA format for fabrics metadata nvme: Introduce max_integrity_segments ctrl attribute nvme-rdma: Add metadata/T10-PI support nvmet: Add mdts setting op for controllers RDMA/rw: Expose maximal page list for a device per 1 MR nvmet-rdma: Implement set_mdts controller op drivers/infiniband/core/rw.c | 14 +- drivers/nvme/host/core.c | 76 +++++--- drivers/nvme/host/fabrics.c | 11 ++ drivers/nvme/host/fabrics.h | 3 + drivers/nvme/host/nvme.h | 9 +- drivers/nvme/host/pci.c | 7 + drivers/nvme/host/rdma.c | 367 +++++++++++++++++++++++++++++++++----- drivers/nvme/target/admin-cmd.c | 41 +++-- drivers/nvme/target/configfs.c | 61 +++++++ drivers/nvme/target/core.c | 54 ++++-- drivers/nvme/target/discovery.c | 8 +- drivers/nvme/target/fabrics-cmd.c | 19 +- drivers/nvme/target/io-cmd-bdev.c | 113 +++++++++++- drivers/nvme/target/io-cmd-file.c | 6 +- drivers/nvme/target/nvmet.h | 39 +++- drivers/nvme/target/rdma.c | 252 ++++++++++++++++++++++++-- include/linux/nvme.h | 2 + include/rdma/rw.h | 1 + 18 files changed, 955 insertions(+), 128 deletions(-) -- 1.8.3.1
WARNING: multiple messages have this Message-ID (diff)
From: Max Gurtovoy <maxg@mellanox.com> To: linux-nvme@lists.infradead.org, sagi@grimberg.me, linux-rdma@vger.kernel.org, kbusch@kernel.org, hch@lst.de, martin.petersen@oracle.com Cc: axboe@kernel.dk, vladimirk@mellanox.com, shlomin@mellanox.com, israelr@mellanox.com, idanb@mellanox.com, maxg@mellanox.com Subject: [PATCH 00/19 V4] nvme-rdma/nvmet-rdma: Add metadata/T10-PI support Date: Mon, 24 Feb 2020 18:45:24 +0200 [thread overview] Message-ID: <20200224164544.219438-1-maxg@mellanox.com> (raw) Hello Sagi, Christoph, Keith, Martin and Co This patchset adds metadata (T10-PI) support for NVMeoF/RDMA host side and target side, using signature verbs API. This set starts with a few preparation commits to the NVMe host core layer. It continues with NVMeoF/RDMA host implementation + few preparation commits to the RDMA/rw API and to NVMe target core layer. The patchset ends with NVMeoF/RDMA target implementation. Configuration: Host: - nvme connect --pi_enable --transport=rdma --traddr=10.0.1.1 --nqn=test-nvme Target: - echo 1 > /config/nvmet/subsystems/${NAME}/attr_pi_enable - echo 1 > /config/nvmet/ports/${PORT_NUM}/param_pi_enable The code was tested using Mellanox's ConnectX-4/ConnectX-5 HCAs. This series applies on top of nvme_5.7 branch cleanly. Changes from v3: - Added Reviewed-by signatures - New RDMA/rw patch (Patch 17/19) - Add mdts setting op for controllers (Patches 14/19, 18/19) - Rename NVME_NS_DIX_SUPPORTED to NVME_NS_MD_HOST_SUPPORTED and NVME_NS_DIF_SUPPORTED to NVME_NS_MD_CTRL_SUPPORTED (Patch 01/19) - Split "nvme: Introduce namespace features flag" patch (patch 02/19) - Rename nvmet_rdma_set_diff_domain to nvmet_rdma_set_sig_domain and nvme_rdma_set_diff_domain to nvme_rdma_set_sig_domain (Patches 08/19, 19/19) - Remove ns parameter from nvme_rdma_set_sig_domain/nvmet_rdma_set_sig_domain functions (patch 08/19, 19/19) - Rebase over nvme-5.7 branch Changes from v2: - Convert the virtual start sector (which passed to bip_set_seed function) to be in integrity interval units (Patch 14/15) - Clarify some commit messages Changes from v1: - Added Reviewed-by signatures - Added namespace features flag (Patch 01/15) - Remove nvme_ns_has_pi function (Patch 01/15) - Added has_pi field to struct nvme_request (Patch 01/15) - Subject change for patch 02/15 - Fix comment for PCI metadata (Patch 03/15) - Rebase over "nvme: Avoid preallocating big SGL for data" patchset - Introduce NVME_INLINE_PROT_SG_CNT flag (Patch 05/15) - Introduce nvme_rdma_sgl structure (Patch 06/15) - Remove first_sgl pointer from struct nvme_rdma_request (Patch 06/15) - Split nvme-rdma patches (Patches 06/15, 07/15) - Rename is_protected to use_pi (Patch 07/15) - Refactor nvme_rdma_get_max_fr_pages function (Patch 07/15) - Added ifdef CONFIG_BLK_DEV_INTEGRITY (Patches 07/15, 09/15, 13/15, 14/15, 15/15) - Added port configfs pi_enable (Patch 14/15) Israel Rukshin (13): nvme: Introduce namespace features flag nvme: Add has_pi field to the nvme_req structure nvme-fabrics: Allow user enabling metadata/T10-PI support nvme: Introduce NVME_INLINE_PROT_SG_CNT nvme-rdma: Introduce nvme_rdma_sgl structure nvmet: Prepare metadata request nvmet: Add metadata characteristics for a namespace nvmet: Rename nvmet_rw_len to nvmet_rw_data_len nvmet: Rename nvmet_check_data_len to nvmet_check_transfer_len nvme: Add Metadata Capabilities enumerations nvmet: Add metadata/T10-PI support nvmet: Add metadata support for block devices nvmet-rdma: Add metadata/T10-PI support Max Gurtovoy (6): nvme: Enforce extended LBA format for fabrics metadata nvme: Introduce max_integrity_segments ctrl attribute nvme-rdma: Add metadata/T10-PI support nvmet: Add mdts setting op for controllers RDMA/rw: Expose maximal page list for a device per 1 MR nvmet-rdma: Implement set_mdts controller op drivers/infiniband/core/rw.c | 14 +- drivers/nvme/host/core.c | 76 +++++--- drivers/nvme/host/fabrics.c | 11 ++ drivers/nvme/host/fabrics.h | 3 + drivers/nvme/host/nvme.h | 9 +- drivers/nvme/host/pci.c | 7 + drivers/nvme/host/rdma.c | 367 +++++++++++++++++++++++++++++++++----- drivers/nvme/target/admin-cmd.c | 41 +++-- drivers/nvme/target/configfs.c | 61 +++++++ drivers/nvme/target/core.c | 54 ++++-- drivers/nvme/target/discovery.c | 8 +- drivers/nvme/target/fabrics-cmd.c | 19 +- drivers/nvme/target/io-cmd-bdev.c | 113 +++++++++++- drivers/nvme/target/io-cmd-file.c | 6 +- drivers/nvme/target/nvmet.h | 39 +++- drivers/nvme/target/rdma.c | 252 ++++++++++++++++++++++++-- include/linux/nvme.h | 2 + include/rdma/rw.h | 1 + 18 files changed, 955 insertions(+), 128 deletions(-) -- 1.8.3.1 _______________________________________________ linux-nvme mailing list linux-nvme@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-nvme
next reply other threads:[~2020-02-24 16:45 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-02-24 16:45 Max Gurtovoy [this message] 2020-02-24 16:45 ` [PATCH 00/19 V4] nvme-rdma/nvmet-rdma: Add metadata/T10-PI support Max Gurtovoy 2020-02-24 16:45 ` [PATCH] nvme-cli/fabrics: Add pi_enable param to connect cmd Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 01/19] nvme: Introduce namespace features flag Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 02/19] nvme: Add has_pi field to the nvme_req structure Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 03/19] nvme: Enforce extended LBA format for fabrics metadata Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 04/19] nvme: Introduce max_integrity_segments ctrl attribute Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 05/19] nvme-fabrics: Allow user enabling metadata/T10-PI support Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 06/19] nvme: Introduce NVME_INLINE_PROT_SG_CNT Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 07/19] nvme-rdma: Introduce nvme_rdma_sgl structure Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 08/19] nvme-rdma: Add metadata/T10-PI support Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 09/19] nvmet: Prepare metadata request Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 10/19] nvmet: Add metadata characteristics for a namespace Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 11/19] nvmet: Rename nvmet_rw_len to nvmet_rw_data_len Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 12/19] nvmet: Rename nvmet_check_data_len to nvmet_check_transfer_len Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 13/19] nvme: Add Metadata Capabilities enumerations Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 14/19] nvmet: Add mdts setting op for controllers Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 15/19] nvmet: Add metadata/T10-PI support Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 16/19] nvmet: Add metadata support for block devices Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 17/19] RDMA/rw: Expose maximal page list for a device per 1 MR Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 18/19] nvmet-rdma: Implement set_mdts controller op Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 16:45 ` [PATCH 19/19] nvmet-rdma: Add metadata/T10-PI support Max Gurtovoy 2020-02-24 16:45 ` Max Gurtovoy 2020-02-24 18:13 ` [PATCH 00/19 V4] nvme-rdma/nvmet-rdma: " James Smart 2020-02-24 18:13 ` 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=20200224164544.219438-1-maxg@mellanox.com \ --to=maxg@mellanox.com \ --cc=axboe@kernel.dk \ --cc=hch@lst.de \ --cc=idanb@mellanox.com \ --cc=israelr@mellanox.com \ --cc=kbusch@kernel.org \ --cc=linux-nvme@lists.infradead.org \ --cc=linux-rdma@vger.kernel.org \ --cc=martin.petersen@oracle.com \ --cc=sagi@grimberg.me \ --cc=shlomin@mellanox.com \ --cc=vladimirk@mellanox.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: 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.