From: Luben Tuikov <luben_tuikov@adaptec.com>
To: James.Smart@Emulex.Com
Cc: hch@lst.de, jejb@steeleye.com, ltuikov@yahoo.com,
Eric.Moore@lsil.com, andrew.patterson@hp.com,
linux-scsi@vger.kernel.org
Subject: Re: [PATCH] minimal SAS transport class
Date: Sat, 20 Aug 2005 13:23:04 -0400 [thread overview]
Message-ID: <430766F8.1090100@adaptec.com> (raw)
In-Reply-To: <9BB4DECD4CFE6D43AA8EA8D768ED51C21D7A40@xbl3.ma.emulex.com>
On 08/20/05 00:15, James.Smart@Emulex.Com wrote:
> Ok, so I guess I owe you a response. I hesitate, as this discussion
> always becomes larger than it should.
>
> There are 2 key points:
> - the target id is logical for everything but SPI
> - following old SPI behavior, users expect the same devices to
> be enumerated at the same target ids, regardless of whether
> that enumeration is at the next link event, driver load/unload,
> or system reboot. The corollary for this is that the device's
> name should have remained the same as well.
I don't mind LLDD giving channel and id to SCSI Core. Not at all.
What I mind is the _way_ it is done.
Just consider this (and I'm sure you have the same sentiments):
slave alloc gives you channel and id and lun/2 to find out
the device it wants to poke at... And the really sad part is
that NO ONE at linux-scsi finds this objectionable. This should've
been thrown out 5 years ago (well slave alloc wasn't around then)
when iSCSI was making its way in, and when people suggested it.
Sadly it was shot down by the Maintainers and this is what we
have here today.
> For FC, target ids are typically assigned to devices on a
> 1st-seen-1st-assigned basis. For several reasons, there can be
> changes in port discovery order after link events (cable pulls,
> etc). For 2.4 kernels, the driver typically maintained a mapping
> within the driver to ensure the same device showed up at the same
> target id, even if it disappeared for some amount of time. If FC
> was the boot device, wacky methods were used to ensure the mapping
> persisted boot-to-boot.
This is all _fine_ and I don't mind it at all.
> For SAS, looking at Christoph's code -
> The target id comes from the LLDD. So either the LLDD maintains a
> map of SAS port addresses to target ids, or the mapping could change,
> same as FC. Christoph's argument is that FC's issue was historical.
> SAS is sufficiently new that folks are now smart enough to use udev.
> My contention is that people will expect the same behavior out of
> SAS as they did w/ FC. To them its all "just SCSI".
Ok, to answer both your and Jeff's email, this is how this all is done:
Let, (channel, id) tuple be *just another label*!
For a domain device or LU in a domain device you can have a myriad of
labels, depending on a myriad of things, like
- how you got to the device
- what transport you used to get the device
- what kind of device it actually is,
- what kind of interrogation methods it replies to,
- what kind of VPD it has if any,
- what the Command Set driver named it (sdX, stX),
- etc.
Now, the function of a LLDD is to provide access to the
transport, this is done by the LLDD implementing SAM's
Execute Task and the TMFs.
Next, the transport layer uses those to interrogate the domain
the LLDD provides access to and find out any domain devices.
Each domain device is then registered with SCSI Core,
using something like a "struct domain_device".
Now _that_ "struct domain_device" can have as many and as varied
_labels_ as you want: (channel, id), WWN, Funky name1, Funky name2,
name given by the Command Set driver, which as kept in the
struct domain_device.
Then you expose _those_ labels to user space and let programs
use whatever label they want. The kernel itself can use
the struct domain device to address the device, but anyone
else from user space can use one of the labels: WWN, (channel,id),
etc.
This will give you backward compatibility, plus it would allow
for SCSI Core to be completely rewritten in the spirit of
SAM and enter the 21 century.
Luben
next prev parent reply other threads:[~2005-08-20 17:23 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-20 4:15 [PATCH] minimal SAS transport class James.Smart
2005-08-20 4:57 ` Jeff Garzik
2005-08-20 17:23 ` Luben Tuikov [this message]
2005-08-21 17:03 ` Christoph Hellwig
2005-08-21 16:52 ` Christoph Hellwig
2005-08-21 18:23 ` Luben Tuikov
2005-08-22 4:55 ` Matt Domsch
2005-08-22 17:05 ` Luben Tuikov
2005-08-22 21:53 ` Mike Anderson
2005-08-23 23:55 ` Luben Tuikov
2005-08-24 17:12 ` Patrick Mansfield
2005-08-24 20:05 ` Luben Tuikov
2005-08-24 20:42 ` Patrick Mansfield
2005-08-24 21:48 ` Luben Tuikov
2005-08-23 11:10 ` Douglas Gilbert
2005-08-23 6:27 ` Hannes Reinecke
2005-08-23 15:42 ` Patrick Mansfield
2005-08-23 15:53 ` Matthew Wilcox
2005-08-24 0:13 ` Luben Tuikov
2005-08-25 19:32 ` Stefan Richter
2005-08-25 20:06 ` Jeff Garzik
2005-08-26 16:43 ` Luben Tuikov
2005-08-26 17:22 ` James Bottomley
2005-08-26 18:16 ` Luben Tuikov
2005-08-26 18:48 ` Jeff Garzik
2005-08-26 19:37 ` Luben Tuikov
2005-08-27 1:39 ` Jeff Garzik
2005-08-27 7:11 ` Stefan Richter
2005-08-28 22:13 ` Luben Tuikov
-- strict thread matches above, loose matches on Subject: below --
2005-08-23 18:25 James.Smart
2005-08-23 16:16 James.Smart
2005-08-23 17:28 ` Stefan Richter
2005-08-24 0:02 ` Luben Tuikov
2005-08-24 9:12 ` Christoph Hellwig
2005-08-26 15:47 ` Luben Tuikov
2005-08-26 19:24 ` Jeff Garzik
2005-08-26 19:44 ` Luben Tuikov
2005-08-27 1:53 ` Jeff Garzik
2005-08-27 7:35 ` Stefan Richter
2005-08-28 22:27 ` Luben Tuikov
2005-08-29 5:16 ` Stefan Richter
2005-08-29 17:11 ` Christoph Hellwig
2005-08-29 17:20 ` Luben Tuikov
2005-08-29 17:25 ` Christoph Hellwig
2005-08-29 17:16 ` Christoph Hellwig
2005-08-29 17:31 ` Luben Tuikov
2005-08-29 18:34 ` Luben Tuikov
2005-08-29 18:09 ` James Bottomley
2005-08-23 17:57 ` Patrick Mansfield
2005-08-22 23:08 Moore, Eric Dean
2005-08-24 8:59 ` Christoph Hellwig
2005-08-18 18:48 James.Smart
2005-08-18 19:04 ` Jeff Garzik
2005-08-19 14:06 ` Christoph Hellwig
2005-08-19 17:51 ` Luben Tuikov
2005-08-19 17:54 ` Christoph Hellwig
2005-08-19 17:56 ` Luben Tuikov
2005-08-19 17:59 ` Christoph Hellwig
2005-08-19 18:07 ` Luben Tuikov
2005-08-19 19:59 ` James Bottomley
2005-08-19 20:32 ` Luben Tuikov
2005-08-19 20:54 ` Jeff Garzik
2005-08-20 9:18 ` Christoph Hellwig
2005-08-20 17:34 ` Luben Tuikov
2005-08-21 6:41 ` Arjan van de Ven
2005-08-21 17:07 ` Christoph Hellwig
2005-08-19 19:08 ` Luben Tuikov
2005-08-18 20:06 ` Luben Tuikov
2005-08-19 14:04 ` Christoph Hellwig
2005-08-18 14:43 James.Smart
2005-08-18 14:02 James.Smart
2005-08-18 17:56 ` Christoph Hellwig
2005-08-18 20:05 ` Luben Tuikov
2005-08-19 14:15 ` Christoph Hellwig
2005-08-18 11:57 James.Smart
2005-08-15 13:55 Christoph Hellwig
2005-08-15 14:19 ` Luben Tuikov
2005-08-15 14:35 ` Arjan van de Ven
2005-08-15 15:04 ` Luben Tuikov
2005-08-15 15:13 ` Luben Tuikov
2005-08-15 15:21 ` Christoph Hellwig
2005-08-15 15:33 ` 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=430766F8.1090100@adaptec.com \
--to=luben_tuikov@adaptec.com \
--cc=Eric.Moore@lsil.com \
--cc=James.Smart@Emulex.Com \
--cc=andrew.patterson@hp.com \
--cc=hch@lst.de \
--cc=jejb@steeleye.com \
--cc=linux-scsi@vger.kernel.org \
--cc=ltuikov@yahoo.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).