From: Max Gurtovoy <maxg@mellanox.com> To: linux-nvme@lists.infradead.org, kbusch@kernel.org, hch@lst.de, sagi@grimberg.me, martin.petersen@oracle.com Cc: axboe@kernel.dk, vladimirk@mellanox.com, shlomin@mellanox.com, israelr@mellanox.com, idanb@mellanox.com, oren@mellanox.com, maxg@mellanox.com Subject: [PATCH 00/16 V2] nvme-rdma/nvmet-rdma: Add metadata/T10-PI support Date: Mon, 2 Dec 2019 16:47:55 +0200 Message-ID: <20191202144812.147686-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 + BIP flag patch (block) + few preparation commits to the 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.5 branch cleanly. Changes from v1: - Added Reviewed-by signatures - Added namespace features flag (Patch 01/16) - Remove nvme_ns_has_pi function (Patch 01/16) - Added has_pi field to struct nvme_request (Patch 01/16) - Subject change for patch 02/16 - Fix comment for PCI metadata (Patch 03/16) - Rebase over "nvme: Avoid preallocating big SGL for data" patchset - Introduce NVME_INLINE_PROT_SG_CNT flag (Patch 05/16) - Introduce nvme_rdma_sgl structure (Patch 06/16) - Remove first_sgl pointer from struct nvme_rdma_request (Patch 06/16) - Split nvme-rdma patches (Patches 06/16, 07/16) - Rename is_protected to use_pi (Patch 07/16) - Refactor nvme_rdma_get_max_fr_pages function (Patch 07/16) - Added ifdef CONFIG_BLK_DEV_INTEGRITY (Patches 07/16, 10/16, 14/16, 15/16, 16/16) - Use existing BIP_MAPPED_INTEGRITY flag (Patches 08/16, 15/16) - Added port configfs pi_enable (Patch 14/16) Israel Rukshin (13): nvme: Introduce namespace features flag nvme-fabrics: Allow user enabling metadata/T10-PI support nvme: Introduce NVME_INLINE_PROT_SG_CNT nvme-rdma: Introduce nvme_rdma_sgl structure block: Add a BIP_MAPPED_INTEGRITY check to complete_fn 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 (3): nvme: Enforce extended LBA format for fabrics metadata nvme: Introduce max_integrity_segments ctrl attribute nvme-rdma: Add metadata/T10-PI support block/t10-pi.c | 4 + drivers/nvme/host/core.c | 75 +++++--- 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 | 368 +++++++++++++++++++++++++++++++++----- drivers/nvme/target/admin-cmd.c | 37 ++-- 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 | 115 +++++++++++- drivers/nvme/target/io-cmd-file.c | 8 +- drivers/nvme/target/nvmet.h | 40 ++++- drivers/nvme/target/rdma.c | 235 ++++++++++++++++++++++-- include/linux/nvme.h | 2 + 17 files changed, 929 insertions(+), 127 deletions(-) -- 2.16.3 _______________________________________________ linux-nvme mailing list linux-nvme@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-nvme
next reply index Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-02 14:47 Max Gurtovoy [this message] 2019-12-02 14:47 ` [PATCH] nvme-cli/fabrics: Add pi_enable param to connect cmd Max Gurtovoy 2019-12-02 14:47 ` [PATCH 01/16] nvme: Introduce namespace features flag Max Gurtovoy 2019-12-04 8:41 ` Christoph Hellwig 2019-12-02 14:47 ` [PATCH 02/16] nvme: Enforce extended LBA format for fabrics metadata Max Gurtovoy 2019-12-02 14:47 ` [PATCH 03/16] nvme: Introduce max_integrity_segments ctrl attribute Max Gurtovoy 2019-12-02 14:48 ` [PATCH 04/16] nvme-fabrics: Allow user enabling metadata/T10-PI support Max Gurtovoy 2019-12-02 14:48 ` [PATCH 05/16] nvme: Introduce NVME_INLINE_PROT_SG_CNT Max Gurtovoy 2019-12-02 14:48 ` [PATCH 06/16] nvme-rdma: Introduce nvme_rdma_sgl structure Max Gurtovoy 2019-12-02 14:48 ` [PATCH 07/16] nvme-rdma: Add metadata/T10-PI support Max Gurtovoy 2020-01-22 21:57 ` James Smart 2020-01-23 9:59 ` Max Gurtovoy 2020-01-23 15:34 ` James Smart 2020-01-23 18:52 ` James Smart 2019-12-02 14:48 ` [PATCH 08/16] block: Add a BIP_MAPPED_INTEGRITY check to complete_fn Max Gurtovoy 2019-12-02 14:48 ` [PATCH 09/16] nvmet: Prepare metadata request Max Gurtovoy 2019-12-02 14:48 ` [PATCH 10/16] nvmet: Add metadata characteristics for a namespace Max Gurtovoy 2019-12-02 14:48 ` [PATCH 11/16] nvmet: Rename nvmet_rw_len to nvmet_rw_data_len Max Gurtovoy 2019-12-02 14:48 ` [PATCH 12/16] nvmet: Rename nvmet_check_data_len to nvmet_check_transfer_len Max Gurtovoy 2019-12-02 14:48 ` [PATCH 13/16] nvme: Add Metadata Capabilities enumerations Max Gurtovoy 2019-12-02 14:48 ` [PATCH 14/16] nvmet: Add metadata/T10-PI support Max Gurtovoy 2019-12-02 14:48 ` [PATCH 15/16] nvmet: Add metadata support for block devices Max Gurtovoy 2019-12-02 14:48 ` [PATCH 16/16] nvmet-rdma: Add metadata/T10-PI support Max Gurtovoy
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=20191202144812.147686-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=martin.petersen@oracle.com \ --cc=oren@mellanox.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: link
Linux-NVME Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-nvme/0 linux-nvme/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-nvme linux-nvme/ https://lore.kernel.org/linux-nvme \ linux-nvme@lists.infradead.org public-inbox-index linux-nvme Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.infradead.lists.linux-nvme AGPL code for this site: git clone https://public-inbox.org/public-inbox.git