From: Doug Ledford <dledford@redhat.com>
To: Luben Tuikov <luben@splentec.com>
Cc: James Bottomley <James.Bottomley@steeleye.com>,
SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH / RFC] scsi_error handler update. (1/4)
Date: Mon, 17 Feb 2003 15:17:29 -0500 [thread overview]
Message-ID: <20030217151729.A21987@redhat.com> (raw)
In-Reply-To: <3E5119EC.7080907@splentec.com>; from luben@splentec.com on Mon, Feb 17, 2003 at 12:20:44PM -0500
On Mon, Feb 17, 2003 at 12:20:44PM -0500, Luben Tuikov wrote:
> James Bottomley wrote:
>
> It is *not* ``philosophical''. It's what's in SAM-2/3. And it is what
> most SPI HBA do this already (since you use SPI HBA's in your example).
> When was the last time a SPI HBA set channel/bus to anything different
> than 0?
The last time someone booted up an Adaptec 2742T controller for one.
> My Adaptec AIC-7899P dual channel, presents two hosts, not two channels.
> And this is the right behaviour.
It is the right behaviour for that controller, no more. The right
behaviour is determined by the controller in question, not philosophical
beliefs. In the case of the 2742T controllers there are two busses on one
scsi chip, you have to flip a bit in the chip to switch control regs
between busses, the chip has a maximum number of commands it can handle
and those are shared between the two busses, etc. Representing that as
one host is the right thing to do because that's how all the resource
limits, etc. have to be calculated.
> IOW, it already is hinting that those are ``portals''. There is no
> such thing as a ``host'' in SCSI-3. ``host'' is an SPI term, and is gone
> from SAM and SPC (which is what scsi-core should represent).
I disagree with that last statement strongly! I've mentioned this in
private email before. The scsi core should represent reality, not any
version of any spec! It should *implement* the scsi protocol, but it need
not and should not try to emulate any specific version of the scsi spec in
design and it needs to and should try to represent the reality of the
hardware you are working with. And reality is that no matter what
interconnect we are using there is a host in that chain and that host is
some piece of hardware that handles our interconnect. Hosts have their
own set of resource requirements, concurrency issues, limitations, etc.
Ignoring the concept of a host to emulate a spec ignores reality and makes
the job of actually working with these devices harder. The reason the
current scsi core is a two layer abstraction is because that's the reality
of how the vast majority of this stuff is put together (there are a few
exceptions, tape autoloaders for example, but these are rare and well
known where as individual devices are far more common).
> Not anymore, you don't.
>
> You queue at LU level, and control parameters
> - at LU level, for the device server itself (i.e. the thingy
> which executes scsi commands),
> - at Target level, (for target specific parameters),
> - at Portal level, for the service delivery subsystem (i.e.
> controls specific for SPI, FC, etc.).
Really, in the above list, just replace portal with host and you have what
we are doing today. By creating a separate struct target and putting the
target specific params into it you aren't changing *what* we are doing,
just *how* we are doing it (which I have no objection to). By changing
the name of host to portal, well, your just changing the name to match
some document but without any real purpose.
However, what I would like to see is a service delivery subsystem specific
set of routines in the scsi core. For example, the new scsi eh code is
mostly wasted on pretty much all the intelligent RAID controllers that act
like scsi controllers (megaraid, serveraid, etc.) and a *much* simpler
error recovery setup could be used on those controllers. On the other
hand, iscsi and fc both need a bit more in the way of error recovery
intelligence than spi does. So I could see using 3 different error
recovery strategies depending on the interconnect type (I'm not sure where
usb and ieee1394 would fit in here) and also due to interconnect
differences I could see each of these same 3 groups of interconnects
needing different default disk timeout parameters. These different
interconnects also offer totally different device scan capabilities. SPI
needs a manual "are you there?" scan, most fc/usb/ieee1394/intelligent
raid controllers can all tell the scsi layer "here are my devices, set
them up" and avoid manual scanning. So, based upon interconnect in use
and driver capabilities, I'd like to see the ability to select the right
settings for a controller at controller init time. To that extent, the
"portal" abstraction has a use, but I still don't like the name. No one
goes out and buys a fiber channel portal, they go buy a fiber channel host
adapter board or controller.
--
Doug Ledford <dledford@redhat.com> 919-754-3700 x44233
Red Hat, Inc.
1801 Varsity Dr.
Raleigh, NC 27606
next prev parent reply other threads:[~2003-02-17 20:17 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-11 8:13 [PATCH / RFC] scsi_error handler update. (1/4) Mike Anderson
2003-02-11 8:15 ` [PATCH / RFC] scsi_error handler update. (2/4) Mike Anderson
2003-02-11 8:17 ` [PATCH / RFC] scsi_error handler update. (3/4) Mike Anderson
2003-02-11 8:19 ` [PATCH / RFC] scsi_error handler update. (4/4) Mike Anderson
2003-02-11 22:38 ` [PATCH / RFC] scsi_error handler update. (3/4) James Bottomley
2003-02-12 7:16 ` Mike Anderson
2003-02-12 14:26 ` Luben Tuikov
2003-02-12 14:37 ` James Bottomley
2003-02-12 22:34 ` James Bottomley
2003-02-13 8:24 ` Mike Anderson
2003-02-11 16:49 ` [PATCH / RFC] scsi_error handler update. (1/4) Luben Tuikov
2003-02-11 17:22 ` Mike Anderson
2003-02-11 19:05 ` Luben Tuikov
2003-02-11 20:14 ` Luben Tuikov
2003-02-11 21:14 ` Mike Anderson
[not found] ` <3E495862.3050709@splentec.com>
2003-02-11 21:20 ` Mike Anderson
2003-02-11 21:22 ` Luben Tuikov
2003-02-11 22:41 ` Christoph Hellwig
2003-02-12 20:10 ` Luben Tuikov
2003-02-12 20:46 ` Christoph Hellwig
2003-02-12 21:23 ` Mike Anderson
2003-02-12 22:15 ` Luben Tuikov
2003-02-12 21:46 ` Luben Tuikov
2003-02-13 15:47 ` Christoph Hellwig
2003-02-13 18:55 ` Luben Tuikov
2003-02-14 0:24 ` Doug Ledford
2003-02-14 16:38 ` Patrick Mansfield
2003-02-14 16:58 ` Mike Anderson
2003-02-14 18:50 ` Doug Ledford
2003-02-14 19:35 ` Luben Tuikov
2003-02-14 21:20 ` James Bottomley
2003-02-17 17:20 ` Luben Tuikov
2003-02-17 17:58 ` James Bottomley
2003-02-17 18:29 ` Luben Tuikov
2003-02-18 5:37 ` Andre Hedrick
2003-02-18 19:46 ` Luben Tuikov
2003-02-18 22:16 ` Andre Hedrick
2003-02-18 23:35 ` Luben Tuikov
2003-02-17 20:17 ` Doug Ledford [this message]
2003-02-17 20:19 ` Matthew Jacob
2003-02-17 21:12 ` Luben Tuikov
2003-02-17 17:35 ` Luben Tuikov
2003-02-14 21:27 ` James Bottomley
2003-02-17 17:28 ` Luben Tuikov
2003-02-16 4:23 ` Andre Hedrick
2003-02-11 18:00 ` Patrick Mansfield
2003-02-11 18:44 ` Mike Anderson
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=20030217151729.A21987@redhat.com \
--to=dledford@redhat.com \
--cc=James.Bottomley@steeleye.com \
--cc=linux-scsi@vger.kernel.org \
--cc=luben@splentec.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