[Stgt-devel] iSER patches, second release

Alexander Nezhinsky nezhinsky
Sun Sep 9 21:39:49 CEST 2007

> I agree with your analysis.  This does seem like the right
> compromise between totally rewriting the state machine and doing the
> byte-wise copy in iser we do now.
> As a side note, I could almost be convinced that having an iser-only
> rx state machine would be appropriate.  6 of the 11 states have to

Ok, let's see if it is possible without making an earthquake ))

> I like your idea about getting rid of ep_malloc and ep_free.  That
> is the wrong level to do the abstraction.  But watch out for
> bidi_uaddr.  You don't know the size of the read buffer in a
> bidirectional command until the AHS has been processed.  This comes
> after task alloc in the current code, hence the second call to
> malloc.  In iser this should be a pre-registered buffer

maybe, there should be: task_alloc(), task_add_buf(), task_release()
or smth. like this, so that adding a buffer amounts either to malloc
or getting a pre-registered buffer, while release handles *all* previously
allocated buffers.

> Let me know if you have questions on any aspects of the current
> code.  It's not very heavily commented.  I'll test your patches when
> they're ready.

great, i'll start working on that, but it can take some time as i don't have
too much bandwidth.

Another question, though. As far as i understand, when rdma read due
to an r2t request is done, iser_rdma_read_completion() is called and
it calls iscsi_scsi_cmd_execute() which may issue more R2Ts if
So we send R2T --> RDMA-Read, then wait for completion, then send
another one.
This imposes delays between consecutive rdma-reads.
If we issue all r2t requests at once (in the correct order, though), we
guarantee that there are no gaps (or they are as small as possible)
between the data chunks sent from the initiator.

Generally, the number of R2T simultaneously outstanding is governed by
MaxOutstandingR2Ts, but it is irrelevant in iSER, just as MaxBurstSize is
irrelevant. The only limitation on issuing R2Ts is the limitation of
the hardware
upon the max outstanding RDMA-Read requests.


More information about the stgt mailing list