[stgt] [PATCH] ISCSI: Honour MaxRecvDataSegmentLength for NORMAL sessions

Ronnie Sahlberg ronniesahlberg at gmail.com
Sat Aug 18 01:03:54 CEST 2012

Fix a bug in iscsid.c with regards to MaxRecvDataSegmentLength.
The parsing of this login key only updated the settings for how large PDUs we can send for DISCOVERY sessions.
What we want here is to have the MaxRecvDataSegmentLength to be parsed and applied to NORMAL sessions, not DISCOVERY sessions.

Otherwise, we will always have this clamped down to 8k for all normal sessions  and thus we get a performance issue since TGTD will always send DATA-IN PDUs of just 8kb each.

With this patch, TGTD now honours the setting so that if the initiator specifies MaxDataSegmentLength to something reasonable like 256k, then TGTD will be able to send a single PDU of 256kb instead of a train of 32 8kb PDUs.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg at gmail.com>
 usr/iscsi/iscsid.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/usr/iscsi/iscsid.c b/usr/iscsi/iscsid.c
index 96abbfc..84476f7 100644
--- a/usr/iscsi/iscsid.c
+++ b/usr/iscsi/iscsid.c
@@ -346,7 +346,7 @@ static void text_scan_login(struct iscsi_connection *conn)
-			    conn->session_type == SESSION_DISCOVERY)
+			    conn->session_type == SESSION_NORMAL)
 				conn->session_param[idx].val = val;

To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

More information about the stgt mailing list