mbox series

[for-next,v3,00/10] RDMA/rxe: Implement support for nonlinear packets

Message ID 20230727200128.65947-1-rpearsonhpe@gmail.com (mailing list archive)
Headers show
Series RDMA/rxe: Implement support for nonlinear packets | expand

Message

Bob Pearson July 27, 2023, 8:01 p.m. UTC
This patch set is a revised version of an older set which implements 
support for nonlinear or fragmented packets. This avoids extra copies
in both the send and receive paths and gives significant performance
improvement for large messages such as are used in storage applications.

This patch set has been heavily tested at large system scale and
demonstrated a 2X improvement in file system read performance on
a 200 Gb/sec network.

The patch set is rebased to the current for-next branch with the
following previous patch sets applied:
	RDMA/rxe: Fix incomplete state save in rxe_requester
	RDMA/rxe: Misc fixes and cleanups
	Enable rcu locking of verbs objects
	RDMA/rxe: Misc cleanups

Bob Pearson (10):
  RDMA/rxe: Add sg fragment ops
  RDMA/rxe: Extend rxe_mr_copy to support skb frags
  RDMA/rxe: Extend copy_data to support skb frags
  RDMA/rxe: Extend rxe_init_packet() to support frags
  RDMA/rxe: Extend rxe_icrc.c to support frags
  RDMA/rxe: Extend rxe_init_req_packet() for frags
  RDMA/rxe: Extend response packets for frags
  RDMA/rxe: Extend send/write_data_in() for frags
  RDMA/rxe: Extend do_read() in rxe_comp.c for frags
  RDMA/rxe: Enable sg code in rxe

 drivers/infiniband/sw/rxe/rxe.c        |   5 +
 drivers/infiniband/sw/rxe/rxe.h        |   3 +
 drivers/infiniband/sw/rxe/rxe_comp.c   |  46 +++-
 drivers/infiniband/sw/rxe/rxe_icrc.c   |  65 ++++-
 drivers/infiniband/sw/rxe/rxe_loc.h    |  27 +-
 drivers/infiniband/sw/rxe/rxe_mr.c     | 348 +++++++++++++++++++------
 drivers/infiniband/sw/rxe/rxe_net.c    | 109 +++++++-
 drivers/infiniband/sw/rxe/rxe_opcode.c |   2 +
 drivers/infiniband/sw/rxe/rxe_recv.c   |   1 +
 drivers/infiniband/sw/rxe/rxe_req.c    |  88 ++++++-
 drivers/infiniband/sw/rxe/rxe_resp.c   | 172 +++++++-----
 drivers/infiniband/sw/rxe/rxe_verbs.h  |   8 +-
 12 files changed, 672 insertions(+), 202 deletions(-)


base-commit: 693e1cdebb50d2aa67406411ca6d5be195d62771
prerequisite-patch-id: c3994e7a93e37e0ce4f50e0c768f3c1a0059a02f
prerequisite-patch-id: 48e13f6ccb560fdeacbd20aaf6696782c23d1190
prerequisite-patch-id: da75fb8eaa863df840e7b392b5048fcc72b0bef3
prerequisite-patch-id: d0877649e2edaf00585a0a6a80391fe0d7bbc13b
prerequisite-patch-id: 6495b1d1f664f8ab91ed9ef9d2ca5b3b27d7df35
prerequisite-patch-id: a6367b8fedd0d8999139c8b857ebbd3ce5c72245
prerequisite-patch-id: 78c95e90a5e49b15b7af8ef57130739c143e88b5
prerequisite-patch-id: 7c65a01066c0418de6897bc8b5f44d078d21b0ec
prerequisite-patch-id: 8ab09f93c23c7875e56c597e69236c30464723b6
prerequisite-patch-id: ca9d84b34873b49048e42fb4c13a2a097c215c46
prerequisite-patch-id: 0f6a587501c8246e1185dfd0cbf5e2044c5f9b13
prerequisite-patch-id: 5246df93137429916d76e75b9a13a4ad5ceb0bad
prerequisite-patch-id: 41b0e4150794dd914d9fcb4cd106fe4cf4227611
prerequisite-patch-id: 02b08ec037bc35b9c7771640c89c66504cdf38a6
prerequisite-patch-id: dfccc06c16454d7fe8e6fcba064d4e471d314666
prerequisite-patch-id: 7459a6e5cdd46efd53ba27f9b3e9028af6e0863b
prerequisite-patch-id: 36d49f9303f5cb276a5601c1ab568eea6eca7d3a
prerequisite-patch-id: 6359a681e40832694f81ca003c10e5327996bf7d
prerequisite-patch-id: 558175db657f374dbd3e0a57ac4c5fb77a56b6c6
prerequisite-patch-id: d6b811de06c8900be5840dd29715161d26db66cf

