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>
This commit is contained in:

committed by
Jason Gunthorpe

parent
b90575ce7b
commit
33023fb85a
@@ -136,7 +136,7 @@ isert_create_qp(struct isert_conn *isert_conn,
|
||||
attr.cap.max_send_wr = ISERT_QP_MAX_REQ_DTOS + 1;
|
||||
attr.cap.max_recv_wr = ISERT_QP_MAX_RECV_DTOS + 1;
|
||||
attr.cap.max_rdma_ctxs = ISCSI_DEF_XMIT_CMDS_MAX;
|
||||
attr.cap.max_send_sge = device->ib_device->attrs.max_sge;
|
||||
attr.cap.max_send_sge = device->ib_device->attrs.max_send_sge;
|
||||
attr.cap.max_recv_sge = 1;
|
||||
attr.sq_sig_type = IB_SIGNAL_REQ_WR;
|
||||
attr.qp_type = IB_QPT_RC;
|
||||
@@ -299,7 +299,8 @@ isert_create_device_ib_res(struct isert_device *device)
|
||||
struct ib_device *ib_dev = device->ib_device;
|
||||
int ret;
|
||||
|
||||
isert_dbg("devattr->max_sge: %d\n", ib_dev->attrs.max_sge);
|
||||
isert_dbg("devattr->max_send_sge: %d devattr->max_recv_sge %d\n",
|
||||
ib_dev->attrs.max_send_sge, ib_dev->attrs.max_recv_sge);
|
||||
isert_dbg("devattr->max_sge_rd: %d\n", ib_dev->attrs.max_sge_rd);
|
||||
|
||||
ret = isert_alloc_comps(device);
|
||||
|
Reference in New Issue
Block a user