From: Douglas Gilbert <dougg@torque.net>
To: Christoph Hellwig <hch@infradead.org>
Cc: Luben Tuikov <ltuikov@yahoo.com>,
James Bottomley <James.Bottomley@SteelEye.com>,
Luben Tuikov <luben_tuikov@adaptec.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH 2.6.13 5/14] sas-class: sas_discover.c Discover process (end devices)
Date: Tue, 13 Sep 2005 22:47:50 +1000 [thread overview]
Message-ID: <4326CA76.6020504@torque.net> (raw)
In-Reply-To: <20050913102555.GB30865@infradead.org>
Christoph Hellwig wrote:
> On Mon, Sep 12, 2005 at 04:17:48PM +1000, Douglas Gilbert wrote:
>
>>FreeBSD threw out their original SCSI design and replaced it
>>with CAM circa 1998. CAM has its problems but I would guess
>>a modern SAS LLDD would have less "impedance mismatch" (sorry
>>about the gibberish) than what Luben is now facing.
>
>
> Their code doesn't scale well to current needs at all. Please look
> at the freebsd-scsi list and all the problems they have with things
> like FC or iSCSI. Or no support for REPORT_LUNs at all. While I
> wouldn't say we have the best thing since slided bread it's certainly
> not as bad as some people would like to make it.
>
>
>>If we look at our (im)famous <h:c:i:l> addressing string,
>>the first 2 elements (i.e. "h:c") are about kernel device
>>addressing (i.e. which (part of a) HBA to be initiator); the
>>contentious "i" is about addressing the target and is
>>transport dependent, and the "l" is for addressing within
>>the target. Only the last element is true SCSI and is
>>defined in SAM (to be 64 bits, not 32). In iSCSI the "i"
>>is actually an adorned IP address.
>>
>>So the kernel "discovers" at the "h:c" level at powerup
>>(and at runtime with hotplug events); leaving the SCSI
>>subsystem to do discovery at the "i" and the "l" level.
>
>
> That's not true at all. Neither is 100% mandatory in the
By "SCSI susbsystem" I refer to: all active ULDs, the
mid level, the active LLDs and associated parts of the
block subsystem. Given that, what is "not true at all"?
Strangely, James Bottomley replied to the same
line with: "Right, but we've already moved away ..."
> scsi level. As Luben's code shows you can just call scsi_add_device
> and do everything yourself.
I am proposing the minimalist option. That is, nothing in
the SCSI (kernel) subsystem (including the LLD) does discovery
at either the transport or the lu level. I'm not suggesting
that should be the default setting.
Can you remember when doing device discovery in the user
space was discussed on this list? I thought that people felt
that it was a worthwhile goal. To do it at least
the following is needed:
1) a way to stop the SCSI subsystem doing it
2) tools to allow the user space to do it, or,
skip discovery, address the device directly
That way, if a user app wants to talk to a well know lu (or
whatever), it doesn't matter if the mid level or the LLD
in question decides that it is not a good idea to make it
visible. LLDs know about their transport but not what is
behind a target device, especially if it is a bridge.
Of course, an LLD could have a backdoor through to the user
space to accomplish this ...
> fit into SAM at all like integrated RAID HBAs. Besides that we
> support a library function to do the "l" part that can be used by
> transport classes or drivers. There's a library function to do
> the "i" part brute-force for SPI and modelled after SPI devices that
> is still in scsi_mod.ko but isn't integrated with the core code
> in any way. Before 2.6 the predessor to this function
> "scsi_scan_host" was called for every registered host, but we
> fortunately got rid of that.
You seem to suggest that I am pining after something in the
past. You make the point that a one-fits-all discovery ("i"
and "l") in the mid level is not a good idea; better to
let the LLD do it (or have the option). I make the further
point that a user app might be even better placed.
Doug Gilbert
next prev parent reply other threads:[~2005-09-13 12:47 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-09 19:40 [PATCH 2.6.13 5/14] sas-class: sas_discover.c Discover process (end devices) Luben Tuikov
2005-09-09 19:59 ` Nish Aravamudan
2005-09-09 20:11 ` Luben Tuikov
2005-09-09 23:25 ` James Bottomley
2005-09-10 2:44 ` Luben Tuikov
2005-09-10 5:39 ` Douglas Gilbert
2005-09-10 16:01 ` James Bottomley
2005-09-12 15:06 ` Luben Tuikov
2005-09-12 16:27 ` Patrick Mansfield
2005-09-12 20:08 ` Luben Tuikov
2005-09-13 9:05 ` Douglas Gilbert
2005-09-13 13:11 ` Luben Tuikov
2005-09-13 22:42 ` Patrick Mansfield
2005-09-14 12:28 ` Luben Tuikov
2005-09-14 17:13 ` Patrick Mansfield
2005-09-14 17:17 ` Luben Tuikov
2005-09-14 18:47 ` James Bottomley
2005-09-14 20:20 ` Luben Tuikov
2005-09-12 17:52 ` James Bottomley
2005-09-12 20:31 ` Luben Tuikov
2005-09-12 21:23 ` James Bottomley
2005-09-13 12:49 ` Luben Tuikov
2005-09-13 15:54 ` James Bottomley
2005-09-13 20:01 ` Luben Tuikov
2005-09-11 9:46 ` Christoph Hellwig
2005-09-12 6:17 ` Douglas Gilbert
2005-09-12 14:57 ` James Bottomley
2005-09-12 16:45 ` Patrick Mansfield
2005-09-12 17:21 ` James Bottomley
2005-09-12 18:46 ` Patrick Mansfield
2005-09-13 19:22 ` James Bottomley
2005-09-13 20:23 ` Luben Tuikov
2005-09-13 20:36 ` Matthew Wilcox
2005-09-13 21:02 ` Luben Tuikov
2005-09-13 21:37 ` Stefan Richter
2005-09-13 21:54 ` Luben Tuikov
2005-09-13 22:25 ` Patrick Mansfield
2005-09-14 5:22 ` Sergey Panov
2005-09-14 16:28 ` Patrick Mansfield
2005-09-14 12:13 ` Luben Tuikov
2005-09-14 4:57 ` Sergey Panov
2005-09-14 18:43 ` James Bottomley
2005-09-14 20:17 ` Luben Tuikov
2005-09-15 2:04 ` Sergey Panov
2005-09-12 20:20 ` Luben Tuikov
2005-09-12 20:09 ` Luben Tuikov
2005-09-12 19:39 ` Luben Tuikov
2005-09-12 18:17 ` Luben Tuikov
2005-09-13 10:25 ` Christoph Hellwig
2005-09-13 12:47 ` Douglas Gilbert [this message]
2005-09-13 14:58 ` Luben Tuikov
2005-09-12 22:39 ` Luben Tuikov
-- strict thread matches above, loose matches on Subject: below --
2005-09-12 19:04 James.Smart
2005-09-12 19:29 ` Patrick Mansfield
2005-09-12 19:53 James.Smart
2005-09-14 0:58 Ravi Anand
2005-09-14 17:46 Ravi Anand
2005-09-16 7:28 Andreas Herrmann
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=4326CA76.6020504@torque.net \
--to=dougg@torque.net \
--cc=James.Bottomley@SteelEye.com \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=ltuikov@yahoo.com \
--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