Comments

Zhu Yanjun July 28, 2023, 12:40 a.m. UTC | #1
在 2023/7/28 4:01, Bob Pearson 写道:
> This patch set is a revised version of an older set which implements
> support for nonlinear or fragmented packets. This avoids extra copies
> in both the send and receive paths and gives significant performance
> improvement for large messages such as are used in storage applications.
> 
> This patch set has been heavily tested at large system scale and
> demonstrated a 2X improvement in file system read performance on
> a 200 Gb/sec network.
> 
> The patch set is rebased to the current for-next branch with the
> following previous patch sets applied:
> 	RDMA/rxe: Fix incomplete state save in rxe_requester
> 	RDMA/rxe: Misc fixes and cleanups
> 	Enable rcu locking of verbs objects
> 	RDMA/rxe: Misc cleanups
> 
> Bob Pearson (10):
>    RDMA/rxe: Add sg fragment ops
>    RDMA/rxe: Extend rxe_mr_copy to support skb frags
>    RDMA/rxe: Extend copy_data to support skb frags
>    RDMA/rxe: Extend rxe_init_packet() to support frags
>    RDMA/rxe: Extend rxe_icrc.c to support frags
>    RDMA/rxe: Extend rxe_init_req_packet() for frags
>    RDMA/rxe: Extend response packets for frags
>    RDMA/rxe: Extend send/write_data_in() for frags
>    RDMA/rxe: Extend do_read() in rxe_comp.c for frags
>    RDMA/rxe: Enable sg code in rxe
> 
>   drivers/infiniband/sw/rxe/rxe.c        |   5 +
>   drivers/infiniband/sw/rxe/rxe.h        |   3 +
>   drivers/infiniband/sw/rxe/rxe_comp.c   |  46 +++-
>   drivers/infiniband/sw/rxe/rxe_icrc.c   |  65 ++++-
>   drivers/infiniband/sw/rxe/rxe_loc.h    |  27 +-
>   drivers/infiniband/sw/rxe/rxe_mr.c     | 348 +++++++++++++++++++------
>   drivers/infiniband/sw/rxe/rxe_net.c    | 109 +++++++-
>   drivers/infiniband/sw/rxe/rxe_opcode.c |   2 +
>   drivers/infiniband/sw/rxe/rxe_recv.c   |   1 +
>   drivers/infiniband/sw/rxe/rxe_req.c    |  88 ++++++-
>   drivers/infiniband/sw/rxe/rxe_resp.c   | 172 +++++++-----
>   drivers/infiniband/sw/rxe/rxe_verbs.h  |   8 +-
>   12 files changed, 672 insertions(+), 202 deletions(-)
> 
> 

What are the following? This is the new format in linux kernel community?

Zhu Yanjun

