mirror of
https://github.com/SCST-project/scst.git
synced 2026-08-17 12:46:27 +00:00
ib_srpt: Add max_sge_delta kernel module parameter
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5795 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -38,6 +38,15 @@ Building and installing the SRP target driver is possible as follows:
|
||||
fi
|
||||
|
||||
The ib_srpt kernel module supports the following parameters:
|
||||
|
||||
* max_sge_delta (unsigned): Number to subtract from max_sge. Some but not
|
||||
all HCA's allow to use up to max_sge S/G-list elements in RDMA
|
||||
communication. The default value of this parameter is 3 and works with all
|
||||
HCA's. If you know that the HCA's that are used by the ib_srpt driver allow
|
||||
to use S/G-lists that are longer than max_sge - 3 then you can decrease this
|
||||
parameter. Note: setting this parameter too low will cause SRP every login
|
||||
to fail and will cause a message similar to the following to be logged on
|
||||
the target system: "ib_srpt: RDMA t ... for idx ... failed with status 12".
|
||||
* one_target_per_port (boolean) and
|
||||
* use_node_guid_in_target_name (boolean)
|
||||
ib_srpt can operate in one of the following three modes:
|
||||
|
||||
+5
-13
@@ -171,6 +171,10 @@ MODULE_PARM_DESC(srpt_service_guid,
|
||||
"Using this value for ioc_guid, id_ext, and cm_listen_id"
|
||||
" instead of using the node_guid of the first HCA.");
|
||||
|
||||
static unsigned max_sge_delta = 3;
|
||||
module_param(max_sge_delta, uint, 0444);
|
||||
MODULE_PARM_DESC(max_sge_delta, "Number to subtract from max_sge.");
|
||||
|
||||
/*
|
||||
* Note: changing any of the two constants below into SCST_CONTEXT_DIRECT is
|
||||
* dangerous because it might cause IB completions to be processed too late
|
||||
@@ -2151,19 +2155,7 @@ static int srpt_create_ch_ib(struct srpt_rdma_ch *ch)
|
||||
qp_init->sq_sig_type = IB_SIGNAL_REQ_WR;
|
||||
qp_init->qp_type = IB_QPT_RC;
|
||||
qp_init->cap.max_send_wr = srpt_sq_size;
|
||||
/*
|
||||
* A quote from the OFED 1.5.3.1 release notes
|
||||
* (docs/release_notes/mthca_release_notes.txt), section "Known Issues":
|
||||
* In mem-free devices, RC QPs can be created with a maximum of
|
||||
* (max_sge - 1) entries only; UD QPs can be created with a maximum of
|
||||
* (max_sge - 3) entries.
|
||||
* A quote from the OFED 1.2.5 release notes
|
||||
* (docs/mthca_release_notes.txt), section "Known Issues":
|
||||
* In mem-free devices, RC QPs can be created with a maximum of
|
||||
* (max_sge - 3) entries only.
|
||||
*/
|
||||
ch->max_sge = sdev->dev_attr.max_sge - 3;
|
||||
WARN_ON(ch->max_sge < 1);
|
||||
ch->max_sge = max_t(int, 1, sdev->dev_attr.max_sge - max_sge_delta);
|
||||
qp_init->cap.max_send_sge = ch->max_sge;
|
||||
|
||||
if (ch->using_rdma_cm) {
|
||||
|
||||
Reference in New Issue
Block a user