From: Mike Christie <michaelc@cs.wisc.edu>
To: "Nicholas A. Bellinger" <nab@linux-iscsi.org>
Cc: "Moussa Ba (moussaba)" <moussaba@micron.com>,
"target-devel@vger.kernel.org" <target-devel@vger.kernel.org>,
Nicholas Bellinger <nab@daterainc.com>,
Or Gerlitz <ogerlitz@mellanox.com>,
linux-scsi <linux-scsi@vger.kernel.org>
Subject: Re: CmdSN greather than MaxCmdSN protocol error in LIO Iser
Date: Tue, 12 Nov 2013 09:43:27 -0600 [thread overview]
Message-ID: <52824C9F.4000500@cs.wisc.edu> (raw)
In-Reply-To: <52824B3C.10203@cs.wisc.edu>
On 11/12/13 9:37 AM, Mike Christie wrote:
>>
>> if (max_cmdsn != session->max_cmdsn &&
>> !iscsi_sna_lt(max_cmdsn, session->max_cmdsn)) {
>> session->max_cmdsn = max_cmdsn;
>> /*
>> * if the window closed with IO queued, then kick the
>> * xmit thread
>> */
>> if (!list_empty(&session->leadconn->cmdqueue) ||
>> !list_empty(&session->leadconn->mgmtqueue))
>> iscsi_conn_queue_work(session->leadconn);
>> }
>> }
>>
>> 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..?
>>
>
> If the window was not big enough we would have not accepted the cmd from
> scsi-ml in iscsi_queuecommand. We would have never put it on the list
> above then.
Oh yeah, if you are asking yourself why that code exists then, it is
because we used to internally queue cmds when the window closed. In
iscsi_data_xmit we then checked the window like in your patch. We
switched to having the scsi layer queue for us, but that code above got
left there.
Or sent a patch the other day to remove it:
http://marc.info/?l=linux-scsi&m=138288022619303&w=2
next prev parent reply other threads:[~2013-11-12 15:43 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <697D97E420EE024FB7451B574CD4991BCA064554@NTXBOIMBX05.micron.com>
[not found] ` <1384204653.12281.7.camel@haakon3.risingtidesystems.com>
[not found] ` <1384216960.12281.24.camel@haakon3.risingtidesystems.com>
[not found] ` <1384217317.12281.26.camel@haakon3.risingtidesystems.com>
2013-11-12 1:31 ` CmdSN greather than MaxCmdSN protocol error in LIO Iser Nicholas A. Bellinger
2013-11-12 2:16 ` Nicholas A. Bellinger
2013-11-12 2:32 ` Michael Christie
2013-11-12 2:39 ` Michael Christie
2013-11-12 4:34 ` Nicholas A. Bellinger
2013-11-12 7:27 ` Or Gerlitz
2013-11-12 9:15 ` Nicholas A. Bellinger
2013-11-12 15:37 ` Mike Christie
2013-11-12 15:43 ` Mike Christie [this message]
2013-11-12 18:18 ` Moussa Ba (moussaba)
2013-11-12 19:46 ` Michael Christie
2013-11-12 19:48 ` Moussa Ba (moussaba)
2013-11-12 21:15 ` Nicholas A. Bellinger
2013-11-12 22:11 ` Moussa Ba (moussaba)
2013-11-12 22:14 ` Nicholas A. Bellinger
2013-11-12 22:15 ` Moussa Ba (moussaba)
2013-11-12 23:03 ` Moussa Ba (moussaba)
2013-11-13 1:51 ` Nicholas A. Bellinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52824C9F.4000500@cs.wisc.edu \
--to=michaelc@cs.wisc.edu \
--cc=linux-scsi@vger.kernel.org \
--cc=moussaba@micron.com \
--cc=nab@daterainc.com \
--cc=nab@linux-iscsi.org \
--cc=ogerlitz@mellanox.com \
--cc=target-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox