[Stgt-devel] dd fails with iSER

Pete Wyckoff pw
Sat Aug 11 17:29:44 CEST 2007

pw at osc.edu wrote on Thu, 09 Aug 2007 16:22 -0400:
> There is also a spot in /etc/iscsi/iscsid.conf where you can adjust
> the default value for the initiator:
> 	node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
> Its default is a more reasonable 128k.

This advice is correct, but for the wrong reasons.  The situation is
more complex than I had thought.  The iSER spec doesn't provide
guidance on how to set the maximum data segment lentgh for RDMA
transfers.  It adds two new parameters:

   InitiatorRecvDataSegmentLength - size of data segment in control PDUs
   	sent to initiator
   TargetRecvDataSegmentLength - size of data segment in control PDUs
   	sent to target

and tells us to ignore MaxRecvDataSegmentLength.  But it doesn't say
how we should figure out the limit for data-type PDUs, i.e. for RDMA
transfers, or even if there should be one.  The phrase "control
PDUs" means non-RDMA transfers.

One approach would be to have the target RDMA the entire data
segment in a single operation.  This approach minimizes the
overhead, but doesn't let us pipeline and may not be possible for
large transfer sizes.  The OS won't let us pin all the memory
required for the transfer, perhaps.

Instead I've added another patch that changes the MaxRDSL in the
target to be whatever was negotiated for IRDSL.  Since I see no way
in the spec how the target could send data in a control type PDU,
IRDSL wasn't doing anything for us anyway.  And open-iscsi uses its
conn->max_recv_dlength as the starting point for IRDSL, which seems

Incidentally, Erez, it was you who added IRDSL support to open-iscsi
back in Oct 2005.  Apparently you agree with my interpretation?

So the final story is:

    - you can leave the previous patch "iser more rdma bufs" applied
	as it is harmless and probably a good idea anyway

    - apply the patch below for completeness

    - make sure you have the quoted line above in your iscsid.conf

You should see no change in behavior, but now the code is at least
rational, I think.  (git.osc.edu is up to date with this patch too.)

		-- Pete

More information about the stgt mailing list