Re: CmdSN greather than MaxCmdSN protocol error in LIO Iser

Nicholas A. Bellinger
2013-11-12T09:15:53Z

On Tue, 2013-11-12 at 09:27 +0200, Or Gerlitz wrote:
> On 12/11/2013 06:34, Nicholas A. Bellinger wrote:
> > Once iscsi_conn_queue_work() is invoked here to start process context
> > execution of iscsi_xmitworker() -> iscsi_data_xmit() code, AFAICT there
> > is no logic in place within iscsi_data_xmit() to honor the last received
> > MaxCmdSN.
> >
> > Or to put it another way: what is preventing iscsi_data_xmit() from
> > completely draining both conn->cmdqueue + conn->requeue, even when the
> > CmdSN window has potentially been closed again..?
>
> Guys,
>
> Note that the iser initiator transport uses the pass-through command
> submission mode of libiscsi, that is
> iscsi_conn_queue_work isn't called from queuecommand at all.
>
> This is b/c we call iscsi_host_allocwith xmit_can_sleep = 0. Hence no
> workqueue is used for the command processing/submission over the wire,
> just a call toiscsi_prep_scsi_cmd_pdu and following that to iser's
> xmit_task callbackwhich isiscsi_iser_task_xmit that calls
> iser_send_command, etc.

Grrrr, managed to miss the fact that iser is using xmit_can_sleep=0, and
avoids iscsi_data_xmit() processing all together..

> Mike, Nic is not using the new locking framework patches for libiscsi,
> as you know they are not upstream
> yet...
>

In any event, back to debugging then..

--nab