[Stgt-devel] iSER patches, second release
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
> 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
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
upon the max outstanding RDMA-Read requests.
More information about the stgt