> base-commit: 693e1cdebb50d2aa67406411ca6d5be195d62771
> prerequisite-patch-id: c3994e7a93e37e0ce4f50e0c768f3c1a0059a02f
> prerequisite-patch-id: 48e13f6ccb560fdeacbd20aaf6696782c23d1190
> prerequisite-patch-id: da75fb8eaa863df840e7b392b5048fcc72b0bef3
> prerequisite-patch-id: d0877649e2edaf00585a0a6a80391fe0d7bbc13b
> prerequisite-patch-id: 6495b1d1f664f8ab91ed9ef9d2ca5b3b27d7df35
> prerequisite-patch-id: a6367b8fedd0d8999139c8b857ebbd3ce5c72245
> prerequisite-patch-id: 78c95e90a5e49b15b7af8ef57130739c143e88b5
> prerequisite-patch-id: 7c65a01066c0418de6897bc8b5f44d078d21b0ec
> prerequisite-patch-id: 8ab09f93c23c7875e56c597e69236c30464723b6
> prerequisite-patch-id: ca9d84b34873b49048e42fb4c13a2a097c215c46
> prerequisite-patch-id: 0f6a587501c8246e1185dfd0cbf5e2044c5f9b13
> prerequisite-patch-id: 5246df93137429916d76e75b9a13a4ad5ceb0bad
> prerequisite-patch-id: 41b0e4150794dd914d9fcb4cd106fe4cf4227611
> prerequisite-patch-id: 02b08ec037bc35b9c7771640c89c66504cdf38a6
> prerequisite-patch-id: dfccc06c16454d7fe8e6fcba064d4e471d314666
> prerequisite-patch-id: 7459a6e5cdd46efd53ba27f9b3e9028af6e0863b
> prerequisite-patch-id: 36d49f9303f5cb276a5601c1ab568eea6eca7d3a
> prerequisite-patch-id: 6359a681e40832694f81ca003c10e5327996bf7d
> prerequisite-patch-id: 558175db657f374dbd3e0a57ac4c5fb77a56b6c6
> prerequisite-patch-id: d6b811de06c8900be5840dd29715161d26db66cf
Bob Pearson July 28, 2023, 1:54 a.m. UTC | #2
On 7/27/23 19:40, Zhu Yanjun wrote:
> 在 2023/7/28 4:01, Bob Pearson 写道:
>> This patch set is a revised version of an older set which implements
>> support for nonlinear or fragmented packets. This avoids extra copies
>> in both the send and receive paths and gives significant performance
>> improvement for large messages such as are used in storage applications.
>>
>> This patch set has been heavily tested at large system scale and
>> demonstrated a 2X improvement in file system read performance on
>> a 200 Gb/sec network.
>>
>> The patch set is rebased to the current for-next branch with the
>> following previous patch sets applied:
>>     RDMA/rxe: Fix incomplete state save in rxe_requester
>>     RDMA/rxe: Misc fixes and cleanups
>>     Enable rcu locking of verbs objects
>>     RDMA/rxe: Misc cleanups
>>
>> Bob Pearson (10):
>>    RDMA/rxe: Add sg fragment ops
>>    RDMA/rxe: Extend rxe_mr_copy to support skb frags
>>    RDMA/rxe: Extend copy_data to support skb frags
>>    RDMA/rxe: Extend rxe_init_packet() to support frags
>>    RDMA/rxe: Extend rxe_icrc.c to support frags
>>    RDMA/rxe: Extend rxe_init_req_packet() for frags
>>    RDMA/rxe: Extend response packets for frags
>>    RDMA/rxe: Extend send/write_data_in() for frags
>>    RDMA/rxe: Extend do_read() in rxe_comp.c for frags
>>    RDMA/rxe: Enable sg code in rxe
>>
>>   drivers/infiniband/sw/rxe/rxe.c        |   5 +
>>   drivers/infiniband/sw/rxe/rxe.h        |   3 +
>>   drivers/infiniband/sw/rxe/rxe_comp.c   |  46 +++-
>>   drivers/infiniband/sw/rxe/rxe_icrc.c   |  65 ++++-
>>   drivers/infiniband/sw/rxe/rxe_loc.h    |  27 +-
>>   drivers/infiniband/sw/rxe/rxe_mr.c     | 348 +++++++++++++++++++------
>>   drivers/infiniband/sw/rxe/rxe_net.c    | 109 +++++++-
>>   drivers/infiniband/sw/rxe/rxe_opcode.c |   2 +
>>   drivers/infiniband/sw/rxe/rxe_recv.c   |   1 +
>>   drivers/infiniband/sw/rxe/rxe_req.c    |  88 ++++++-
>>   drivers/infiniband/sw/rxe/rxe_resp.c   | 172 +++++++-----
>>   drivers/infiniband/sw/rxe/rxe_verbs.h  |   8 +-
>>   12 files changed, 672 insertions(+), 202 deletions(-)
>>
>>
> 
> What are the following? This is the new format in linux kernel community?
If you type --base d6b811de06c8900be after git format-patch it documents what the patch
was applied to. I have multiple patch sets that have to be applied in order.
Three of them have already been submitted but are not upstream yet. The fourth
one was submitted just before this set.

