2017-11-22 16:38 GMT-08:00 Long Li <longli@xxxxxxxxxxxxxxxxxxxxxx>: > From: Long Li <longli@xxxxxxxxxxxxx> > > Starting with SMB2 dialect 3.0, Microsoft introduced SMB Direct transport > protocol for transferring upper layer (SMB2) payload over RDMA via Infiniband, > RoCE or iWARP. The prococol is published in [MS-SMBD] > (https://msdn.microsoft.com/en-us/library/hh536346.aspx). > > Change log: > v2: > Implemented RDMA read/write via memory registration. > Re-arranged patches for review [Christoph Hellwig <hch@xxxxxxxxxxxxx>]. > Restructured the code and fixed bugs on protocol timer and keepalive > [Tom Talpey <ttalpey@xxxxxxxxxxxxx>]. > > v3: > Improved performance by introducing an additional queue for handling > empty packets and reducing lock contention on IRQ path. > Added light weight profiling by reading TSC. > Improved the code for checking SMB versions when mounting with rdma option > [Leon Romanovsky <leon@xxxxxxxxxx>]. > Moved to use pages instead of buffers for passing I/O for RDMA > [Christoph Hellwig <hch@xxxxxxxxxxxxx>]. > Removed redundant code and refactored I/O code paths > [Christoph Hellwig <hch@xxxxxxxxxxxxx>, Tom Talpey <ttalpey@xxxxxxxxxxxxx>]. > > v4: > Fixed connectivity issues with iWAPR devices. > Exported configurable protocol parameters to /proc/fs/cifs > [Steve French <sfrench@xxxxxxxxx>] > Re-arranged patches for review > [Pavel Shilovsky <piastryyy@xxxxxxxxx>]. > > v5: > Fixed compiling errors on ia64, i386 and when INFINIBAND is not > configured. [kbuild test robot] > Profiling is removed and will be introduced in a seperate patch. > > v6: > Report internal code error via WARN_ON(). Change description in > Kconfig [Pavel Shilovsky <piastryyy@xxxxxxxxx>]. > > v7: > Removed the use of #ifdef CONFIG_CIFS_SMB_DIRECT in upper layer > code calling transport I/O. [Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>, > Tom Talpey <ttalpey@xxxxxxxxxxxxx>] > > v8: > Fixed comment typos and removed unused code > [Ronnie Sahlberg <lsahlber@xxxxxxxxxx>] > Removed the first 7 patches in v7, which have been merged. > Restructed the code to move relevant function definitions to later patches. > [Pavel Shilovsky <piastryyy@xxxxxxxxx>] > Added a patch to disable signing when RDMA is in use. Signing will be > enabled after it is properly implemented in SMB Direct code paths. > Fixed an issue on passing the incorrect offset to smbd_buffer_descriptor_v1 > when RDMA read is used for SMB write. This was caused by recent CIFS > patches to remove packet length from SMB2 packet header. > > Long Li (16): > CIFS: SMBD: Upper layer connects to SMBDirect session > CIFS: SMBD: Implement function to reconnect to a SMB Direct transport > CIFS: SMBD: Upper layer reconnects to SMB Direct session > CIFS: SMBD: Implement function to destroy a SMB Direct connection > CIFS: SMBD: Upper layer destroys SMB Direct session on shutdown or > umount > CIFS: SMBD: Set SMB Direct maximum read or write size for I/O > CIFS: SMBD: Implement function to receive data via RDMA receive > CIFS: SMBD: Upper layer receives data via RDMA receive > CIFS: SMBD: Implement function to send data via RDMA send > CIFS: SMBD: Upper layer sends data via RDMA send > CIFS: SMBD: Implement RDMA memory registration > CIFS: SMBD: Upper layer performs SMB write via RDMA read through > memory registration > CIFS: SMBD: Read correct returned data length for RDMA write (SMB > read) I/O > CIFS: SMBD: Upper layer performs SMB read via RDMA write through > memory registration > CIFS: SMBD: Add SMB Direct debug counters > CIFS: SMBD: Disable signing on SMB direct transport > > fs/cifs/cifs_debug.c | 66 ++++ > fs/cifs/cifsglob.h | 16 +- > fs/cifs/cifssmb.c | 15 +- > fs/cifs/connect.c | 46 ++- > fs/cifs/file.c | 17 +- > fs/cifs/smb1ops.c | 4 +- > fs/cifs/smb2ops.c | 24 +- > fs/cifs/smb2pdu.c | 117 ++++++- > fs/cifs/smbdirect.c | 947 +++++++++++++++++++++++++++++++++++++++++++++++++++ > fs/cifs/smbdirect.h | 72 ++++ > fs/cifs/transport.c | 8 +- > 11 files changed, 1308 insertions(+), 24 deletions(-) > > -- > 2.7.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-cifs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html Reviewed-by: Pavel Shilovsky <pshilov@xxxxxxxxxxxxx> -- Best regards, Pavel Shilovsky -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html