mbox series

[for-next,00/17] RDMA/rxe: Enable scatter/gather support for skbs

Message ID 20221027185510.33808-1-rpearsonhpe@gmail.com (mailing list archive)
Headers show
Series RDMA/rxe: Enable scatter/gather support for skbs | expand

Message

Bob Pearson Oct. 27, 2022, 6:54 p.m. UTC
This patch series implements support for network devices that can
handle or produce fragmented packets. This has the performance
advantage of reducing the number of copies of payloads for large
packets.

On the send side packets packets are created with the network and
roce headers in the linear portion of the skb and the payload in
skb fragments. The pad and icrc are appended in an additional fragment
pointing at data stored in free space in the tail of the linear
buffer.

On the receive side any fragmented skb is supported.

This patch series is based on the current wip/jgg-for-next branch.

Bob Pearson (17):
  RDMA/rxe: Isolate code to fill request roce headers
  RDMA/rxe: Isolate request payload code in a subroutine
  RDMA/rxe: Isolate code to build request packet
  RDMA/rxe: Add sg fragment ops
  RDMA/rxe: Add rxe_add_frag() to rxe_mr.c
  RDMA/rxe: Add routine to compute the number of frags
  RDMA/rxe: Extend rxe_mr_copy to support skb frags
  RDMA/rxe: Add routine to compute number of frags for dma
  RDMA/rxe: Extend copy_data to support skb frags
  RDMA/rxe: Replace rxe by qp as a parameter
  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       |   3 +
 drivers/infiniband/sw/rxe/rxe.h       |   3 +
 drivers/infiniband/sw/rxe/rxe_comp.c  |  47 ++-
 drivers/infiniband/sw/rxe/rxe_icrc.c  |  65 +++-
 drivers/infiniband/sw/rxe/rxe_loc.h   |  30 +-
 drivers/infiniband/sw/rxe/rxe_mr.c    | 419 +++++++++++++++++++-------
 drivers/infiniband/sw/rxe/rxe_net.c   | 137 +++++++--
 drivers/infiniband/sw/rxe/rxe_recv.c  |   1 +
 drivers/infiniband/sw/rxe/rxe_req.c   | 286 +++++++++++-------
 drivers/infiniband/sw/rxe/rxe_resp.c  | 209 ++++++++-----
 drivers/infiniband/sw/rxe/rxe_verbs.h |  15 +-
 11 files changed, 865 insertions(+), 350 deletions(-)


base-commit: c9eeabac5e8d27a3f40280908e089058bab39edb