From: James Bottomley <James.Bottomley@SteelEye.com>
To: Luben Tuikov <luben_tuikov@adaptec.com>
Cc: Jeff Garzik <jgarzik@pobox.com>, linux-scsi@vger.kernel.org
Subject: Re: [patch 0/6] marginalize HCIL a bit
Date: Mon, 24 Oct 2005 15:28:08 -0500 [thread overview]
Message-ID: <1130185688.3325.88.camel@mulgrave> (raw)
In-Reply-To: <435D176E.5000201@adaptec.com>
On Mon, 2005-10-24 at 13:18 -0400, Luben Tuikov wrote:
> >>All of this functionality and infrastructure is present in the
> >>SAS Stack and could be taken almost as is.
> >
> >
> > Amazingly enough, it's also already present in the transport classes
> > (see vanilla linux kernel source code).
>
> 1. What are we talking about here?
> 2. File location, name and line please. Thank you.
The best commented file is scsi_transport_spi.c; you can see how it adds
spi specific pieces to the scsi_target structure using the generic
transport class capabilities.
> > If you look at your domain device with all the sas pieces removed,
> > you'll see that scsi_target actually covers all the remaining bits
> > (there are one or two pieces covered by struct generic_device which you
> > have to have extra components for because you implemented kobjects
> > instead of a generic device).
>
> And there is a reason for this: domain devices are NOT and WILL NEVER
> BE "generic device". Domain device representations exist only in
> the Transport Layer. What you seem to suggest with your "transport
> attributes" is this "appendages-modules" which intersperse everywhere
> in SCSI Core and LLDD like octopus's arms. See USB Storage and SBP.
I think you don't quite understand what a generic device is: It's a
structure which is embedded within other structures, exactly like a
kobject. The reason for using generic devices instead of kobjects is
that they provide a wider range of useful functionality.
> > scsi_target contains a variable space for
> > the transport classes to use for their transport specific pieces (which
> > is where you could have put all the sas specific bits).
>
> Absolutely NOT. Those "transport specific pieces" should be completely
> OPAQUE to SCSI Core -- as you saw in my previous email, the
> "transport specific pieces" as you called them were
> "void *domain_device; /* opaque to SCSI Core */".
They *are* opaque to the scsi mid-layer. Refer to the code in the
vanilla kernel.
> I guess the proper question to ask now is: "Can you envision it?"
>
> > The only real difference is that under the current infrastructure scsi
> > targets aren't designed to stack. Realistically, the way you have it
> > implemented, you have several different devices lumped into your domain
> > device (end, edge, fanout, sata) with different initialisations and
>
> 1. How this is implemented is Layer dependent (USB/SBP/FC/SAS/iSCSI/etc).
> 2. A struct domain_device can be _only_ one of end/edge/fanout/sata/etc,
> and only one of those.
> Only devices which _make_sense_ to SCSI Core are registered with SCSI Core,
> i.e. end devices. Other type of devices (e.g. expanders) that are
> NOT SCSI devices are not registered with SCSI Core, neither should they
> be visible anywhere outside of the respective Layer (SAS in this case).
That *is* how the transport classes work. The obvious example being a
FC rport which has no existence outside of the FC transport class and is
not understood at all by the mid-layer. Refer to the code in the
vanilla kernel.
James
next prev parent reply other threads:[~2005-10-24 20:28 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-23 1:36 [patch 0/6] marginalize HCIL a bit Jeff Garzik
2005-10-23 1:37 ` [patch 1/6] SCSI HCIL: s/scsi_scan_target/spi_scan_target/ Jeff Garzik
2005-10-23 1:38 ` [patch 2/6] SCSI HCIL: remove unused scsi_scan_single_target() Jeff Garzik
2005-10-23 1:53 ` Matthew Wilcox
2005-10-23 1:38 ` [patch 3/6] SCSI HCIL: add scsi_scan_target() Jeff Garzik
2005-10-23 1:50 ` Matthew Wilcox
2005-10-23 1:54 ` Jeff Garzik
2005-10-23 2:00 ` Matthew Wilcox
2005-10-23 2:42 ` Jeff Garzik
2005-10-23 2:26 ` Randy.Dunlap
2005-10-23 1:40 ` [patch 4/6] SCSI HCIL: kill all uses of spi_scan_target() Jeff Garzik
2005-10-23 1:56 ` Matthew Wilcox
2005-10-23 1:40 ` [patch 5/6] SCSI HCIL: kill spi_scan_target(), __spi_scan_target() Jeff Garzik
2005-10-23 1:41 ` [patch 6/6] SCSI HCIL: misc cleanups Jeff Garzik
2005-10-23 2:03 ` Matthew Wilcox
2005-10-23 1:45 ` [patch 0/6] marginalize HCIL a bit Jeff Garzik
2005-10-23 15:29 ` James Bottomley
2005-10-24 15:49 ` Luben Tuikov
2005-10-24 16:50 ` James Bottomley
2005-10-24 17:18 ` Luben Tuikov
2005-10-24 20:28 ` James Bottomley [this message]
2005-10-24 20:41 ` Luben Tuikov
2005-10-24 21:12 ` James Bottomley
2005-10-24 22:38 ` Luben Tuikov
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=1130185688.3325.88.camel@mulgrave \
--to=james.bottomley@steeleye.com \
--cc=jgarzik@pobox.com \
--cc=linux-scsi@vger.kernel.org \
--cc=luben_tuikov@adaptec.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;
as well as URLs for NNTP newsgroup(s).