Bob
> 
> Zhu Yanjun
> 
>> base-commit: 693e1cdebb50d2aa67406411ca6d5be195d62771
>> prerequisite-patch-id: c3994e7a93e37e0ce4f50e0c768f3c1a0059a02f
>> prerequisite-patch-id: 48e13f6ccb560fdeacbd20aaf6696782c23d1190
>> prerequisite-patch-id: da75fb8eaa863df840e7b392b5048fcc72b0bef3
>> prerequisite-patch-id: d0877649e2edaf00585a0a6a80391fe0d7bbc13b
>> prerequisite-patch-id: 6495b1d1f664f8ab91ed9ef9d2ca5b3b27d7df35
>> prerequisite-patch-id: a6367b8fedd0d8999139c8b857ebbd3ce5c72245
>> prerequisite-patch-id: 78c95e90a5e49b15b7af8ef57130739c143e88b5
>> prerequisite-patch-id: 7c65a01066c0418de6897bc8b5f44d078d21b0ec
>> prerequisite-patch-id: 8ab09f93c23c7875e56c597e69236c30464723b6
>> prerequisite-patch-id: ca9d84b34873b49048e42fb4c13a2a097c215c46
>> prerequisite-patch-id: 0f6a587501c8246e1185dfd0cbf5e2044c5f9b13
>> prerequisite-patch-id: 5246df93137429916d76e75b9a13a4ad5ceb0bad
>> prerequisite-patch-id: 41b0e4150794dd914d9fcb4cd106fe4cf4227611
>> prerequisite-patch-id: 02b08ec037bc35b9c7771640c89c66504cdf38a6
>> prerequisite-patch-id: dfccc06c16454d7fe8e6fcba064d4e471d314666
>> prerequisite-patch-id: 7459a6e5cdd46efd53ba27f9b3e9028af6e0863b
>> prerequisite-patch-id: 36d49f9303f5cb276a5601c1ab568eea6eca7d3a
>> prerequisite-patch-id: 6359a681e40832694f81ca003c10e5327996bf7d
>> prerequisite-patch-id: 558175db657f374dbd3e0a57ac4c5fb77a56b6c6
>> prerequisite-patch-id: d6b811de06c8900be5840dd29715161d26db66cf
>
Jason Gunthorpe Aug. 15, 2023, 7:08 p.m. UTC | #3
On Thu, Jul 27, 2023 at 03:01:19PM -0500, Bob Pearson wrote:
> This patch set is a revised version of an older set which implements 
> support for nonlinear or fragmented packets. This avoids extra copies
> in both the send and receive paths and gives significant performance
> improvement for large messages such as are used in storage applications.
> 
> This patch set has been heavily tested at large system scale and
> demonstrated a 2X improvement in file system read performance on
> a 200 Gb/sec network.
> 
> The patch set is rebased to the current for-next branch with the
> following previous patch sets applied:
> 	RDMA/rxe: Fix incomplete state save in rxe_requester
> 	RDMA/rxe: Misc fixes and cleanups
> 	Enable rcu locking of verbs objects
> 	RDMA/rxe: Misc cleanups
> 
> Bob Pearson (10):
>   RDMA/rxe: Add sg fragment ops
>   RDMA/rxe: Extend rxe_mr_copy to support skb frags
>   RDMA/rxe: Extend copy_data to support skb frags
>   RDMA/rxe: Extend rxe_init_packet() to support frags
>   RDMA/rxe: Extend rxe_icrc.c to support frags
>   RDMA/rxe: Extend rxe_init_req_packet() for frags
>   RDMA/rxe: Extend response packets for frags
>   RDMA/rxe: Extend send/write_data_in() for frags
>   RDMA/rxe: Extend do_read() in rxe_comp.c for frags
>   RDMA/rxe: Enable sg code in rxe

This does not apply to the tree so it will have to be rebased and
resent, it looked OK other than the module option question

Jason