public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Mike Christie <michael.christie@oracle.com>
To: Dmitry Bogdanov <d.bogdanov@yadro.com>,
	Lee Duncan <lduncan@suse.com>, Chris Leech <cleech@redhat.com>
Cc: open-iscsi@googlegroups.com, linux-scsi@vger.kernel.org,
	linux@yadro.com, Konstantin Shelekhin <k.shelekhin@yadro.com>
Subject: Re: [PATCH] scsi: iscsi: prefer xmit of DataOut before new cmd
Date: Tue, 7 Jun 2022 11:06:12 -0500	[thread overview]
Message-ID: <6a58acb4-e29e-e8c7-d85c-fe474670dad7@oracle.com> (raw)
In-Reply-To: <769c3acb-b515-7fd8-2450-4b6206436fde@oracle.com>

On 6/7/22 10:55 AM, Mike Christie wrote:
> On 6/7/22 8:19 AM, Dmitry Bogdanov wrote:
>> In function iscsi_data_xmit (TX worker) there is walking through the
>> queue of new SCSI commands that is replenished in parallell. And only
>> after that queue got emptied the function will start sending pending
>> DataOut PDUs. That lead to DataOut timer time out on target side and
>> to connection reinstatment.
>>
>> This patch swaps walking through the new commands queue and the pending
>> DataOut queue. To make a preference to ongoing commands over new ones.
>>
> 
> ...
> 
>>  		task = list_entry(conn->cmdqueue.next, struct iscsi_task,
>> @@ -1594,28 +1616,10 @@ static int iscsi_data_xmit(struct iscsi_conn *conn)
>>  		 */
>>  		if (!list_empty(&conn->mgmtqueue))
>>  			goto check_mgmt;
>> +		if (!list_empty(&conn->requeue))
>> +			goto check_requeue;
> 
> 
> 
> Hey, I've been posting a similar patch:
> 
> https://www.spinics.net/lists/linux-scsi/msg156939.html
> 
> A problem I hit is a possible pref regression so I tried to allow
> us to start up a burst of cmds in parallel. It's pretty simple where
> we allow up to a queue's worth of cmds to start. It doesn't try to
> check that all cmds are from the same queue or anything fancy to try
> and keep the code simple. Mostly just assuming users might try to bunch
> cmds together during submission or they might hit the queue plugging
> code.
> 
> What do you think?

Oh yeah, what about a modparam batch_limit? It's between 0 and cmd_per_lun.
0 would check after every transmission like above.




  reply	other threads:[~2022-06-07 16:06 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-07 13:19 [PATCH] scsi: iscsi: prefer xmit of DataOut before new cmd Dmitry Bogdanov
2022-06-07 15:55 ` Mike Christie
2022-06-07 16:06   ` Mike Christie [this message]
2022-06-08 14:16     ` Dmitriy Bogdanov
2022-06-08 15:36       ` Mike Christie
2022-06-09  6:56         ` Antw: [EXT] " Ulrich Windl
2022-06-09  9:02         ` Dmitriy Bogdanov
2022-06-09 20:58           ` Mike Christie
2022-06-10  6:10             ` Antw: [EXT] " Ulrich Windl
2022-06-10 10:12               ` Dmitriy Bogdanov
2022-06-10 11:52             ` Dmitriy Bogdanov
2022-06-15 15:37 ` Mike Christie
2022-06-15 18:57   ` Adam Hutchinson
2022-06-17  5:54     ` Antw: [EXT] " Ulrich Windl
2022-06-22  2:10 ` Martin K. Petersen

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=6a58acb4-e29e-e8c7-d85c-fe474670dad7@oracle.com \
    --to=michael.christie@oracle.com \
    --cc=cleech@redhat.com \
    --cc=d.bogdanov@yadro.com \
    --cc=k.shelekhin@yadro.com \
    --cc=lduncan@suse.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux@yadro.com \
    --cc=open-iscsi@googlegroups.com \
    /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