From: James Smart <James.Smart@Emulex.Com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: linux-scsi@vger.kernel.org
Subject: Re: [PATCH] scsi : set target can_queue from devinfo flags
Date: Wed, 14 May 2008 17:50:58 -0400 [thread overview]
Message-ID: <482B5EC2.7010302@emulex.com> (raw)
In-Reply-To: <1210793893.3075.6.camel@localhost.localdomain>
James Bottomley wrote:
> Just from a point of first principles, what makes you think the target
> port queue depth of an array is anything like constant? All the
> information I've got back from array vendors over the years leads me to
> conclude that it's dynamically determined based on resources available
> at the time the array services the request. Additionally, I've been
> told that even a heuristic rule of thumb value varies with the array
> cache size (which is a quantity not reflected in the inquiry strings).
Well, I know there are fixed limits based on the context limits in their
interface chips. Tachyons are a good example of this, especially some of
the older ones. There are also a lot of arrays that are sold in fixed
configurations so they don't have the variability you mention.
But, I agree with you. There are a number of arrays where it does vary
based on the configuration of the array that isn't reflected by the
Inquiry strings. And, there are others that melt down based on how busy
they are internally. I've also seen others melt down because the cmd
storm they are receiving overwhelms them so badly they can't generate
the TASK_SET_FULL responses. What I saw work in many of these cases was
the introduction of a tgt limit, especially as manipulating it as an
aggregate of all the lun queue depths never worked right.
So - you're right, it isn't always the case they are static. But, static
is a good starting point. And if there's a sysfs tunable on top of it,
to tailor for the configuration, you solve much of this variability
argument.
> My best guess for the way of handling this is that we should be using
> the Doug Leaford track_queue_full infrastructure but on a per target
> bases.
I don't fully agree, as it really depends on whether the queue fulls,
reported on a lun level, really apply to a target level resource.
Additionally, the queue_full handling has issues due to: a) the target
has to generate the queue_fulls, and your storm may have overwhelmed
it by several degrees. You've killed the array performance while you
are hoping to level out the load; b) there's always questions on how/when you
ramp up and at what rate, which is confused again if the queue full
wasn't because of target-level resources. We also have to be careful
that there aren't two queue full handlers working at the same time - one
at the target level, and another at the lun level (which is in the LLDs
currently).
Many times, having a target limit was the simplest knob with the best
bang for the buck. It was also the easiest to explain to admins on
its effect on array load (try explaining those cyclical ramp ups/downs
to an admin and why they can't set a knob and start to get consistent
behavior).
There is merit in both, but I'm sticking with the most bang for the buck.
-- james s
next prev parent reply other threads:[~2008-05-14 21:51 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-13 17:45 [PATCH] scsi : set target can_queue from devinfo flags James Smart
2008-05-14 6:34 ` Hannes Reinecke
2008-05-14 14:39 ` James Smart
2008-05-14 15:01 ` Hannes Reinecke
2008-05-14 19:38 ` James Bottomley
2008-05-14 21:50 ` James Smart [this message]
2008-05-15 1:21 ` James Smart
2008-09-24 19:13 ` Mike Christie
2008-09-24 19:17 ` Mike Christie
2008-09-25 18:40 ` Mike Christie
2008-09-25 19:03 ` James Smart
2008-09-24 19:38 ` James Smart
2008-09-25 18:15 ` Mike Christie
2008-09-26 7:46 ` Hannes Reinecke
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=482B5EC2.7010302@emulex.com \
--to=james.smart@emulex.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=linux-scsi@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