IB/core: add max_send_sge and max_recv_sge attributes
This patch replaces the ib_device_attr.max_sge with max_send_sge and max_recv_sge. It allows ulps to take advantage of devices that have very different send and recv sge depths. For example cxgb4 has a max_recv_sge of 4, yet a max_send_sge of 16. Splitting out these attributes allows much more efficient use of the SQ for cxgb4 with ulps that use the RDMA_RW API. Consider a large RDMA WRITE that has 16 scattergather entries. With max_sge of 4, the ulp would send 4 WRITE WRs, but with max_sge of 16, it can be done with 1 WRITE WR. Acked-by:Sagi Grimberg <sagi@grimberg.me> Acked-by:
Christoph Hellwig <hch@lst.de> Acked-by:
Selvin Xavier <selvin.xavier@broadcom.com> Acked-by:
Shiraz Saleem <shiraz.saleem@intel.com> Acked-by:
Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by:
Steve Wise <swise@opengridcomputing.com> Signed-off-by:
Jason Gunthorpe <jgg@mellanox.com>
Showing
- drivers/infiniband/core/uverbs_cmd.c 1 addition, 1 deletiondrivers/infiniband/core/uverbs_cmd.c
- drivers/infiniband/hw/bnxt_re/ib_verbs.c 2 additions, 1 deletiondrivers/infiniband/hw/bnxt_re/ib_verbs.c
- drivers/infiniband/hw/cxgb3/iwch_provider.c 2 additions, 1 deletiondrivers/infiniband/hw/cxgb3/iwch_provider.c
- drivers/infiniband/hw/cxgb4/provider.c 2 additions, 1 deletiondrivers/infiniband/hw/cxgb4/provider.c
- drivers/infiniband/hw/hfi1/verbs.c 2 additions, 1 deletiondrivers/infiniband/hw/hfi1/verbs.c
- drivers/infiniband/hw/hns/hns_roce_main.c 2 additions, 1 deletiondrivers/infiniband/hw/hns/hns_roce_main.c
- drivers/infiniband/hw/i40iw/i40iw_verbs.c 2 additions, 1 deletiondrivers/infiniband/hw/i40iw/i40iw_verbs.c
- drivers/infiniband/hw/mlx4/main.c 2 additions, 2 deletionsdrivers/infiniband/hw/mlx4/main.c
- drivers/infiniband/hw/mlx5/main.c 2 additions, 1 deletiondrivers/infiniband/hw/mlx5/main.c
- drivers/infiniband/hw/mthca/mthca_provider.c 3 additions, 2 deletionsdrivers/infiniband/hw/mthca/mthca_provider.c
- drivers/infiniband/hw/nes/nes_verbs.c 2 additions, 1 deletiondrivers/infiniband/hw/nes/nes_verbs.c
- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c 2 additions, 1 deletiondrivers/infiniband/hw/ocrdma/ocrdma_verbs.c
- drivers/infiniband/hw/qedr/verbs.c 2 additions, 1 deletiondrivers/infiniband/hw/qedr/verbs.c
- drivers/infiniband/hw/qib/qib_verbs.c 2 additions, 1 deletiondrivers/infiniband/hw/qib/qib_verbs.c
- drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c 2 additions, 1 deletiondrivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
- drivers/infiniband/sw/rdmavt/qp.c 3 additions, 2 deletionsdrivers/infiniband/sw/rdmavt/qp.c
- drivers/infiniband/sw/rxe/rxe.c 2 additions, 1 deletiondrivers/infiniband/sw/rxe/rxe.c
- drivers/infiniband/sw/rxe/rxe_qp.c 4 additions, 4 deletionsdrivers/infiniband/sw/rxe/rxe_qp.c
- drivers/infiniband/ulp/ipoib/ipoib_cm.c 2 additions, 2 deletionsdrivers/infiniband/ulp/ipoib/ipoib_cm.c
- drivers/infiniband/ulp/ipoib/ipoib_verbs.c 1 addition, 1 deletiondrivers/infiniband/ulp/ipoib/ipoib_verbs.c
Loading
Please register or sign in to comment