All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@steeleye.com>
To: Patrick Mansfield <patmans@us.ibm.com>
Cc: SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: Re: [RFC][PATCH] scsi-misc-2.5 software enqueue when can_queue reached
Date: 05 Mar 2003 04:02:38 +0100	[thread overview]
Message-ID: <1046833360.2757.43.camel@mulgrave> (raw)
In-Reply-To: <20030228111924.A32018@beaverton.ibm.com>

On Fri, 2003-02-28 at 20:19, Patrick Mansfield wrote:
> Hi -
> 
> Any comments or suggestions on the following patch?

Sorry for getting to this late, just returned from a nice long weekend
holiday.

> Patch is against scsi-misc-2.5.
> 
> I'm trying to break split queue_lock into a per scsi_device lock, and the
> starved code is in the way, plus it is not fair and looks like it has a
> couple of bugs. I started by trying to add a queue of request queues plus
> throttling to the current "starved" algorithm, but it was not too clean,
> so instead implemented this software enqueueing when the host can_queue
> limit is reached.

Could you elaborate on why a pending_queue (which duplicates some of the
block layer queueing functionality that we use) is a good idea.

Under the current scheme, we prep one command beyond the can_queue limit
and leave it in the block queue, so the returning commands can restart
with a fully prepped command but we still leave all the others in the
block queue for potential elevator merging. 

> This can use more resources (scsi_cmnd's) if the sum of queue_depths on a
> host is greater than can_queue, but it is fairer (when not all devices are
> hitting queue_depth limits, or if we had throttling with a throttling
> limit of 1) and simpler compared to using a queue of queues (or code
> similiar to the current starvation code).

It would certainly need some kind of throttling.  In the current code,
not taking a command off the block queue when we can't accept it gives
the elevator longer to work on merging; taking too many commands off
when we can't actually send them on might lead to the average command
size dropping.

James



  parent reply	other threads:[~2003-03-05  4:02 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-28 19:19 [RFC][PATCH] scsi-misc-2.5 software enqueue when can_queue reached Patrick Mansfield
2003-03-02  8:57 ` Christoph Hellwig
2003-03-02 18:15   ` Patrick Mansfield
2003-03-03 15:52   ` Randy.Dunlap
2003-03-03 18:17   ` Luben Tuikov
2003-03-04  1:11     ` Andrew Morton
2003-03-04  4:49       ` Luben Tuikov
2003-03-02 20:57 ` Luben Tuikov
2003-03-02 21:08   ` Luben Tuikov
2003-03-03 20:52   ` Patrick Mansfield
2003-03-03 22:40     ` Luben Tuikov
2003-03-03 23:41       ` Patrick Mansfield
2003-03-04  5:48         ` Luben Tuikov
2003-03-05  3:02 ` James Bottomley [this message]
2003-03-05 18:43   ` Patrick Mansfield
2003-03-06 15:57     ` James Bottomley
2003-03-06 17:41       ` Patrick Mansfield
2003-03-06 18:04         ` James Bottomley

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=1046833360.2757.43.camel@mulgrave \
    --to=james.bottomley@steeleye.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=patmans@us.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.