linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
@ 2005-09-26 19:38 Luben Tuikov
  2005-09-27 21:55 ` Jeff Garzik
  0 siblings, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-09-26 19:38 UTC (permalink / raw)
  To: Linux Kernel Mailing List, SCSI Mailing List

Hi everyone,

I request inclusion of the SAS Transport Layer
and the AIC-94xx SAS LLDD into the Linux kernel.

Please find the latest Linus' git tree with SAS
Transport Layer and AIC-94xx, patches and
a whole tar.bz2 tree here:

http://linux.adaptec.com/sas/

There you will also find the original announcements
posted to this list.

The code is updated twice daily or more often as
needed.

Thank you,
	Luben

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-26 19:38 I request inclusion of SAS Transport Layer and AIC-94xx into the kernel Luben Tuikov
@ 2005-09-27 21:55 ` Jeff Garzik
  2005-09-27 22:51   ` Luben Tuikov
  2005-09-29 19:22   ` Stefan Richter
  0 siblings, 2 replies; 112+ messages in thread
From: Jeff Garzik @ 2005-09-27 21:55 UTC (permalink / raw)
  To: Linux Kernel Mailing List, Andrew Morton, Linus Torvalds
  Cc: Luben Tuikov, SCSI Mailing List

Luben Tuikov wrote:
> I request inclusion of the SAS Transport Layer
> and the AIC-94xx SAS LLDD into the Linux kernel.

Overall, I see the following major issues.  My recommendation is that 
this driver live in -mm, or outside the kernel tree, for a while to let 
things shake out.


Background
----------
* There is no question that Adaptec's aic94xx and SAS code is correct 
WRT the SCSI specifications.  The maintainer eats, sleeps, and breathes 
SAS specs.  :)

* aic94xx hardware supports both SAS and SATA connections.  Since SAS 
and SATA are intentionally similar electrically, other vendors are 
coming out with SATA+SAS hardware too.

* Acronym:  "HCIL"  Stands for Host/Channel/ID/LUN.  Pre-SAS legacy 
addressing method.


Issues
------
* Avoids existing SAS code, rather than working with it.

* Avoids existing SATA code, rather than working with it.

* Avoids (rather than fix) several SCSI core false dependencies on HCIL. 
  Results in code duplication and/or avoidance of needed code.

* So far, it's an Adaptec-only solution.  Since it pointedly avoids the 
existing SAS transport code, this results in two SAS solutions in Linux: 
one for Adaptec, one for {everyone else}.

* Maintainer reminds me of my ATA mentor, Andre Hedrick:  knows his 
shit, but has difficulties working with the community.  May need a 
filter if we want long term maintenance to continue.


Resolution
----------
AFAICS, there are two paths:

Easy path: make Adaptec's solution a block driver, which allows it to 
sidestep all the "doesn't play well with others" issues.  Still an 
Adaptec-only solution, but at least its in a separate playpen.

Hard path: Update the SCSI core and libata to work with SATA+SAS 
hardware such as Adaptec's.

The hard path takes time, and won't be solved simply by shoving it in.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-27 21:55 ` Jeff Garzik
@ 2005-09-27 22:51   ` Luben Tuikov
  2005-09-27 23:14     ` Andre Hedrick
  2005-09-28  2:02     ` Jeff Garzik
  2005-09-29 19:22   ` Stefan Richter
  1 sibling, 2 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-27 22:51 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

On 09/27/05 17:55, Jeff Garzik wrote:
> * Avoids existing SAS code, rather than working with it.

No, it's the _other_ way around.  There is NO existing
SAS code.

My SAS code has been around _long_ before Christophs
code.

Christoph's code is
 * MPT based only,
 * doesn't follow a spec to save its life,
 * far inferior in SAS capabilities and SAS representation
   again, due to the fact that it is MPT based.

Since the whole point of MPT is to _hide_ the transport.

> * Avoids existing SATA code, rather than working with it.

FUD!  Why?  It does _not_ use SATA code at all.

Why?  SATA devices are discovered on the domain, but
there is _no_ SATL in the kernel to represent them.

And libata is _not_ SATL.  The reasons are that
libata is closely coupled to the hardware, i.e.
ata_port.

While in SAS open transport architecures, you'd have
execute ATA/SAS/SMP task just as you have in aic-94xx.
Why? Because all the chip is, is an interface to the
interconect.

But I'm sure you know all this having looked at the
specs of BCM8603.

> * Avoids (rather than fix) several SCSI core false dependencies on HCIL. 
>   Results in code duplication and/or avoidance of needed code.

No, not true.  It _integrates_ with SCSI Core.  The sad truth
is that SCSI Core knows only HCIL.

Jeff, please be more specific.

> * So far, it's an Adaptec-only solution.  Since it pointedly avoids the 
> existing SAS transport code, this results in two SAS solutions in Linux: 
> one for Adaptec, one for {everyone else}.

Hmm, again: _architecture_.  And you have to stop these
accusations: "pointedly avoids the existing SAS transport code".

I repeat again that I had this code _long_ before Christoph
ever dreamt up SAS.  And he got my code via James B sometime
before OLS this year.  I think he got it July 12, 2005.

The question is: why didn't _he_ use the solution already
available?

You have to understand the differences between MPT and open
transport architecture.

At some point I thought Christoph seemed to have understood it.
Now I'm not sure any more.

Now since the open transport solution completely encompasses
and _absolves_ MPT, it is not hard for an MPT driver to
generate a bunch of events and use that infrastructure.

> * Maintainer reminds me of my ATA mentor, Andre Hedrick:  knows his 
> shit, but has difficulties working with the community.  May need a 
> filter if we want long term maintenance to continue.

I take offence in your liking me to Andre -- I don't know
Andre personally, but is seems that you're expressing personal
opinion against him, against me and labeling me in some way.

I take offence in that, Jeff.

Why are you making this a _political_ and personal game?

All you're doing is trying to aliken me to someone and
brandish me as someone I'm not.

This is rude, offensive and done in desperation.

Shall we concentrate on the _technical_ part of
the argument?

I repeat again: _technical_ part of the argument.

> Easy path: make Adaptec's solution a block driver, which allows it to 
> sidestep all the "doesn't play well with others" issues.  Still an 

What _exactly_ does it mean "don't play well with others"?

Do you mean:
 - the solution is far superiour to anything available now
 - it presents the SAS Domain in sysfs as it looks in
   the physical world,
 - does domain discovery and expander configuration,
 - allows for complete control of the domain to user space,
 - it pokes at SCSI Core's 20 year old relics.
 - it's a thorn in the flesh to other people striving for
   similar functionality.

Or do you mean:
 - it does not change a single line of code in the kernel,
 - does not break anything existing,
 - etc, etc.

> Adaptec-only solution, but at least its in a separate playpen.

I'm sure James Bottomley will move from SCSI Core to the block
layer as he did for IDR. hehehe :-)

And no, it is not Adaptec's only solution.  Your BCM8603 SAS
LLDD when you write it could use it without any problems.

> Hard path: Update the SCSI core and libata to work with SATA+SAS 
> hardware such as Adaptec's.

Cannot do for libata -- ever.  Why?  You know best: because
libata uses direct access to the hardware!  There is no
layered architecture.

What you need to do is to write a SATL layer, just as you can
see in SAT-r6, page 2, Figure 3.  I'm on top of this already.

But in order to do this you need a unified architecture
for accessing ATA devices.

Now libata, uses ata_port to do this, which is _hardware_
access.

The SAS Transport layer uses Execute SCSI RPC (defined
in SAM, provided by aic94xx) to do this.

So in effect, what SATL would end up to be is a
data transformation function.   But I digress...

> The hard path takes time, and won't be solved simply by shoving it in.

No, you can do it now.  It will not affect anyone or anything.
(Other than hurting a couple of people's pride.)

The code doesn't alter Linux SCSI or anyone else's behaviour.
It only _provides_ SAS support to the kernel.

Including it in as is would does not hurt anyone as you can
see here:
http://linux.adaptec.com/sas/git/

Concentrate on the _technical_ merit, let's be more specific.

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-27 22:51   ` Luben Tuikov
@ 2005-09-27 23:14     ` Andre Hedrick
  2005-09-28 11:37       ` Luben Tuikov
  2005-09-28  2:02     ` Jeff Garzik
  1 sibling, 1 reply; 112+ messages in thread
From: Andre Hedrick @ 2005-09-27 23:14 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Jeff Garzik, Linux Kernel Mailing List, Andrew Morton,
	Linus Torvalds, SCSI Mailing List


Luben,

Welcome to the club ...

You have managed to prove your knowledge base and forgot everything
learned in kindergarden.  Since I have kids, and spent time back in
kindergarden, there are some valuable lessons there many have forgotten.

>From what I have seen here, both sides have some valid points.

>From what I know from history and why I no longer maintain anything,
(working to get sanity back) is the Maintainer defines direction while
following a bigger picture.

The issues wrt to HCIL v/s WWN v/s Multiplier v/s Target-Mode v/s blahblah
blahblah are important questions.

Remember, everything about storage is a lie.

Help create a better lie by mapping into the design set forward by James
and company.  If the goal of Adaptec is to have support then they need to
buckup and play be to rules at hand.  Remember, most people are open to
new ideas and better models.  Propose one and you will find backing.

Since you are in the bay-area ... want to met who you have been associated
with ... or is the idea to weird?

Cheers,

Andre


On Tue, 27 Sep 2005, Luben Tuikov wrote:

> On 09/27/05 17:55, Jeff Garzik wrote:
> > * Avoids existing SAS code, rather than working with it.
> 
> No, it's the _other_ way around.  There is NO existing
> SAS code.
> 
> My SAS code has been around _long_ before Christophs
> code.
> 
> Christoph's code is
>  * MPT based only,
>  * doesn't follow a spec to save its life,
>  * far inferior in SAS capabilities and SAS representation
>    again, due to the fact that it is MPT based.
> 
> Since the whole point of MPT is to _hide_ the transport.
> 
> > * Avoids existing SATA code, rather than working with it.
> 
> FUD!  Why?  It does _not_ use SATA code at all.
> 
> Why?  SATA devices are discovered on the domain, but
> there is _no_ SATL in the kernel to represent them.
> 
> And libata is _not_ SATL.  The reasons are that
> libata is closely coupled to the hardware, i.e.
> ata_port.
> 
> While in SAS open transport architecures, you'd have
> execute ATA/SAS/SMP task just as you have in aic-94xx.
> Why? Because all the chip is, is an interface to the
> interconect.
> 
> But I'm sure you know all this having looked at the
> specs of BCM8603.
> 
> > * Avoids (rather than fix) several SCSI core false dependencies on HCIL. 
> >   Results in code duplication and/or avoidance of needed code.
> 
> No, not true.  It _integrates_ with SCSI Core.  The sad truth
> is that SCSI Core knows only HCIL.
> 
> Jeff, please be more specific.
> 
> > * So far, it's an Adaptec-only solution.  Since it pointedly avoids the 
> > existing SAS transport code, this results in two SAS solutions in Linux: 
> > one for Adaptec, one for {everyone else}.
> 
> Hmm, again: _architecture_.  And you have to stop these
> accusations: "pointedly avoids the existing SAS transport code".
> 
> I repeat again that I had this code _long_ before Christoph
> ever dreamt up SAS.  And he got my code via James B sometime
> before OLS this year.  I think he got it July 12, 2005.
> 
> The question is: why didn't _he_ use the solution already
> available?
> 
> You have to understand the differences between MPT and open
> transport architecture.
> 
> At some point I thought Christoph seemed to have understood it.
> Now I'm not sure any more.
> 
> Now since the open transport solution completely encompasses
> and _absolves_ MPT, it is not hard for an MPT driver to
> generate a bunch of events and use that infrastructure.
> 
> > * Maintainer reminds me of my ATA mentor, Andre Hedrick:  knows his 
> > shit, but has difficulties working with the community.  May need a 
> > filter if we want long term maintenance to continue.
> 
> I take offence in your liking me to Andre -- I don't know
> Andre personally, but is seems that you're expressing personal
> opinion against him, against me and labeling me in some way.
> 
> I take offence in that, Jeff.
> 
> Why are you making this a _political_ and personal game?
> 
> All you're doing is trying to aliken me to someone and
> brandish me as someone I'm not.
> 
> This is rude, offensive and done in desperation.
> 
> Shall we concentrate on the _technical_ part of
> the argument?
> 
> I repeat again: _technical_ part of the argument.
> 
> > Easy path: make Adaptec's solution a block driver, which allows it to 
> > sidestep all the "doesn't play well with others" issues.  Still an 
> 
> What _exactly_ does it mean "don't play well with others"?
> 
> Do you mean:
>  - the solution is far superiour to anything available now
>  - it presents the SAS Domain in sysfs as it looks in
>    the physical world,
>  - does domain discovery and expander configuration,
>  - allows for complete control of the domain to user space,
>  - it pokes at SCSI Core's 20 year old relics.
>  - it's a thorn in the flesh to other people striving for
>    similar functionality.
> 
> Or do you mean:
>  - it does not change a single line of code in the kernel,
>  - does not break anything existing,
>  - etc, etc.
> 
> > Adaptec-only solution, but at least its in a separate playpen.
> 
> I'm sure James Bottomley will move from SCSI Core to the block
> layer as he did for IDR. hehehe :-)
> 
> And no, it is not Adaptec's only solution.  Your BCM8603 SAS
> LLDD when you write it could use it without any problems.
> 
> > Hard path: Update the SCSI core and libata to work with SATA+SAS 
> > hardware such as Adaptec's.
> 
> Cannot do for libata -- ever.  Why?  You know best: because
> libata uses direct access to the hardware!  There is no
> layered architecture.
> 
> What you need to do is to write a SATL layer, just as you can
> see in SAT-r6, page 2, Figure 3.  I'm on top of this already.
> 
> But in order to do this you need a unified architecture
> for accessing ATA devices.
> 
> Now libata, uses ata_port to do this, which is _hardware_
> access.
> 
> The SAS Transport layer uses Execute SCSI RPC (defined
> in SAM, provided by aic94xx) to do this.
> 
> So in effect, what SATL would end up to be is a
> data transformation function.   But I digress...
> 
> > The hard path takes time, and won't be solved simply by shoving it in.
> 
> No, you can do it now.  It will not affect anyone or anything.
> (Other than hurting a couple of people's pride.)
> 
> The code doesn't alter Linux SCSI or anyone else's behaviour.
> It only _provides_ SAS support to the kernel.
> 
> Including it in as is would does not hurt anyone as you can
> see here:
> http://linux.adaptec.com/sas/git/
> 
> Concentrate on the _technical_ merit, let's be more specific.
> 
> 	Luben
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-27 22:51   ` Luben Tuikov
  2005-09-27 23:14     ` Andre Hedrick
@ 2005-09-28  2:02     ` Jeff Garzik
  2005-09-28 20:36       ` Luben Tuikov
  2005-09-29 19:37       ` Stefan Richter
  1 sibling, 2 replies; 112+ messages in thread
From: Jeff Garzik @ 2005-09-28  2:02 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

Luben Tuikov wrote:
> On 09/27/05 17:55, Jeff Garzik wrote:
> 
>>* Avoids existing SAS code, rather than working with it.

> No, it's the _other_ way around.  There is NO existing
> SAS code.

Incorrect, just look in the latest upstream kernel.


>>* Avoids existing SATA code, rather than working with it.
> 
> 
> FUD!  Why?  It does _not_ use SATA code at all.

That's the problem.


> Why?  SATA devices are discovered on the domain, but
> there is _no_ SATL in the kernel to represent them.
> 
> And libata is _not_ SATL.  The reasons are that

libata-scsi.c is the SAT translation layer.


>>* Avoids (rather than fix) several SCSI core false dependencies on HCIL. 
>>  Results in code duplication and/or avoidance of needed code.
> 
> 
> No, not true.  It _integrates_ with SCSI Core.  The sad truth
> is that SCSI Core knows only HCIL.

That's something that needs fixing, for SAS.


> I repeat again that I had this code _long_ before Christoph
> ever dreamt up SAS.  And he got my code via James B sometime
> before OLS this year.  I think he got it July 12, 2005.
> 
> The question is: why didn't _he_ use the solution already
> available?

Because it has the problems listed time and again.


> You have to understand the differences between MPT and open
> transport architecture.
> 
> At some point I thought Christoph seemed to have understood it.
> Now I'm not sure any more.
> 
> Now since the open transport solution completely encompasses
> and _absolves_ MPT, it is not hard for an MPT driver to
> generate a bunch of events and use that infrastructure.

The SAS transport class is designed to support both firmware-based 
devices like MPT, and non-firmware devices such as Adaptec.

Sure it might need patches -- send patches, work with people, rather 
than ignoring existing work.


>>* Maintainer reminds me of my ATA mentor, Andre Hedrick:  knows his 
>>shit, but has difficulties working with the community.  May need a 
>>filter if we want long term maintenance to continue.
> 
> 
> I take offence in your liking me to Andre -- I don't know
> Andre personally, but is seems that you're expressing personal
> opinion against him, against me and labeling me in some way.
> 
> I take offence in that, Jeff.
> 
> Why are you making this a _political_ and personal game?
> 
> All you're doing is trying to aliken me to someone and
> brandish me as someone I'm not.
> 
> This is rude, offensive and done in desperation.
> 
> Shall we concentrate on the _technical_ part of
> the argument?
> 
> I repeat again: _technical_ part of the argument.

We've been over the technical stuff time and again.  That's the 
maintainer problem.  We need someone who will listen to the community.


>>Easy path: make Adaptec's solution a block driver, which allows it to 
>>sidestep all the "doesn't play well with others" issues.  Still an 
> 
> 
> What _exactly_ does it mean "don't play well with others"?

It means not taking feedback, and working around rather than with the 
SCSI core.


>>Adaptec-only solution, but at least its in a separate playpen.
> 
> 
> I'm sure James Bottomley will move from SCSI Core to the block
> layer as he did for IDR. hehehe :-)
> 
> And no, it is not Adaptec's only solution.  Your BCM8603 SAS
> LLDD when you write it could use it without any problems.
> 
> 
>>Hard path: Update the SCSI core and libata to work with SATA+SAS 
>>hardware such as Adaptec's.
> 
> 
> Cannot do for libata -- ever.  Why?  You know best: because
> libata uses direct access to the hardware!  There is no
> layered architecture.

Then you don't understand the ->qc_{prep,issue} hooks.  That should get 
you 90% of the way there, if not 99%.


> What you need to do is to write a SATL layer, just as you can
> see in SAT-r6, page 2, Figure 3.  I'm on top of this already.

Re-read libata-scsi.c, and submit any patches you feel are needed.


> The code doesn't alter Linux SCSI or anyone else's behaviour.
> It only _provides_ SAS support to the kernel.

That's one of the problems: It should update the SCSI core.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-27 23:14     ` Andre Hedrick
@ 2005-09-28 11:37       ` Luben Tuikov
  2005-09-28 12:32         ` Matthew Wilcox
                           ` (2 more replies)
  0 siblings, 3 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-28 11:37 UTC (permalink / raw)
  To: Andre Hedrick, Luben Tuikov
  Cc: Jeff Garzik, Linux Kernel Mailing List, Andrew Morton,
	Linus Torvalds, SCSI Mailing List

Hi Andre,

--- Andre Hedrick <andre@linux-ide.org> wrote:
> From what I know from history and why I no longer maintain anything,
> (working to get sanity back) is the Maintainer defines direction while
> following a bigger picture.

Yes, and I think you'll agree with me, the Maintainer isn't/shouldn't
necessarily be the person "defining direction".  The reasons are
many but mostly:
  * Documentation/ManagingStyle document (valuable read),
That document _really_ says it _all_.  I suggest all developers, maintainers,
and corporate _management_ reading this thread to read it.

Why should the Maintainer be "defining direction"?  Is this some
religous cult where "Beaver knows best?" (punt intended!)
Or is this a theocratic society here at Linux SCSI? "Pi = 3" ;-)

The maintainership role is and has been _clearly_ defined!  For the
sake of eveyone else, take a look at 2.4 maintainer, 2.6 maintainer,
other subsystem maintainers: defined by example and in word.
So much unlike SCSI Core.

Another also great reason is:
  * Complete, utter and infinite _incompetence_ coupled with too much pride.
It hurts us all.

When it comes down to it SCSI Core is 20 years behind and thus Linux Storage
is 20 years behind.

> Help create a better lie by mapping into the design set forward by James
> and company.  If the goal of Adaptec is to have support then they need to

Yes, this is indeed a very valuable advice.  I hadn't ever looked at it
like that.

What I thought, albeit erroneously, mea culpa, is that Linux actually
_wanted_ to be "the storage OS of choice".  Now I see and realize that
due to neglected management, Linux has very little to do with _storage_.

Linux need to thank the mutitude of storage ignorant customers
willing to pay the buck, because it is _Linux_ (put gasping sound here).

Linux _can_ be the "storage OS of choice", but this will not happen
through neglect, or sheer incompetence coupled with lots of pride.

Back on topic: I'll try to keep up this "Linux storage lie" set forth
by the james-bottomleys of the Linux community.

> buckup and play be to rules at hand.  Remember, most people are open to
> new ideas and better models.  Propose one and you will find backing.

I never have found backing.  It is all in the archives of linux-scsi
mailing list.  What happens is that even if people like your idea
and write to you _privately_ to tell you that they like your
idea, somewhere in their email, they tell you not to cross-post
their message to the list because they have storage products which
need Linux.  The reason for this is that James Bottomley has established
this politics that if you don't agree to his antics, your patches are
never ever going in.  Why else do you think IBM-ers agree with him that
Linux SCSI doesn't need 64 bit LUNS?

_But_ I'm willing to try _again_.  So I'll be proposing something
later this morning.  (You know, all engineers are optimists.)

       Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 11:37       ` Luben Tuikov
@ 2005-09-28 12:32         ` Matthew Wilcox
  2005-09-28 14:50           ` Linus Torvalds
  2005-09-28 16:27         ` Patrick Mansfield
  2005-09-28 16:30         ` Valdis.Kletnieks
  2 siblings, 1 reply; 112+ messages in thread
From: Matthew Wilcox @ 2005-09-28 12:32 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Andre Hedrick, Luben Tuikov, Jeff Garzik,
	Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

On Wed, Sep 28, 2005 at 04:37:03AM -0700, Luben Tuikov wrote:
> Yes, and I think you'll agree with me, the Maintainer isn't/shouldn't
> necessarily be the person "defining direction".  The reasons are
> many but mostly:
>   * Documentation/ManagingStyle document (valuable read),
> That document _really_ says it _all_.  I suggest all developers, maintainers,
> and corporate _management_ reading this thread to read it.

Dude, that document is written in a very tongue-in-cheek style.  There's
a few clues:

"the preferred (or made up, depending on who you ask) management style"

"this document may or may not have anything to do with reality.  It
 started as a lark"

It's really not a club for you to beat James with.


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 12:32         ` Matthew Wilcox
@ 2005-09-28 14:50           ` Linus Torvalds
  2005-09-30  1:56             ` Junio C Hamano
  0 siblings, 1 reply; 112+ messages in thread
From: Linus Torvalds @ 2005-09-28 14:50 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Luben Tuikov, Andre Hedrick, Luben Tuikov, Jeff Garzik,
	Linux Kernel Mailing List, Andrew Morton, SCSI Mailing List



On Wed, 28 Sep 2005, Matthew Wilcox wrote:
> 
> Dude, that document is written in a very tongue-in-cheek style.

True, true. But sometimes you can say painful truths more easily if you do 
it as a joke. Most of the ManagementStyle document is perfectly valid.

Whether it has any bearing on this discussion is another matter ;)

		Linus

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 11:37       ` Luben Tuikov
  2005-09-28 12:32         ` Matthew Wilcox
@ 2005-09-28 16:27         ` Patrick Mansfield
  2005-09-28 16:34           ` Luben Tuikov
  2005-09-28 19:45           ` Andre Hedrick
  2005-09-28 16:30         ` Valdis.Kletnieks
  2 siblings, 2 replies; 112+ messages in thread
From: Patrick Mansfield @ 2005-09-28 16:27 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Andre Hedrick, Luben Tuikov, Jeff Garzik,
	Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

On Wed, Sep 28, 2005 at 04:37:03AM -0700, Luben Tuikov wrote:

> never ever going in.  Why else do you think IBM-ers agree with him that
> Linux SCSI doesn't need 64 bit LUNS?

Please stop repeating that, no one said we should *not* implement a 64 bit
LUN in linux scsi, and James posted a patch for 64 bit LUN. I posted a
clarification in response to your earlier postings, you seem to have
ignored or forgotten this post:

http://marc.theaimsgroup.com/?l=linux-scsi&m=112671847228275&w=2

I said:

"I am talking about the scsi spec, not the code. IMO linux scsi code
should support W_LUN and 64 bit LUN."

-- Patrick Mansfield

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 11:37       ` Luben Tuikov
  2005-09-28 12:32         ` Matthew Wilcox
  2005-09-28 16:27         ` Patrick Mansfield
@ 2005-09-28 16:30         ` Valdis.Kletnieks
  2005-09-28 16:35           ` Luben Tuikov
  2 siblings, 1 reply; 112+ messages in thread
From: Valdis.Kletnieks @ 2005-09-28 16:30 UTC (permalink / raw)
  To: ltuikov
  Cc: Andre Hedrick, Luben Tuikov, Jeff Garzik,
	Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

[-- Attachment #1: Type: text/plain, Size: 1026 bytes --]

On Wed, 28 Sep 2005 04:37:03 PDT, Luben Tuikov said:

> When it comes down to it SCSI Core is 20 years behind and thus Linux Storage
> is 20 years behind.

Hmm.. 20 years ago I was hooking Fujitsu Super-Eagles to Sun3/280 servers.
If you're going to claim that the current SCSI core is *that* far behind, you're
going to have to back it up.  Remember that making exaggerated claims is a good
way to make people not listen to the *rest* of your message.

Seen in include/scsi/scsi.h:

        /*
         * FIXME: bit0 is listed as reserved in SCSI-2, but is
         * significant in SCSI-3.  For now, we follow the SCSI-2
         * behaviour and ignore reserved bits.
         */

So obviously, it's at least the number of years since SCSI-3 was defined,
but no more than the time since SCSI-2.  According to http://home.comcast.net/~SCSIguy/SCSI_FAQ/scsifaq.html
SCSI-2 devices started showing up in 1988, and X3.131-1994 came out in 1994.
1996 saw the first SCSI-3 proposals.

I'll give you *one* decade, but not two. :)


[-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --]

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 16:27         ` Patrick Mansfield
@ 2005-09-28 16:34           ` Luben Tuikov
  2005-09-28 19:45           ` Andre Hedrick
  1 sibling, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-28 16:34 UTC (permalink / raw)
  To: Patrick Mansfield
  Cc: Luben Tuikov, Andre Hedrick, Jeff Garzik,
	Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

On 09/28/05 12:27, Patrick Mansfield wrote:
> On Wed, Sep 28, 2005 at 04:37:03AM -0700, Luben Tuikov wrote:
> 
> 
>>never ever going in.  Why else do you think IBM-ers agree with him that
>>Linux SCSI doesn't need 64 bit LUNS?
> 
> 
> Please stop repeating that, no one said we should *not* implement a 64 bit
> LUN in linux scsi, and James posted a patch for 64 bit LUN. I posted a
> clarification in response to your earlier postings, you seem to have
> ignored or forgotten this post:
> 
> http://marc.theaimsgroup.com/?l=linux-scsi&m=112671847228275&w=2

Sorry.

I was refering to the bottom of this email:
http://marc.theaimsgroup.com/?l=linux-scsi&m=112665156918643&w=2

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 16:30         ` Valdis.Kletnieks
@ 2005-09-28 16:35           ` Luben Tuikov
  0 siblings, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-28 16:35 UTC (permalink / raw)
  To: Valdis.Kletnieks
  Cc: ltuikov, Andre Hedrick, Jeff Garzik, Linux Kernel Mailing List,
	Andrew Morton, Linus Torvalds, SCSI Mailing List

On 09/28/05 12:30, Valdis.Kletnieks@vt.edu wrote:
> On Wed, 28 Sep 2005 04:37:03 PDT, Luben Tuikov said:
> 
> 
>>When it comes down to it SCSI Core is 20 years behind and thus Linux Storage
>>is 20 years behind.
> 
> 
> Hmm.. 20 years ago I was hooking Fujitsu Super-Eagles to Sun3/280 servers.
> If you're going to claim that the current SCSI core is *that* far behind, you're
> going to have to back it up.  Remember that making exaggerated claims is a good
> way to make people not listen to the *rest* of your message.
> 
> Seen in include/scsi/scsi.h:
> 
>         /*
>          * FIXME: bit0 is listed as reserved in SCSI-2, but is
>          * significant in SCSI-3.  For now, we follow the SCSI-2
>          * behaviour and ignore reserved bits.
>          */
> 
> So obviously, it's at least the number of years since SCSI-3 was defined,
> but no more than the time since SCSI-2.  According to http://home.comcast.net/~SCSIguy/SCSI_FAQ/scsifaq.html
> SCSI-2 devices started showing up in 1988, and X3.131-1994 came out in 1994.
> 1996 saw the first SCSI-3 proposals.
> 
> I'll give you *one* decade, but not two. :)

Ok, I'll take that.

BTW, I was referring to the _architecture_ of SCSI Core.

It hasn't seen any _innovation_ for the last 5 years
as far as SCSI or Storage is concerned.

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 16:27         ` Patrick Mansfield
  2005-09-28 16:34           ` Luben Tuikov
@ 2005-09-28 19:45           ` Andre Hedrick
  2005-09-28 20:56             ` Luben Tuikov
  1 sibling, 1 reply; 112+ messages in thread
From: Andre Hedrick @ 2005-09-28 19:45 UTC (permalink / raw)
  To: Patrick Mansfield
  Cc: Luben Tuikov, Jeff Garzik, Linux Kernel Mailing List,
	Andrew Morton, Linus Torvalds, SCSI Mailing List


Hi Patrick,

You have hit on one of the key word of my downfall.

Specifications!!!

I believe in them and they are the inflexable state machine which all OSes
are required to address.  Linux has a very bad history of avoiding the
boundary conditions related to storage.

I am for following the rules of the spec, and will bet Linus would now
agree more so than before.  The problem is SCSI is a strange beast without
a formal FSM.  It is more of a BusPhase psuedo stated transport.  It is
smart enough to laugh at bad software designs and keep going.  Sheesh,
look at M$'s miniport.

This leads me to a point where a similar (but smarter) miniport could look
interesting.  However, this is also where the transport classes have their
bases, afaics.  Anyone please correct me where I have mistated (other than
Linus, :-p).

Luben, I have a vested interest in seeing SAS run via SCSI.  So this means
you have one ex-demi-god from the world of maintainers looking to pull you
have towards the current path and open to ideas and willing to back a
better design and push it.

Cheers,

Andre Hedrick
LAD Storage Consulting Group

On Wed, 28 Sep 2005, Patrick Mansfield wrote:

> On Wed, Sep 28, 2005 at 04:37:03AM -0700, Luben Tuikov wrote:
> 
> > never ever going in.  Why else do you think IBM-ers agree with him that
> > Linux SCSI doesn't need 64 bit LUNS?
> 
> Please stop repeating that, no one said we should *not* implement a 64 bit
> LUN in linux scsi, and James posted a patch for 64 bit LUN. I posted a
> clarification in response to your earlier postings, you seem to have
> ignored or forgotten this post:
> 
> http://marc.theaimsgroup.com/?l=linux-scsi&m=112671847228275&w=2
> 
> I said:
> 
> "I am talking about the scsi spec, not the code. IMO linux scsi code
> should support W_LUN and 64 bit LUN."
> 
> -- Patrick Mansfield
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28  2:02     ` Jeff Garzik
@ 2005-09-28 20:36       ` Luben Tuikov
  2005-09-28 21:00         ` Jeff Garzik
  2005-09-29 19:37       ` Stefan Richter
  1 sibling, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-09-28 20:36 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

On 09/27/05 22:02, Jeff Garzik wrote:
> Luben Tuikov wrote:
> 
>>On 09/27/05 17:55, Jeff Garzik wrote:
>>
>>
>>>* Avoids existing SAS code, rather than working with it.
> 
> 
>>No, it's the _other_ way around.  There is NO existing
>>SAS code.
> 
> 
> Incorrect, just look in the latest upstream kernel.

Yes, because it was Christoph's code submitted right after
I submitted and JB took his code right in.

Again, I had the infrastructure ready _before_ OLS.

> libata-scsi.c is the SAT translation layer.

Not quite.

It has potential to become SATL but at its current
form it cannot be:

int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
{
	struct ata_port *ap;
	struct ata_device *dev;
	struct scsi_device *scsidev = cmd->device;

	ap = (struct ata_port *) &scsidev->host->hostdata[0];

If I want to use that I have to _simulate_ ata_port.
Furthermore, scsidev->host->hostdata may not point
to ata_port for SATA devices over a different transport.

Ideally SATL is just a _data transformation function_ and
getting to the ATA device is transport dependent.

Jeff, would you be accepting patches?

>>No, not true.  It _integrates_ with SCSI Core.  The sad truth
>>is that SCSI Core knows only HCIL.
> 
> 
> That's something that needs fixing, for SAS.

Would you be accepting patches for the creation,
and use of "struct scsi_domain_device { ... }"?

This would be a "SCSI Device with a Z Port".
Z could be target or initiator (most likely just T).

Then for each scsi_domain_device, SCSI Core does
REPORT LUNS and then INQUIRY for each LU it found.

The old (current) code would still say as is, unchanged,
since it supports older, broken hardware.

Would you be accepting patches for this?

>>I repeat again that I had this code _long_ before Christoph
>>ever dreamt up SAS.  And he got my code via James B sometime
>>before OLS this year.  I think he got it July 12, 2005.
>>
>>The question is: why didn't _he_ use the solution already
>>available?
> 
> 
> Because it has the problems listed time and again.

What problems when there was no other code around.

Look at it this way: _their_ code doesn't integrate
with ours.  See?

I simply cannot take an argument like this:
   "Because it has the problems listed time and again."

You have to be specific.

> The SAS transport class is designed to support both firmware-based 
> devices like MPT, and non-firmware devices such as Adaptec.

No, it never has been.  It is an _attribute_ exporting framework
only.

If you understood how different those architectures are,
you'd understand what I mean.

> Sure it might need patches -- send patches, work with people, rather 
> than ignoring existing work.

I do not _know_ how to consolidate the completely broken
"design" set forth by JB and company.

It is _completely_ not to SAM spec.

Exporting attributes from MPT-based drivers is not the same
as managing a transport.

I repeat again:
  * MPT _hides_ the transport and the managment
    of the transport from you -- so in effect there is
    nothing to manage.
  * MPT gives you Logical Units to work with, NOT ever domain
    devices or anyhing domain like.
  * MPT gives you a SAM/SPC hook to hook _right_ into SCSI Core.

_This_ is why their LLDD _can_ use the host template.

But an AIC-94xx and BCM8603 _is_ NOT a scsi_host material.  It is just
an interface to the interconnect.

To convince yourself of this: take a look at the _members_ of
the scsi host/scsi host template: nothing in that structure is
presented in the chip -- UNLIKE old Parallel SCSI device drivers.

The scsi host template was written to cater to _old_ (then new)
Parallel SCSI drivers!  Times have changed!  Time to evolve.

> We've been over the technical stuff time and again.  That's the 
>  maintainer problem. 

No we haven't been over the technical stuff time and again.

> We need someone who will listen to the community.

I bet you're melting people's hearts when they read this.

So to summarize for corporate management what you're saying
here is:
  - you're saying that I do not listen to "the community",
  - you're saying that I'm an _outsider_ to "the community",
  - you're saying that I'm no good to work with you, since
    you are part of that community but not me.

That is you cannot take it that someone will tell 
"the community" anything.  "The community" knows all and it
knows best.

So in effect there are no good and knowlegable engineers
anywhere but in the "Linux community".

That is there is no people with new ideas, better ideas,
innovative ideas, more knowlege about certain subject matter,
_anywhere_ but in the "Linux community".

So in effect, there will never be an "outsider" who will
come in to the "linux community" and change things around,
no fresh ideas, no better (right?) way to do things.

"The community" is not going to listen to anyone but only to
already politically established members on _any_ subject
matter, even technical, even from "outsiders" who work with
the technology every day.

>>What _exactly_ does it mean "don't play well with others"?
> 
> 
> It means not taking feedback, and working around rather than with the 
> SCSI core.

So does this mean, that if I submit patches "fixing" (oops,
not meant to hurt anyone's bal^w^w^wpride) SCSI Core, they
will be accepted.

Or do you want me to do "your way of SAS"?
Maybe JB et al, should write the "Linux SAS spec" and
then we can recommend this to T10.org, so they can scrap
their version and use "the community's"?

I hear there was such a suggestion on the mailing lists
for ATA and T13.org, but I'm sure I'm misunderstanding
something here as usual.

> Then you don't understand the ->qc_{prep,issue} hooks.  That should get 
> you 90% of the way there, if not 99%.

But I have to simulate struct ata_port, Jeff.

Which isn't so bad, but speaks about the design.

>>What you need to do is to write a SATL layer, just as you can
>>see in SAT-r6, page 2, Figure 3.  I'm on top of this already.
> 
> Re-read libata-scsi.c, and submit any patches you feel are needed.

Will do.

>>The code doesn't alter Linux SCSI or anyone else's behaviour.
>>It only _provides_ SAS support to the kernel.
> 
> 
> That's one of the problems: It should update the SCSI core.

Thank you for admitting this -- you're the first and only
member of "the community" (since I'm not a member apparently)
to admit this.

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 19:45           ` Andre Hedrick
@ 2005-09-28 20:56             ` Luben Tuikov
  2005-09-28 22:35               ` Willy Tarreau
  2005-09-28 22:43               ` Andre Hedrick
  0 siblings, 2 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-28 20:56 UTC (permalink / raw)
  To: Andre Hedrick
  Cc: Patrick Mansfield, Luben Tuikov, Jeff Garzik,
	Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

On 09/28/05 15:45, Andre Hedrick wrote:
> Hi Patrick,
> 
> You have hit on one of the key word of my downfall.
> 
> Specifications!!!
> 
> I believe in them and they are the inflexable state machine which all OSes
> are required to address.

Me too.  I live and breathe by them.

> I am for following the rules of the spec, and will bet Linus would now
> agree more so than before.

Me too.

An interesting thing which "the community" would appreciate is
that M$ has aggressively started to "go by the spec" as far
as SCSI is concerned.

Ding-ding!

> The problem is SCSI is a strange beast without
> a formal FSM.  It is more of a BusPhase psuedo stated transport.  It is

Oh, no, no, no!  So much has changed Andre.

Just take a look at SAM, and I'm sure that you'll appreciate the object
oriented design, the abstractions, etc.  Really!

Recently all new protocols follow _explicit_ state machine definitions
at each layer they define, and how it interacts with the layer
above and below again by FSMs.  It's all a good thing.

> Luben, I have a vested interest in seeing SAS run via SCSI.  So this means
> you have one ex-demi-god from the world of maintainers looking to pull you
> have towards the current path and open to ideas and willing to back a
> better design and push it.

Ok, thanks Andre.  Much appreciated.

You are the first person to back me up _publicly_.  Now if we
can find a person from "the community" to do that, and get all
the other people who've written me _privately_, we'd be in
good shape.

	Luben
P.S. Not sure if you have seen this link:
http://linux.adaptec.com/sas/



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 20:36       ` Luben Tuikov
@ 2005-09-28 21:00         ` Jeff Garzik
  2005-09-28 22:10           ` Luben Tuikov
  0 siblings, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-09-28 21:00 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

Luben Tuikov wrote:
> Ideally SATL is just a _data transformation function_ and
> getting to the ATA device is transport dependent.

Incorrect.  It needs to issue multiple ATA commands to emulate a single 
SCSI command, cache some state, and other details.  Not purely data 
transformation.


> Jeff, would you be accepting patches?

Yes.  That's what I mean when I say "submit patches".


>>>No, not true.  It _integrates_ with SCSI Core.  The sad truth
>>>is that SCSI Core knows only HCIL.
>>
>>
>>That's something that needs fixing, for SAS.
> 
> 
> Would you be accepting patches for the creation,
> and use of "struct scsi_domain_device { ... }"?
> 
> This would be a "SCSI Device with a Z Port".
> Z could be target or initiator (most likely just T).
> 
> Then for each scsi_domain_device, SCSI Core does
> REPORT LUNS and then INQUIRY for each LU it found.
> 
> The old (current) code would still say as is, unchanged,
> since it supports older, broken hardware.
> 
> Would you be accepting patches for this?

What needs to happen is that SPI-specific stuff in the SCSI core needs 
to be moved to SPI-specific transport code.

Then all transports will be at an equal level, and the SCSI core will be 
fully transport-agnostic.


>>>I repeat again that I had this code _long_ before Christoph
>>>ever dreamt up SAS.  And he got my code via James B sometime
>>>before OLS this year.  I think he got it July 12, 2005.
>>>
>>>The question is: why didn't _he_ use the solution already
>>>available?
>>
>>
>>Because it has the problems listed time and again.
> 
> 
> What problems when there was no other code around.
> 
> Look at it this way: _their_ code doesn't integrate
> with ours.  See?
> 
> I simply cannot take an argument like this:
>    "Because it has the problems listed time and again."
> 
> You have to be specific.

"time and again" means that we have been specific multiple times. 
Re-read your emails from James and Christoph :)


>>The SAS transport class is designed to support both firmware-based 
>>devices like MPT, and non-firmware devices such as Adaptec.
> 
> 
> No, it never has been.  It is an _attribute_ exporting framework
> only.
> 
> If you understood how different those architectures are,
> you'd understand what I mean.

James is wrong here.  The "transport class" in reality winds up as a 
transport lib, in addition to simply exporting attributes.

There will always be functions that are common to a transport. 
Christoph calls this "libsas", since software-driven SAS implementations 
will share this transport code, but not necessarily all SAS 
implementations (MPT, qla etc.).


>>Sure it might need patches -- send patches, work with people, rather 
>>than ignoring existing work.
> 
> 
> I do not _know_ how to consolidate the completely broken
> "design" set forth by JB and company.
> 
> It is _completely_ not to SAM spec.

Not true.  Just because SCSI core lacks an explicit "execute SCSI 
command" RPC hook, does not imply that that capability is non-existent.

Stare at the Scsi_Host_Template some more and you'll see it.


> Exporting attributes from MPT-based drivers is not the same
> as managing a transport.
> 
> I repeat again:
>   * MPT _hides_ the transport and the managment
>     of the transport from you -- so in effect there is
>     nothing to manage.
>   * MPT gives you Logical Units to work with, NOT ever domain
>     devices or anyhing domain like.
>   * MPT gives you a SAM/SPC hook to hook _right_ into SCSI Core.
> 
> _This_ is why their LLDD _can_ use the host template.
> 
> But an AIC-94xx and BCM8603 _is_ NOT a scsi_host material.  It is just
> an interface to the interconnect.

A scsi_host is simply a container.  You're being too literal.


> To convince yourself of this: take a look at the _members_ of
> the scsi host/scsi host template: nothing in that structure is
> presented in the chip -- UNLIKE old Parallel SCSI device drivers.
> 
> The scsi host template was written to cater to _old_ (then new)
> Parallel SCSI drivers!  Times have changed!  Time to evolve.

Yes.  We need to evolve the SCSI core to separate out SPI-specific 
pieces, to make it more transport-agnostic.


>>We've been over the technical stuff time and again.  That's the 
>> maintainer problem. 
> 
> 
> No we haven't been over the technical stuff time and again.
> 
> 
>>We need someone who will listen to the community.
> 
> 
> I bet you're melting people's hearts when they read this.
> 
> So to summarize for corporate management what you're saying
> here is:
>   - you're saying that I do not listen to "the community",

correct


>   - you're saying that I'm an _outsider_ to "the community",

irrelevant


>   - you're saying that I'm no good to work with you, since
>     you are part of that community but not me.

irrelevant


> That is you cannot take it that someone will tell 
> "the community" anything.  "The community" knows all and it
> knows best.
> 
> So in effect there are no good and knowlegable engineers
> anywhere but in the "Linux community".
> 
> That is there is no people with new ideas, better ideas,
> innovative ideas, more knowlege about certain subject matter,
> _anywhere_ but in the "Linux community".
> 
> So in effect, there will never be an "outsider" who will
> come in to the "linux community" and change things around,
> no fresh ideas, no better (right?) way to do things.
> 
> "The community" is not going to listen to anyone but only to
> already politically established members on _any_ subject
> matter, even technical, even from "outsiders" who work with
> the technology every day.

overreaction


>>>What _exactly_ does it mean "don't play well with others"?
>>
>>
>>It means not taking feedback, and working around rather than with the 
>>SCSI core.
> 
> 
> So does this mean, that if I submit patches "fixing" (oops,
> not meant to hurt anyone's bal^w^w^wpride) SCSI Core, they
> will be accepted.

James and Christoph have been asking you to submit patches for a long 
time now.


> Or do you want me to do "your way of SAS"?
> Maybe JB et al, should write the "Linux SAS spec" and
> then we can recommend this to T10.org, so they can scrap
> their version and use "the community's"?

You're over-reacting.


>>Then you don't understand the ->qc_{prep,issue} hooks.  That should get 
>>you 90% of the way there, if not 99%.
> 
> 
> But I have to simulate struct ata_port, Jeff.
> 
> Which isn't so bad, but speaks about the design.

You have to provide a means to submit ATA commands and receive results, 
no more or less.


>>>The code doesn't alter Linux SCSI or anyone else's behaviour.
>>>It only _provides_ SAS support to the kernel.

>>That's one of the problems: It should update the SCSI core.

> Thank you for admitting this -- you're the first and only
> member of "the community" (since I'm not a member apparently)
> to admit this.

James, Christoph and the rest of linux-scsi have been saying this over 
and over again.

You need to update the SCSI core properly, rather than working around it.

Everybody knows the SCSI core is too SPI-centric, and you have been 
given a recipe for fixing this.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 21:00         ` Jeff Garzik
@ 2005-09-28 22:10           ` Luben Tuikov
  2005-09-28 23:04             ` Jeff Garzik
  0 siblings, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-09-28 22:10 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

On 09/28/05 17:00, Jeff Garzik wrote:
> Luben Tuikov wrote:
> 
>>Ideally SATL is just a _data transformation function_ and
>>getting to the ATA device is transport dependent.
> 
> 
> Incorrect.  It needs to issue multiple ATA commands to emulate a single 
> SCSI command, cache some state, and other details.  Not purely data 
> transformation.

Yes, this is right and I'm aware of it.  I really, really,
had some wishful thinking.

> What needs to happen is that SPI-specific stuff in the SCSI core needs 
> to be moved to SPI-specific transport code.
> 
> Then all transports will be at an equal level, and the SCSI core will be 
> fully transport-agnostic.

Yeah, I've been saying this for ages:
Read half way through my message from 2003 here:
http://marc.theaimsgroup.com/?l=linux-scsi&m=104257405408078&w=2

> "time and again" means that we have been specific multiple times. 
> Re-read your emails from James and Christoph :)

So you're saying that they are right and I'm wrong,
and I should listen to them.

Which is _exactly_ what I've been pointing out:
"the community" thinks that only they are the
experts on the planet regarding new technologies,
thus they are right, engineers "outside the community"
are dead wrong and they should listen to what
"the community" says.

Shall I point out a multitude of emails whereby some
"community members" go out on _technology_ public lists
and start a flame war, until they are warned to behave
or be expelled?  Is this what you mean the "they" are
right, and "we" are wrong?

The community calls specs "techno-gibberish"
and think that LUNs can be u64, that REQUEST SENSE
clears ACA, and that HCIL is here for ever, etc.

Excuse me if I simply ignore their "SCSI storage advice".

>>If you understood how different those architectures are,
>>you'd understand what I mean.
> 
> 
> James is wrong here.

Either you meant "Luben" here or you've been banned
forever from "the community" and your patches would never
ever be accepted.

> The "transport class" in reality winds up as a 
> transport lib, in addition to simply exporting attributes.
> 
> There will always be functions that are common to a transport. 
> Christoph calls this "libsas", since software-driven SAS implementations 

Look at the pictures (since its easier) in SAM/SAS/SPC.
It is not a "lib" it is a _layer_ in its own right,
which is completely and fully implemented in the FW
of an MPT-like (IOP in package) solution.

Access to _anything_ transport specific is _FIRMWARE_
specific and doesn't yield to unification as does
a SAS Transport Layer management.

The only unification you get is: "Here is a LLDD giving
you LUs to manage, and oh yeah, here is some FIRMWARE
dependent way to peek at the transport and transport
attributes".

>> I do not _know_ how to consolidate the completely broken
>> "design" set forth by JB and company.
>> 
>>It is _completely_ not to SAM spec.
> 
> Not true.  Just because SCSI core lacks an explicit "execute SCSI 
> command" RPC hook, does not imply that that capability is non-existent.
> 
> Stare at the Scsi_Host_Template some more and you'll see it.

Well, then, how can I reply to this?

I say "1+1=2", you say "Not true.  1+1=3."

Show me the equivalence between the Scsi_Host_Template
and SAM, give me section references as well.

What I meant is that the place and design of JB's transport
attribute "blessing" is completely out of whack for SAM
abiding implementation.

Look at the pictures: the transport layer is _below_
the application client and the application client
is completely unaware of the transport.

Now lets translate (http://www.t10.org/scsi-3.gif) :
    Command set drivers  <-->  sd, st, etc (application client)
                SAM/SPC  <-->  SCSI Core to be
        Transport layer  <-->  SAS (all others implemented in LLDD)
                    SDS  <-->  LLDD + Firmware
           Interconnect  <-->  Firmware + hardware.

It is _this_ SAM architecture which allows you to say,
send SATA commands over SAS links (via STP), and do other
interesting things.

I guarantee you that any _new_ SCSI transport would yield
to a Transport Layer abstraction just as SAS does.

Since, this is what SAM _is_ (all about).

I don't mind James Bottomley entertaining his
"transport attribute" code, as long as he's not shoving
it down my throat (again because of pictures like the one
above).

As I've said before both implementations are _orthogonal_
and can coexist.

>>But an AIC-94xx and BCM8603 _is_ NOT a scsi_host material.  It is just
>>an interface to the interconnect.
> 
> A scsi_host is simply a container.  You're being too literal.

By "too literal" do you mean "following specs too closely",
or do you mean "being realistic without tweaking things".

> Yes.  We need to evolve the SCSI core to separate out SPI-specific 
> pieces, to make it more transport-agnostic.

2003:
http://marc.theaimsgroup.com/?l=linux-scsi&m=104257405408078&w=2

> James and Christoph have been asking you to submit patches for a long 
> time now.

Not patches to fix SCSI Core or to get "struct scsi_domain_device"
into SCSI Core or to get 64 bit LUNs into the kenrel.

They've been asking me for me to abandon the complete
SAS transport layer which I have, which is 1000 years ahead
of theirs and ahead of SCSI Core and to go and work
on LSI's and on "transport attributes".

Sorry, but SAM seems to disagree.

> James, Christoph and the rest of linux-scsi have been saying this over 
> and over again.

They've never said it: why else do you think we do not
have 64 bit LUNS or why else do you think we have HCIL in
SCSI Core.

Instead, what James does is he goes off to implement
"transport attributes" and to submit patches to IDR
after I myself submitted patches to IDR?  Why?  So he can
undermine my patches?  Well, as you can see I completely
removed IDR's usage from aic94xx.  Now "the community" is happy.

> Everybody knows the SCSI core is too SPI-centric, and you have been 
> given a recipe for fixing this.

I "have been given recipe for fixing this"?

Are you all right Jeff?

Yep, the recipe was given to me by people who think that
we should stay with HCIL, who have found purpose for
the "second channel" in HCIL, who think that REQUEST SENSE
clears ACA, who think that 64 bit LUN is just a waste, and
so forth with their antics.

So excuse me if I don't see or recognize the recipe
given to me.  Mind pointing out a link?  This way we
will have a hard coded evidence of what that recipe is.
And we can see the exact steps it outlines.

Thank you,
	Luben



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 20:56             ` Luben Tuikov
@ 2005-09-28 22:35               ` Willy Tarreau
  2005-09-28 23:22                 ` Jeff Garzik
  2005-09-29 14:33                 ` Luben Tuikov
  2005-09-28 22:43               ` Andre Hedrick
  1 sibling, 2 replies; 112+ messages in thread
From: Willy Tarreau @ 2005-09-28 22:35 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Andre Hedrick, Patrick Mansfield, Luben Tuikov, Jeff Garzik,
	Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

Hi all, hi Luben,

On Wed, Sep 28, 2005 at 04:56:20PM -0400, Luben Tuikov wrote:
(...)
> Ok, thanks Andre.  Much appreciated.
> 
> You are the first person to back me up _publicly_.  Now if we
> can find a person from "the community" to do that, and get all
> the other people who've written me _privately_, we'd be in
> good shape.

I'm sure I'm not one of those who qualify best here, but having largely
contributed to Linux acceptance at critical points at a handful of big
customers here, I'd like to send some general feeling I get from there.

There are people buying expensive hardware. The type of hardware
that costs $100k for just a few CPUs. Those people don't buy "the
Adaptec XXX which runs best with Red Hat Enterprise" nor the "LSI
YYY which runs best with Solaris", they buy a few $100k systems
with 3 TB disk to store their monthly logs. They cannot even imagine
that the hardware in the $100k system will not be fully supported by
some recent OS, that's just plain silly. The OS cost is just a water
drop in the middle of this. When they install Solaris on it because
they're used to run it, it just works. When I sometimes just show
them that Solaris is not adequate for daily greps in logs, and I show
them how faster it is on a $1k Linux machine in the next rack, they
feel they can switch to it easily. But if they discover that this
system does not correctly support their $100k hardware, do you know
which one was is the crap ? the $300 Red Hat or the $100k hardware ?
[ oh, BTW, I forgot to tell you : they say "Red Hat", and not "Linux"
because it does not sound like what they long considered an OS for
tamagotchis - to use their own words - :-( ]

And when they go to adaptec site to find latest drivers and they only
find patches which forces them to find another Linux to install the
sources and guess how to patch and build, do you know which OS they
consider as hobbyist's ? The Red Hat ! (which they can call "Linux"
again then).

For those reasons, I could put Linux there on very specific places,
mostly firewalls and load-balancers. A self-made distro with kernel
2.4 with patch-o-matic still is one of the most powerful and reliable
firewalls around, and at only a few bucks. The same hardened install
is used for load-balancers with my proxy. Seeing that the proxies
have been stable for years, they bought between 50-100 RHEL licences.
But that's all. Nowhere you will find anything serious using Linux in
other areas. It's already a nightmare for them to get a hardware RAID
card working while they just have to click on stupid icons in Windows
to do the same. Right now, new Linux-based machines are turning back
to plain IDE. SCSI was too much boring for them and not needed to do
just networking. Period.

When they will buy hundreds of TB of SAS-based racks in the next few
years, and they will learn the hard way that Linux does not even see
them as disks, it will be too late to give my preferred OS a second
chance.

Hans Reiser once said that every software needs a complete rewrite
every 3 or 5 years (I don't precisely remember). I tend to agree
with him. Maybe it's time to completely rewrite the SCSI subsystem,
but maybe it will be too long, too risky and not worth the effort.
Maybe it can simply coexist with another new subsystem. This is what
Luben seems to have done : break no code, just bring a new subsystem
which should not even give the SCSI maintainer too much work if he
maintains it himself. At least I could understand some arguments against
Reiser4 because it touched the VFS, but here we have a perfect example
of something new which can live next to SCSI and probably some time
will replace it definitely. Jeff has done this with libata (it even
had to touch some pieces to coexist with piix4 and probably a few other
chips).

Having read the discussion from the start here a few days ago, I
believe that Luben maybe has not explained well to non-competent
people like me what the goal of his work is. I've looked at the GIF
on T10.org, but I think that the equivalent with what it currently
implemented in Linux would be worth doing. Maybe we would even
notice that current maintainers cannot agree on a same representation.
Maybe it will enlighten some of us about the poor error reporting,
the reasons why USB storage sometimes fails to assign a device when
plugging a flash, etc...

Luben, you seem to have enough knowledge to draw both diagrams
side-by-side :
 - the T10 spec with colors on the boxes covered by your work
 - the Linux view of SCSI

Perhaps we will see that current code can be extended without too
much work, or perhaps we will see that it's definitely a dead end
and that a new design will help a lot.

Anyway Luben, I fear that for some time, you'll have to provide
pre-patched sources as well as binary kernels to enterprise customers
who still try to get Linux working in production. I hope that this sad
experience will not discourage other vendors from trying to take the
opensource wagon, as it clearly brings fuel to closed-source drivers
at the moment (no need to argue).

Eventhough I don't have SAS, I sincerely hope that a quick and smart
solution will be found which keeps everyone's pride intact, as it
seems to matter much those days. In an ideal situation, 2.7 would
have been opened for a long time, and Luben's code would have been
discussed to death as a new development needed to be merged before
2.8. Right now, as 2.7 is 2.6.<odd>, probably that ideas can gem
before 2.6.15.

Just my personnal thoughts
Willy

PS: please don't CC me in return, I can read LKML. I haven't trimmed
the CC list as nobody has complained yet.


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 20:56             ` Luben Tuikov
  2005-09-28 22:35               ` Willy Tarreau
@ 2005-09-28 22:43               ` Andre Hedrick
  2005-09-29 15:04                 ` Luben Tuikov
  1 sibling, 1 reply; 112+ messages in thread
From: Andre Hedrick @ 2005-09-28 22:43 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Patrick Mansfield, Luben Tuikov, Jeff Garzik,
	Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List


On Wed, 28 Sep 2005, Luben Tuikov wrote:

> On 09/28/05 15:45, Andre Hedrick wrote:
> > Luben, I have a vested interest in seeing SAS run via SCSI.  So this means
> > you have one ex-demi-god from the world of maintainers looking to pull you
> > have towards the current path and open to ideas and willing to back a
> > better design and push it.
> 
> Ok, thanks Andre.  Much appreciated.

Luben,

I have a vested interest in the improvement of the Linux SCSI Core and
wider adoption and support for SATA II and SAS controllers with their
associated domains and transport.

> You are the first person to back me up _publicly_.  Now if we
> can find a person from "the community" to do that, and get all
> the other people who've written me _privately_, we'd be in
> good shape.

Proving a better design with a migration path for integration is the key
for success; however, I am not the person to be the political voice in the
process.  People will disagree in the process and the only counter to
remove blockage/adoption is in code.

James is king of the hill, and is reasonable to a point.  James also
follows a model of generalization v/s specific design.  Argh, this is not
going to be an easy one to explain or back away from now.  Erm, inclusive
API design is where I am wanting to go with this thought.

Have you and company considered the approach of mapping to a library of
sorts?

Cheers,

Andre


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 22:10           ` Luben Tuikov
@ 2005-09-28 23:04             ` Jeff Garzik
  2005-09-29  4:04               ` Willy Tarreau
  2005-09-29 19:59               ` Stefan Richter
  0 siblings, 2 replies; 112+ messages in thread
From: Jeff Garzik @ 2005-09-28 23:04 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

Luben Tuikov wrote:
> The community calls specs "techno-gibberish"
> and think that LUNs can be u64, that REQUEST SENSE
> clears ACA, and that HCIL is here for ever, etc.

How many times do we have to repeat "HCIL dependencies should get moved 
to SPI-specific transport code" before you listen?


>>>If you understood how different those architectures are,
>>>you'd understand what I mean.
>>
>>
>>James is wrong here.
> 
> 
> Either you meant "Luben" here or you've been banned
> forever from "the community" and your patches would never
> ever be accepted.

Quit being silly.  I meant what I wrote.  Though it turns out that your 
interpretation of James's ideas was incorrect.  James agrees that 
"transport code" includes both lib and attributes, not attributes only.


> What I meant is that the place and design of JB's transport
> attribute "blessing" is completely out of whack for SAM
> abiding implementation.

By focusing on attributes, you miss the big picture.  This is not about 
attributes.


> Look at the pictures: the transport layer is _below_
> the application client and the application client
> is completely unaware of the transport.
> 
> Now lets translate (http://www.t10.org/scsi-3.gif) :
>     Command set drivers  <-->  sd, st, etc (application client)
>                 SAM/SPC  <-->  SCSI Core to be
>         Transport layer  <-->  SAS (all others implemented in LLDD)
>                     SDS  <-->  LLDD + Firmware
>            Interconnect  <-->  Firmware + hardware.
> 
> It is _this_ SAM architecture which allows you to say,
> send SATA commands over SAS links (via STP), and do other
> interesting things.
> 
> I guarantee you that any _new_ SCSI transport would yield
> to a Transport Layer abstraction just as SAS does.
> 
> Since, this is what SAM _is_ (all about).

This is fundamental:  SCSI specs dictate how this functions, not 
necessarily what Linux code looks like.

The big picture is

	device class <-> transport class

and everything falls out from there, including SAM.

Moving SPI (parallel SCSI, for those unfamiliar with the acronym) to 
transport-specific code will eliminate legacy assumptions that you keep 
complaining about.

Linux is about getting things done, not being religious about 
specifications.  You are way too focused on the SCSI specs, and missing 
the path we need to take to achieve additional flexibility.

With Linux, it's all about evolution and the path we take.


> I don't mind James Bottomley entertaining his
> "transport attribute" code, as long as he's not shoving
> it down my throat (again because of pictures like the one
> above).

As long as you think James is merely talking about attributes, you're 
just not getting it.

Transport classes are an abstraction which allows SAS to exist as a peer 
to parallel SCSI, FC, and other acronyms.


>>>But an AIC-94xx and BCM8603 _is_ NOT a scsi_host material.  It is just
>>>an interface to the interconnect.
>>
>>A scsi_host is simply a container.  You're being too literal.
> 
> 
> By "too literal" do you mean "following specs too closely",
> or do you mean "being realistic without tweaking things".

I mean, paying too much attention to specs at the expense of 
understanding how Linux code needs to be shaped.


>>James and Christoph have been asking you to submit patches for a long 
>>time now.
> 
> 
> Not patches to fix SCSI Core or to get "struct scsi_domain_device"
> into SCSI Core or to get 64 bit LUNs into the kenrel.
> 
> They've been asking me for me to abandon the complete
> SAS transport layer which I have, which is 1000 years ahead
> of theirs and ahead of SCSI Core and to go and work
> on LSI's and on "transport attributes".

They are asking you to help with the task of eliminating SPI 
dependencies in the core, so that SAS can exist as a peer to other 
transports.


>>James, Christoph and the rest of linux-scsi have been saying this over 
>>and over again.
> 
> 
> They've never said it: why else do you think we do not
> have 64 bit LUNS or why else do you think we have HCIL in
> SCSI Core.

Repeating myself (and others):  everybody wants HCIL stuff to move to 
SPI-specific transport code.

That is the task that must be completed BEFORE transport layer for SAS 
can be fully merged.


>>Everybody knows the SCSI core is too SPI-centric, and you have been 
>>given a recipe for fixing this.
> 
> 
> I "have been given recipe for fixing this"?
> 
> Are you all right Jeff?
> 
> Yep, the recipe was given to me by people who think that
> we should stay with HCIL, who have found purpose for
> the "second channel" in HCIL, who think that REQUEST SENSE
> clears ACA, who think that 64 bit LUN is just a waste, and
> so forth with their antics.

For the nth time, everybody agrees HCIL should move to 
transport-specific code.

And from past threads, everybody seems OK with moving to a 64-bit lun 
representation.


> So excuse me if I don't see or recognize the recipe
> given to me.  Mind pointing out a link?  This way we
> will have a hard coded evidence of what that recipe is.
> And we can see the exact steps it outlines.

For the nth time: 
http://marc.theaimsgroup.com/?l=linux-scsi&m=112487476527470&w=2

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 22:35               ` Willy Tarreau
@ 2005-09-28 23:22                 ` Jeff Garzik
  2005-09-28 23:29                   ` David S. Miller
  2005-09-29 14:33                 ` Luben Tuikov
  1 sibling, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-09-28 23:22 UTC (permalink / raw)
  To: Willy Tarreau
  Cc: Luben Tuikov, Andre Hedrick, Patrick Mansfield, Luben Tuikov,
	Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

Willy Tarreau wrote:
> And when they go to adaptec site to find latest drivers and they only
> find patches which forces them to find another Linux to install the
> sources and guess how to patch and build, do you know which OS they
> consider as hobbyist's ? The Red Hat ! (which they can call "Linux"
> again then).

Adaptec is unfortunately a special case.  QLogic and other enterprise 
vendors get along with quite well on $100k machines.

Both Luben and his predecessor, Justin Gibbs, were severely dissatisfied 
with the SCSI core.  Often they have raised valid issues that need 
addressing, but their choice has been to work around or ignore existing 
code (and maintainers), rather than work with it, and fix it.


> When they will buy hundreds of TB of SAS-based racks in the next few
> years, and they will learn the hard way that Linux does not even see
> them as disks, it will be too late to give my preferred OS a second
> chance.

Hardly.  SAS support is coming, whether from Adaptec or someone else.


> Having read the discussion from the start here a few days ago, I
> believe that Luben maybe has not explained well to non-competent
> people like me what the goal of his work is. I've looked at the GIF
> on T10.org, but I think that the equivalent with what it currently
> implemented in Linux would be worth doing. Maybe we would even
> notice that current maintainers cannot agree on a same representation.

The current maintainers seem to agree on the path to transport independence.


> Anyway Luben, I fear that for some time, you'll have to provide
> pre-patched sources as well as binary kernels to enterprise customers
> who still try to get Linux working in production. I hope that this sad
> experience will not discourage other vendors from trying to take the
> opensource wagon, as it clearly brings fuel to closed-source drivers
> at the moment (no need to argue).

Yes, let's not argue this silliness.  Other vendors don't seem to have 
this level of problem.


> Eventhough I don't have SAS, I sincerely hope that a quick and smart
> solution will be found which keeps everyone's pride intact, as it
> seems to matter much those days. In an ideal situation, 2.7 would
> have been opened for a long time, and Luben's code would have been
> discussed to death as a new development needed to be merged before
> 2.8. Right now, as 2.7 is 2.6.<odd>, probably that ideas can gem
> before 2.6.15.

Sigh.  This is not about pride.  There's already a path to fixing up the 
SCSI core to work nicely with SAS (and nicer with FC/iSCSI).  Changing 
to a new path midstream, in the middle of addressing the stated 
problems, causes more delay, more harm than good.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 23:22                 ` Jeff Garzik
@ 2005-09-28 23:29                   ` David S. Miller
  2005-09-29  5:30                     ` Andre Hedrick
  0 siblings, 1 reply; 112+ messages in thread
From: David S. Miller @ 2005-09-28 23:29 UTC (permalink / raw)
  To: jgarzik
  Cc: willy, luben_tuikov, andre, patmans, ltuikov, linux-kernel, akpm,
	torvalds, linux-scsi

From: Jeff Garzik <jgarzik@pobox.com>
Date: Wed, 28 Sep 2005 19:22:53 -0400

> Both Luben and his predecessor, Justin Gibbs, were severely dissatisfied 
> with the SCSI core.  Often they have raised valid issues that need 
> addressing, but their choice has been to work around or ignore existing 
> code (and maintainers), rather than work with it, and fix it.

I'm in violent agreement here.

Justin was just as anti-social of an engineer as one could get.  And,
when you put an ex-FreeBSD guy onto Linux driver maintainence, what in
the world could anyone expect. :-)

For example, instead of accepting that the symbol "current" is a
reserved symbol when compiling under the Linux kernel, he decided that
"sticking a square peg into a round hole" was a better way to deal
with this, and thus he put an "#undef current" into the adaptec driver
instead of simply renaming a structure member from "current" to
something else.

I don't know how else to define "control freak".

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 23:04             ` Jeff Garzik
@ 2005-09-29  4:04               ` Willy Tarreau
  2005-09-29  7:44                 ` Arjan van de Ven
  2005-09-29 19:59               ` Stefan Richter
  1 sibling, 1 reply; 112+ messages in thread
From: Willy Tarreau @ 2005-09-29  4:04 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Luben Tuikov, Linux Kernel Mailing List, Andrew Morton,
	Linus Torvalds, SCSI Mailing List

On Wed, Sep 28, 2005 at 07:04:31PM -0400, Jeff Garzik wrote:
> Linux is about getting things done, not being religious about 
> specifications.  You are way too focused on the SCSI specs, and missing 
> the path we need to take to achieve additional flexibility.
> 
> With Linux, it's all about evolution and the path we take.

Hmmm... I'm fine with "not being religious about specs", but I hope we
try to respect them as much as possible, because it's the only way to
get everything working and not get the finger pointed to when there's
a problem. When I put netfilter + window tracking in production 2 years
ago, there were a lot of drops (about 2% of sessions = ~40/s), because
shortcuts had been taken WRT rfc793 ("the specs"). Then, printing the
whole RFC+erratas was the only way to get the code working and
supporting the most bizarre cases that had previously been considered
stupid or impossible by the developpers (including me during the first
phase of the fixes).

I prefer that we stick to specs even if we just implement what we
*need* from them, leaving lots of blank boxes on the diagram, rather
than interprete them as we think would be better and get annoyed
everytime a vendor tries to adapt it to support his hardware.

> >By "too literal" do you mean "following specs too closely",
> >or do you mean "being realistic without tweaking things".
> 
> I mean, paying too much attention to specs at the expense of 
> understanding how Linux code needs to be shaped.

Both are true : Linux code needs to be shaped to match specs. We
must not spend time on what we don't need but we must respect the
model and layering, and that's true in any subsystem. Networking
for example, is very clean in this area. Even accelerations do
not break layering, it's just that some of the work can be pushed
down from layer to layer until one can process it (eg: checksums).
And when I worked on bonding, I did not have problems with it
breaking upper layers. I really believe that's important, it's
the first step to avoid spending time in debugging.

Cheers,
Willy


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 23:29                   ` David S. Miller
@ 2005-09-29  5:30                     ` Andre Hedrick
  2005-09-29  7:24                       ` David S. Miller
  0 siblings, 1 reply; 112+ messages in thread
From: Andre Hedrick @ 2005-09-29  5:30 UTC (permalink / raw)
  To: David S. Miller
  Cc: jgarzik, willy, luben_tuikov, patmans, ltuikov, linux-kernel,
	akpm, torvalds, linux-scsi


Dave,

Was it really necessary to this far and rude?

I heard the snow is falling and there is a fresh shipment of hash headed
out to the slopes, don't be late.

Not sure who to credit the following to:

When TOE's were introduced to Linux, there was a violent rejection of this
hardware because Linux is superior in the NetStack than any other possible
NetStack every created.

The point is there is a known history in Linux to reject things which
steps on peoples' egos.

Have a great ski trip.

Cheers,

Andre

On Wed, 28 Sep 2005, David S. Miller wrote:

> From: Jeff Garzik <jgarzik@pobox.com>
> Date: Wed, 28 Sep 2005 19:22:53 -0400
> 
> > Both Luben and his predecessor, Justin Gibbs, were severely dissatisfied 
> > with the SCSI core.  Often they have raised valid issues that need 
> > addressing, but their choice has been to work around or ignore existing 
> > code (and maintainers), rather than work with it, and fix it.
> 
> I'm in violent agreement here.
> 
> Justin was just as anti-social of an engineer as one could get.  And,
> when you put an ex-FreeBSD guy onto Linux driver maintainence, what in
> the world could anyone expect. :-)
> 
> For example, instead of accepting that the symbol "current" is a
> reserved symbol when compiling under the Linux kernel, he decided that
> "sticking a square peg into a round hole" was a better way to deal
> with this, and thus he put an "#undef current" into the adaptec driver
> instead of simply renaming a structure member from "current" to
> something else.
> 
> I don't know how else to define "control freak".
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29  5:30                     ` Andre Hedrick
@ 2005-09-29  7:24                       ` David S. Miller
  2005-09-30  7:36                         ` Andre Hedrick
  0 siblings, 1 reply; 112+ messages in thread
From: David S. Miller @ 2005-09-29  7:24 UTC (permalink / raw)
  To: andre
  Cc: jgarzik, willy, luben_tuikov, patmans, ltuikov, linux-kernel,
	akpm, torvalds, linux-scsi

From: Andre Hedrick <andre@linux-ide.org>
Date: Wed, 28 Sep 2005 22:30:58 -0700 (PDT)

> Not sure who to credit the following to:
> 
> When TOE's were introduced to Linux, there was a violent rejection of this
> hardware because Linux is superior in the NetStack than any other possible
> NetStack every created.
> 
> The point is there is a known history in Linux to reject things which
> steps on peoples' egos.

In that case, it is indeed a vendor trying to shove their particular
solution down our throats.  They never even attempt to try out the
alternatives, and we've even gone through the trouble of coming up
with several.  And they do this because their whole buisness model is
all about their scheme to the exclusion of anything else, not because
what they have is better.

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29  4:04               ` Willy Tarreau
@ 2005-09-29  7:44                 ` Arjan van de Ven
  2005-09-29 15:09                   ` Luben Tuikov
                                     ` (3 more replies)
  0 siblings, 4 replies; 112+ messages in thread
From: Arjan van de Ven @ 2005-09-29  7:44 UTC (permalink / raw)
  To: Willy Tarreau
  Cc: SCSI Mailing List, Linus Torvalds, Andrew Morton,
	Linux Kernel Mailing List, Luben Tuikov, Jeff Garzik

On Thu, 2005-09-29 at 06:04 +0200, Willy Tarreau wrote:
> On Wed, Sep 28, 2005 at 07:04:31PM -0400, Jeff Garzik wrote:
> > Linux is about getting things done, not being religious about 
> > specifications.  You are way too focused on the SCSI specs, and missing 
> > the path we need to take to achieve additional flexibility.
> > 
> > With Linux, it's all about evolution and the path we take.
> 
> Hmmm... I'm fine with "not being religious about specs", but I hope we
> try to respect them as much as possible

a spec describes how the hw works... how we do the sw piece is up to
us ;)

(I know the scsi stuff also provides sort of a reference "here is how
you can do it in sw" but I see that more as you "you need this
functionality" not "you need this exact architecture in your software")


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 22:35               ` Willy Tarreau
  2005-09-28 23:22                 ` Jeff Garzik
@ 2005-09-29 14:33                 ` Luben Tuikov
  2005-09-29 14:48                   ` Jeff Garzik
                                     ` (3 more replies)
  1 sibling, 4 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 14:33 UTC (permalink / raw)
  To: Linux Kernel Mailing List, SCSI Mailing List
  Cc: Andre Hedrick, Patrick Mansfield, Luben Tuikov, Jeff Garzik,
	Andrew Morton, Linus Torvalds

On 09/28/05 18:35, Willy Tarreau wrote:
> There are people buying expensive hardware. The type of hardware
> that costs $100k for just a few CPUs. Those people don't buy "the
> Adaptec XXX which runs best with Red Hat Enterprise" nor the "LSI
> YYY which runs best with Solaris", they buy a few $100k systems
> with 3 TB disk to store their monthly logs. They cannot even imagine
> that the hardware in the $100k system will not be fully supported by
> some recent OS, that's just plain silly. The OS cost is just a water
> drop in the middle of this. When they install Solaris on it because
> they're used to run it, it just works. When I sometimes just show
> them that Solaris is not adequate for daily greps in logs, and I show
> them how faster it is on a $1k Linux machine in the next rack, they
> feel they can switch to it easily. But if they discover that this
> system does not correctly support their $100k hardware, do you know
> which one was is the crap ? the $300 Red Hat or the $100k hardware ?
> [ oh, BTW, I forgot to tell you : they say "Red Hat", and not "Linux"
> because it does not sound like what they long considered an OS for
> tamagotchis - to use their own words - :-( ]

Yes, all true.

Sadly, most developers here do not _use_ Linux, or are at least
shielded from using Linux, in a _business_.

All the while, Linux _development_, seems to follow some kind
"yours/mine", "gimme that/take that" kindergarten kind of way.
The reason I'm saying this is that _every_ successful entity
(person, corporation, etc) knows that in order to _survive_
it needs to _quickly adapt to new things_: new technologies,
new trends, new fads, etc.

But eventually, when entities get too successful, they
get _complacent_ (with themselves) and turning _away_
from their younger style of functioning (of absolving
everything in order to get successful in the first place).

All this, of course, it the _natural_ way of history.  We
see it when studying History, and we see it every day
when reading the Technology section of our favourite
publication.

Some companies are _fiercly_ trying to beat this _natural_
course of History, into turning 180 degrees from their mindset
every single year in order to chase the latest technology, the
latest fad, in order to please customers and stay on top.

I wish Linux would return to its roots.

> And when they go to adaptec site to find latest drivers and they only
> find patches which forces them to find another Linux to install the
> sources and guess how to patch and build, do you know which OS they
> consider as hobbyist's ? The Red Hat ! (which they can call "Linux"
> again then).

OMG, "hobbyist" -- this so perfectly describes it!  LOL

So now, if there is any coroprate management from RH here reading
this they'd take heed in this.

Linux _development_ needs to catch up to Linux _deployment_.

Currently they are two different worlds.

> Hans Reiser once said that every software needs a complete rewrite
> every 3 or 5 years (I don't precisely remember). I tend to agree
> with him. Maybe it's time to completely rewrite the SCSI subsystem,
> but maybe it will be too long, too risky and not worth the effort.
> Maybe it can simply coexist with another new subsystem. This is what

Now _this_ is a smart suggestion: it wouldn't break legacy hardware
_and_ it would give Linux SCSI a fresh start.

Next year, your new serverboard wouldn't have any of those old
cumbersome storage chips to worry about.  It would have only one
storage chip which could do SAS and SATA and that'd be that.
Why would anyone need this fat, old semanticaly overloaded,
SPI-centric SCSI Core?

> Luben, you seem to have enough knowledge to draw both diagrams
> side-by-side :
>  - the T10 spec with colors on the boxes covered by your work
>  - the Linux view of SCSI
> 
> Perhaps we will see that current code can be extended without too
> much work, or perhaps we will see that it's definitely a dead end
> and that a new design will help a lot.

Yes, I'll get that jpg and try to color it, but there's
also a lot of other components (Interconnect, SDS,
Application Client) which are not visible in this interconnect.

I'll try to get something descriptive.

> Anyway Luben, I fear that for some time, you'll have to provide
> pre-patched sources as well as binary kernels to enterprise customers
> who still try to get Linux working in production. I hope that this sad
> experience will not discourage other vendors from trying to take the
> opensource wagon, as it clearly brings fuel to closed-source drivers
> at the moment (no need to argue).

Foremost, this experience reminds other vendors that Linux
_development_ model is _not_ en par with their Linux _deployment_
model (i.e. for a business).

Many things are left to the whim of developers whose educational
and technical background could be in question especially when
your only communication with them is via email.

I mean -- I don't even know the _age_ ballpark of most developers
here.  (Other than ones I've seen at OLS.)  For all I know I could
be having a discussion with a 9 year old kid, repeating SAM and SPC
references over and over again.

I just don't see the technologically savvy and _open_ community
here.

> Eventhough I don't have SAS, I sincerely hope that a quick and smart
> solution will be found which keeps everyone's pride intact, as it

I'm not shoving my solution down the throats of LSI or James or
Christoph.  Why?
 - because the technologies are different,
 - beacause I'm following a SAM model, they are not.
 - and because I'm not changing anybody else's code but integrating
   with it.

(Jeff, I know that on the 3rd point, you'd say "That's the problem,
you should be improving SCSI Core", and I know that if I had been
changing other people's code, you'd say "You should not change
other people's code", so it's a win-win-manipulative situation
for you.  I'm aware of that, spare your keystrokes.)

This is all _fine_ with me as long as they are not shoving down
my throat their solution.

I wonder the pride to technological merit ratio in Linux SCSI.

> seems to matter much those days. In an ideal situation, 2.7 would
> have been opened for a long time,

Maybe things are slowing down for Linux?  Attitude?  Complacency?
History?  Who knows?

> and Luben's code would have been
> discussed to death as a new development needed to be merged before

We did have a Storage BOF (Birds Of Feather) at the Ottawa Linux
Symposium (OLS) in July this year.  It was called "SAS" and someone
made me do the presentation.  Drawing on a white board several layers
and how they communicate with each other, how things work, why they
work the way they work, how they are shown and represented and why.

The response I got from James and Chritsoph was:
"The sysfs tree would be too deep."

The next day I learned that such argument is bogus and a sysfs
tree can be as deep as the representation calls for.

So you see, _this_ is where we started -- with _this_ kind
of argument: "The sysfs tree would be too deep."

BTW, James already had already had my code for about two
weeks before OLS.

	Luben

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 14:33                 ` Luben Tuikov
@ 2005-09-29 14:48                   ` Jeff Garzik
  2005-09-29 15:50                     ` Luben Tuikov
  2005-09-29 15:15                   ` grundig
                                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-09-29 14:48 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Linux Kernel Mailing List, SCSI Mailing List, Andre Hedrick,
	Patrick Mansfield, Luben Tuikov, Andrew Morton, Linus Torvalds

Luben Tuikov wrote:
> All the while, Linux _development_, seems to follow some kind
> "yours/mine", "gimme that/take that" kindergarten kind of way.
> The reason I'm saying this is that _every_ successful entity
> (person, corporation, etc) knows that in order to _survive_
> it needs to _quickly adapt to new things_: new technologies,
> new trends, new fads, etc.

The core problem is that a SAM-friendly path to SAS has already been 
chosen -- transport classes -- and your driver isn't following this path.

If we choose a new path every six months, we'll never arrive at the 
destination.


> Some companies are _fiercly_ trying to beat this _natural_
> course of History, into turning 180 degrees from their mindset
> every single year in order to chase the latest technology, the
> latest fad, in order to please customers and stay on top.
> 
> I wish Linux would return to its roots.

Linux today is the most successful its ever been.  This system, however 
strange it may seem, does work.


>>Hans Reiser once said that every software needs a complete rewrite
>>every 3 or 5 years (I don't precisely remember). I tend to agree
>>with him. Maybe it's time to completely rewrite the SCSI subsystem,
>>but maybe it will be too long, too risky and not worth the effort.
>>Maybe it can simply coexist with another new subsystem. This is what
> 
> 
> Now _this_ is a smart suggestion: it wouldn't break legacy hardware
> _and_ it would give Linux SCSI a fresh start.
> 
> Next year, your new serverboard wouldn't have any of those old
> cumbersome storage chips to worry about.  It would have only one
> storage chip which could do SAS and SATA and that'd be that.
> Why would anyone need this fat, old semanticaly overloaded,
> SPI-centric SCSI Core?

The rest of the Linux-SCSI devs are trying to make it less SPI-centric. 
  Rather than just complain, we're doing something about it.


> Foremost, this experience reminds other vendors that Linux
> _development_ model is _not_ en par with their Linux _deployment_
> model (i.e. for a business).
> 
> Many things are left to the whim of developers whose educational
> and technical background could be in question especially when
> your only communication with them is via email.

Background is irrelevant.  Only results matter.  Linux is a meritocracy.


> I'm not shoving my solution down the throats of LSI or James or
> Christoph.  Why?
>  - because the technologies are different,
>  - beacause I'm following a SAM model, they are not.
>  - and because I'm not changing anybody else's code but integrating
>    with it.
> 
> (Jeff, I know that on the 3rd point, you'd say "That's the problem,
> you should be improving SCSI Core", and I know that if I had been
> changing other people's code, you'd say "You should not change
> other people's code", so it's a win-win-manipulative situation
> for you.  I'm aware of that, spare your keystrokes.)

Spare me your paranoia.  I've been 100% honest with you in every email 
I've written.

You -should- change other people's code.  That's how Linux gets better.

When I chose a better path for libata's error handling, the first step 
in that process was changing the locking, and modifying almost every 
$!#$@! SCSI driver in the kernel.  Rather than forever complaining about 
an outdated SCSI layer, I stepped up and fixed things.


>>seems to matter much those days. In an ideal situation, 2.7 would
>>have been opened for a long time,
> 
> 
> Maybe things are slowing down for Linux?  Attitude?  Complacency?
> History?  Who knows?

SCSI work is speeding up.  The SCSI core has come a -long- way in the 
past couple years.  2.6.x SCSI is light years ahead of 2.4.x SCSI.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 22:43               ` Andre Hedrick
@ 2005-09-29 15:04                 ` Luben Tuikov
  2005-09-29 15:08                   ` Jeff Garzik
  2005-09-29 19:09                   ` Stefan Richter
  0 siblings, 2 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 15:04 UTC (permalink / raw)
  To: Andre Hedrick
  Cc: Patrick Mansfield, Luben Tuikov, Jeff Garzik,
	Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

On 09/28/05 18:43, Andre Hedrick wrote:
> I have a vested interest in the improvement of the Linux SCSI Core and
> wider adoption and support for SATA II and SAS controllers with their
> associated domains and transport.

Us and other companies too.

> Proving a better design with a migration path for integration is the key
> for success; however, I am not the person to be the political voice in the

Yes, _it is_ the key to success.

> James is king of the hill, and is reasonable to a point.  James also

Which "hill" is the question.  If he were reasonable, he'd
understand that the two technologies _are_ completely different and
distinct and he'd not try to shove HIS solution down my throat.
Just as I do not shove my solution in his throat.

The whole point is that MPT-based (IOP on package) solutions
_do not_ need a Transport Layer, since that Transport Layer
_is_ already present: in the firmware _and_ access to it
is _firmware_ dependent.

All the while open transport solutions (ours and apparently
Broadcoms') _expose_ the whole infrastructure and _give_ you
the chip as an interface to the interconnect.  So you actually
_need_ a transport management layer.  Now that transport
management layer sits _below_ SCSI Core and SCSI Core is
_unaware_ of the transport.

> follows a model of generalization v/s specific design.  Argh, this is not
> going to be an easy one to explain or back away from now.  Erm, inclusive
> API design is where I am wanting to go with this thought.

You can have inclusive API design for chips like AIC-94xx and BCM8603,
because they <see paragraph above>.

MPT-based ones <see paragraph above> would also use inclusive
design _for MPT-based chips_.

> Have you and company considered the approach of mapping to a library of
> sorts?

Hmm, it is not a library.

It is a layer, again, because of what the chip actually is, and because
of what it implements.

Take a look at the announcement text, I do give some description there
and in the code the drivers/scsi/sas-class/README file describes
the event/managment infrastructure.  Also you can take a look at the code.
http://linux.adaptec.com/sas/

What you'll see in the code is:

  hardware implementation  (interconnect, SAM 4.15, 1.3)
      firmware implementation  (interconnect, SDS, SAM 4.6, 1.3)
          LLDD                     (SAM, section 5, 6, 7)
             Transport Layer          (SAM 4.15, SAS)
                  SCSI Core             (SAM section 4,5,8)
                     Commmand Sets        (SAM section 1)

A very nice explanation in latest SAM4r03,
section 4.15 The SCSI model for distributed communications.

Now for MPT based solutions you have:

  LLDD                  (SAM, section 5, 6, 7)
     SCSI Core             (SAM section 4,5,8)
        Commmand Sets         (SAM section 1)

You see?  No Transport Layer between LLDD and SCSI Core!
Why?  Because all this work is done in FIRMWARE!

That is, the LLDD exports the LUs right into SCSI Core,
So in effect there is _no_ need for a software Transport
Layer.

Can we have a video/tele conference on this?

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 15:04                 ` Luben Tuikov
@ 2005-09-29 15:08                   ` Jeff Garzik
  2005-09-29 16:22                     ` Luben Tuikov
  2005-09-29 19:09                   ` Stefan Richter
  1 sibling, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-09-29 15:08 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Andre Hedrick, Patrick Mansfield, Luben Tuikov,
	Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

Luben Tuikov wrote:
>   hardware implementation  (interconnect, SAM 4.15, 1.3)
>       firmware implementation  (interconnect, SDS, SAM 4.6, 1.3)
>           LLDD                     (SAM, section 5, 6, 7)
>              Transport Layer          (SAM 4.15, SAS)
>                   SCSI Core             (SAM section 4,5,8)
>                      Commmand Sets        (SAM section 1)

Transport class + libsas achieves this.

Maybe I will have to demonstrate using code...

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29  7:44                 ` Arjan van de Ven
@ 2005-09-29 15:09                   ` Luben Tuikov
  2005-09-29 15:20                     ` Jeff Garzik
  2005-09-30 18:16                     ` Joe Bob Spamtest
  2005-09-29 17:15                   ` Stefan Richter
                                     ` (2 subsequent siblings)
  3 siblings, 2 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 15:09 UTC (permalink / raw)
  To: Arjan van de Ven
  Cc: Willy Tarreau, SCSI Mailing List, Linus Torvalds, Andrew Morton,
	Linux Kernel Mailing List, Jeff Garzik

On 09/29/05 03:44, Arjan van de Ven wrote:
> 
> a spec describes how the hw works... how we do the sw piece is up to
> us ;)

Arjan, I'll be your best friend here:
Never say this in public or in an intervew.

Hardware folks needs to work with software folks and
software folks need to work with hardware folks.

This is what makes good design.

	Luben

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 14:33                 ` Luben Tuikov
  2005-09-29 14:48                   ` Jeff Garzik
@ 2005-09-29 15:15                   ` grundig
  2005-09-29 15:17                   ` Bernd Petrovitsch
  2005-09-29 17:52                   ` John Stoffel
  3 siblings, 0 replies; 112+ messages in thread
From: grundig @ 2005-09-29 15:15 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: linux-kernel, linux-scsi, andre, patmans, ltuikov, jgarzik, akpm,
	torvalds

El Thu, 29 Sep 2005 10:33:03 -0400,
Luben Tuikov <luben_tuikov@adaptec.com> escribió:

> The reason I'm saying this is that _every_ successful entity
> (person, corporation, etc) knows that in order to _survive_
> it needs to _quickly adapt to new things_: new technologies,
> new trends, new fads, etc.

[...]

> I wish Linux would return to its roots.

I don't know how things were when you started using linux but linux
has never been about that AFAIK. People usually buys windows
licenses for that ;)


> here.  (Other than ones I've seen at OLS.)  For all I know I could
> be having a discussion with a 9 year old kid, repeating SAM and SPC
> references over and over again.

Oh well. May be Christoph and James are behaving like 9-years-old
kids, but if that's true you're NOT BEING DIFFERENT than them if
you look a bit to your mails.

You can be pretty sure that at this stage everyone is looking you as a
9-years-old kid who is raving because his mother don't buy him a
candy. Maybe they're looking james and christoph int he same way
aswell, but that's their issue.

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 14:33                 ` Luben Tuikov
  2005-09-29 14:48                   ` Jeff Garzik
  2005-09-29 15:15                   ` grundig
@ 2005-09-29 15:17                   ` Bernd Petrovitsch
  2005-09-29 16:33                     ` Luben Tuikov
  2005-09-29 17:52                   ` John Stoffel
  3 siblings, 1 reply; 112+ messages in thread
From: Bernd Petrovitsch @ 2005-09-29 15:17 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Linux Kernel Mailing List, SCSI Mailing List, Andre Hedrick,
	Patrick Mansfield, Luben Tuikov, Jeff Garzik, Andrew Morton,
	Linus Torvalds

On Thu, 2005-09-29 at 10:33 -0400, Luben Tuikov wrote:
[...]
> Linux _development_ needs to catch up to Linux _deployment_.

That is probably the root and single cause of quality problems in
companies: Deployment folks (read: sales) set the delivery date (and get
the bonus for selling) and the rest (read: tech folks) have to follow,
no matter what (and get the blame for being late and buggy).
Or why do you think that MSFT has such quite crappy software?

> Currently they are two different worlds.

ACK - in the commercial world (and the bigger the company the worse
because sales people are far more distant from the tech people).

[ software rewrite ]
> > Maybe it can simply coexist with another new subsystem. This is what
> 
> Now _this_ is a smart suggestion: it wouldn't break legacy hardware
> _and_ it would give Linux SCSI a fresh start.
>
> Next year, your new serverboard wouldn't have any of those old
> cumbersome storage chips to worry about.  It would have only one
> storage chip which could do SAS and SATA and that'd be that.
> Why would anyone need this fat, old semanticaly overloaded,
> SPI-centric SCSI Core?

Then submit your driver as a (separate) block device in parallel to the
existing SCSI subsystem. People will use it for/with other parts if it
makes sense (and you - as the maintainer - accept their patches). And in
a few years the "old" SCSI core fades out as legacy drives fade out (or
they will happily coexist forever).
The point is: If *you* want it that way, *you* must go that way (and do
not expect others to do it just that *you* get *your* driver merged).
You are the maintainer of the new stuff and (almost) everything will
work as you want.
It might not be the cleanest or most elegant solution in the world, but
if it works, who cares and why?
Where is now the real problem?
I can't see one.

	Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 15:09                   ` Luben Tuikov
@ 2005-09-29 15:20                     ` Jeff Garzik
  2005-09-29 16:56                       ` Luben Tuikov
  2005-09-30 18:16                     ` Joe Bob Spamtest
  1 sibling, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-09-29 15:20 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Arjan van de Ven, Willy Tarreau, SCSI Mailing List,
	Linus Torvalds, Andrew Morton, Linux Kernel Mailing List

Luben Tuikov wrote:
> On 09/29/05 03:44, Arjan van de Ven wrote:
> 
>>a spec describes how the hw works... how we do the sw piece is up to
>>us ;)
> 
> 
> Arjan, I'll be your best friend here:
> Never say this in public or in an intervew.

It's hard-earned experience.  We constantly have to teach hardware 
vendors how to write good drivers.

At some point you have to step away from the spec, and ask yourself what 
makes sense for Linux.  I've already had to poke T10 when they put silly 
things in the SAT spec.

As a tangent, I already have a design for a Linux filesystem that makes 
use of SCSI object-based storage (to James's horror, no doubt :)).  It's 
a fun thing to ponder.


> Hardware folks needs to work with software folks and
> software folks need to work with hardware folks.

Certainly.  The historical disconnect is where hardware vendors tend to 
presume They Know Best, when in reality it needs to be an equal 
tradeoff.  Hardware vendors must admit they don't know Linux, and Linux 
developers must admit that hardware vendors know their own hardware 
better than anyone else.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 14:48                   ` Jeff Garzik
@ 2005-09-29 15:50                     ` Luben Tuikov
  2005-09-29 16:54                       ` Jeff Garzik
  0 siblings, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 15:50 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Linux Kernel Mailing List, SCSI Mailing List, Andre Hedrick,
	Patrick Mansfield, Luben Tuikov, Andrew Morton, Linus Torvalds

On 09/29/05 10:48, Jeff Garzik wrote:
> Luben Tuikov wrote:
> 
>>All the while, Linux _development_, seems to follow some kind
>>"yours/mine", "gimme that/take that" kindergarten kind of way.
>>The reason I'm saying this is that _every_ successful entity
>>(person, corporation, etc) knows that in order to _survive_
>>it needs to _quickly adapt to new things_: new technologies,
>>new trends, new fads, etc.
> 
> 
> The core problem is that a SAM-friendly path to SAS has already been 
> chosen -- transport classes -- and your driver isn't following this path.

Man you never stop do you?

I repeat again (I'll cut and paste this):

When JB's transport classes were introduced there was NO MENTIONING
of SAS.  THE REASON THEY WERE INTRODUCED INTO LINUX BY JB IS TO
ACCOMODATE MPT-based SOLUTIONS FROM TWIDDLING WITH IOCTLS!

How do I know this: simple: JB's "transport attributes" have
NOTHING to do with SAM.

They break the layering architecture for one, and are
ATTRIBUTE EXPORTING FACILITY for another.

I understand that you want to preserve your friend's
bal^w^w^wpride but, lets face it:
  I do not try to shove my solution down JB's throat.

As I've said many times: they are different due to
the *technology they represent*, which differs in
implmentation, and they can coexist!

If you can say this statement:
  "The core problem is that a SAM-friendly path to SAS
   has already been chosen -- transport classes -- and
   your driver isn't following this path."

This means that you have NO CLUE ABOUT SAS or SAM!

I certainly hope that things would improve once you
start reading specs and talking to the engineers
who designed BCM8603.  (If you are still going to
write their driver for them.)

> If we choose a new path every six months, we'll never arrive at the 
> destination.

No one is choosing a new path every six months.

And this isn't a new path for _everybody_ to follow, it is only
for LLDD who need a transport layer to drive the transport
they expose an interface to.

I'm _not_ choosing a new path.  No one is required to
"follow" this.  This is just _technology_ for LLDD who _need_
a management layer, and who _cannot_ inteface with a high
level such as SCSI Core.

> Linux today is the most successful its ever been.  This system, however 
> strange it may seem, does work.

And as you can see, Linux today is the most anal retentive as it
has ever been (e.g. SAS, reiser4, and other (revolutionary) technologies).

Remember, you can only go _down_ from the top.  So please
do not say
   "Linux is the most successful it's ever been."

It's too immature as it means that it would either go down
or that it cannot become even _more_ successful.

> The rest of the Linux-SCSI devs are trying to make it less SPI-centric. 
>   Rather than just complain, we're doing something about it.

Oh this is such a political sap, Jeff -- I cannot believe
you're actually saying this.

Who are you pleasing?  Your management?

I've been asking for movement AWAY from HCIL from early
2003, when you were writing libata, remember? Or do you
want a link to marc.10east.com?

Stop this political BS sap "we're doing something about it", please.

I suggested native scsi_target support so long ago, only to get
snuffed at.

>>Many things are left to the whim of developers whose educational
>>and technical background could be in question especially when
>>your only communication with them is via email.
> 
> Background is irrelevant.  Only results matter.  Linux is a meritocracy.

Single line statements like this with 0-content, FUD-like,
only for you to reply right away, do not _contribute_ anything.

You're just throwing sand in the eyes of managament reading this.

> Spare me your paranoia.  I've been 100% honest with you in every email 
> I've written.
> 
> You -should- change other people's code.  That's how Linux gets better.

I doubt you've ever been honest with me.*  The reason is that
you are trying to push down my throat JB's "transport classes",
all the while you're saying I'm supposed to change other people's
code?

Just see how you started this email (above).

So please, don't try to get out of any situation turning 180
degrees around.

* Well, maybe you _are_ 100% honest with me.  Maybe you really
do believe that your friend JB's "transport _attributes_" code
has anything to do with SAM.

> When I chose a better path for libata's error handling, the first step 
> in that process was changing the locking, and modifying almost every 
> $!#$@! SCSI driver in the kernel.  Rather than forever complaining about 
> an outdated SCSI layer, I stepped up and fixed things.

I flipped a card: "You'll get a promotion soon!".

What else can I reply to a self-gratifying statment like this?

Can I reply with someting like: "See my SAS stuff -- how it
truthfully represents the whole domain and gives complete
control of it over to user space? See?"

> SCSI work is speeding up.  The SCSI core has come a -long- way in the 
> past couple years.  2.6.x SCSI is light years ahead of 2.4.x SCSI.

Well, this only tell you the (bad) state of affairs of _2.4.x_ SCSI.
This does _not_ tell you the state of affairs of 2.6.x SCSI.

2.6.x SCSI is light years _behind_ SAM.

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 15:08                   ` Jeff Garzik
@ 2005-09-29 16:22                     ` Luben Tuikov
  0 siblings, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 16:22 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Andre Hedrick, Patrick Mansfield, Luben Tuikov,
	Linux Kernel Mailing List, Andrew Morton, Linus Torvalds,
	SCSI Mailing List

On 09/29/05 11:08, Jeff Garzik wrote:
> Luben Tuikov wrote:
> 
>>  hardware implementation  (interconnect, SAM 4.15, 1.3)
>>      firmware implementation  (interconnect, SDS, SAM 4.6, 1.3)
>>          LLDD                     (SAM, section 5, 6, 7)
>>             Transport Layer          (SAM 4.15, SAS)
>>                  SCSI Core             (SAM section 4,5,8)
>>                     Commmand Sets        (SAM section 1)
> 
> 
> Transport class + libsas achieves this.

This is *WRONG*.  (see below)

And it doesn't "achieve" this.  Stop the FUD.
There is a _reason_ why it is the way it is.

> Maybe I will have to demonstrate using code...

Jeff,

There is a _reason_ why technical people separate concepts
in _layers_.

There is a _reason_ why technical people use Object Oriented
Paradigms describing models and design.

Do you know _what_ that reason is?

Or should I leave you to "demonstrate with code"?

Seeing that you keep _persisting_ in your ways,
I'll leave it for you to "enrich" Linux SCSI in
your "demonstrate with code".

	Luben



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 15:17                   ` Bernd Petrovitsch
@ 2005-09-29 16:33                     ` Luben Tuikov
  2005-09-29 16:56                       ` Jeff Garzik
  2005-09-29 17:13                       ` Bernd Petrovitsch
  0 siblings, 2 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 16:33 UTC (permalink / raw)
  To: Bernd Petrovitsch
  Cc: Linux Kernel Mailing List, SCSI Mailing List, Andre Hedrick,
	Patrick Mansfield, Luben Tuikov, Jeff Garzik, Andrew Morton,
	Linus Torvalds

On 09/29/05 11:17, Bernd Petrovitsch wrote:
> 
> Then submit your driver as a (separate) block device in parallel to the
> existing SCSI subsystem. People will use it for/with other parts if it

SAS is ultimately SCSI.  I'll just have to write my own SCSI core.
_We_ together can do this in parallel to the old SCSI Core.

This is the whole idea.

> makes sense (and you - as the maintainer - accept their patches). And in

You see, at my age and my situation, I no longer see this as
"my balls - your balls".  What matters to me is good design,
quality code, customer satisfaction, bottom line.

E.g. I'm quite a liberal person and I wouldn't block
or stop new technologes from going into Linux on the basis
and merit of my not understanidn that particular new technology.

The bottom line is not "my balls - your balls" but the wide
spread use of Linux and "storage OS of choice".  Not "hobbyist
OS of choice" and not "let me play Robin Hood".

> a few years the "old" SCSI core fades out as legacy drives fade out (or
> they will happily coexist forever).

Yep, I've been saying this since 2002.  On the linux-scsi ML.

> The point is: If *you* want it that way, *you* must go that way (and do
> not expect others to do it just that *you* get *your* driver merged).
> You are the maintainer of the new stuff and (almost) everything will
> work as you want.

And this is the problem: *you* and "the community" see things in
*this* way:  "your balls - my balls", "yours/mine".

While I see things like this: new technology, absolve, use, move on.

As to your comment above, it's not about how *I* see things.
It's about how things _actually_ *are*:
http://www.t10.org/ftp/t10/drafts/sam4/sam4r03.pdf

> It might not be the cleanest or most elegant solution in the world, but
> if it works, who cares and why?

Turn the table around: can _I_ pose this question to JB and Christoph?

(since they are the ones who think this of SAM/SPC)

> Where is now the real problem?
> I can't see one.

Me neither.

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 15:50                     ` Luben Tuikov
@ 2005-09-29 16:54                       ` Jeff Garzik
  2005-09-29 18:25                         ` Luben Tuikov
  0 siblings, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-09-29 16:54 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Linux Kernel Mailing List, SCSI Mailing List, Andre Hedrick,
	Patrick Mansfield, Luben Tuikov, Andrew Morton, Linus Torvalds

Luben Tuikov wrote:
> of SAS.  THE REASON THEY WERE INTRODUCED INTO LINUX BY JB IS TO
> ACCOMODATE MPT-based SOLUTIONS FROM TWIDDLING WITH IOCTLS!

Wrong.  This shows you fundamentally don't understand transport classes 
at all.

AFAIK, the first transport class was FC, for qla2xxx.

Read the code to see how FC avoids the SPI-centric scan -- an example of 
transport independence.


> How do I know this: simple: JB's "transport attributes" have
> NOTHING to do with SAM.
> 
> They break the layering architecture for one, and are
> ATTRIBUTE EXPORTING FACILITY for another.

Transport class == transport layer.  Eventually this will sink in.

Transport class allows for complete transport independence, be it SAS, 
FC, iSCSI, or other.


> And as you can see, Linux today is the most anal retentive as it
> has ever been (e.g. SAS, reiser4, and other (revolutionary) technologies).
> 
> Remember, you can only go _down_ from the top.  So please
> do not say
>    "Linux is the most successful it's ever been."

We've still got all that Microsoft and old-Unix marketshare to steal :)


> It's too immature as it means that it would either go down
> or that it cannot become even _more_ successful.
> 
> 
>>The rest of the Linux-SCSI devs are trying to make it less SPI-centric. 
>>  Rather than just complain, we're doing something about it.
> 
> 
> Oh this is such a political sap, Jeff -- I cannot believe
> you're actually saying this.

I'm merely stating I'm submitting patches to clean up SCSI core.  Others 
have submitted far more patches than I.  And further patches to SCSI 
core are needed to properly integrate SAS as a transport completely 
independent from SPI.  I'm going to be putting time and effort into 
moving the SCSI core away from SPI, so that SAS can be properly integrated.

All I've seen from you is
(a) complaints that the SCSI core is too SPI-centric
(b) a solution that does nothing to fix this


> Who are you pleasing?  Your management?

My goal is Linux.  Always has been.  I put quality of Linux code, and 
giving features to Linux users, above all else.  Have been doing so 
regardless of who employs me, for many years now.

Maybe one day I will be independently wealthy, be a completely 
independent Linux maintainer, and then people will have to find 
something other than Red Hat as the reason for why their code is 
receiving criticism.


> I doubt you've ever been honest with me.*  The reason is that
> you are trying to push down my throat JB's "transport classes",
> all the while you're saying I'm supposed to change other people's
> code?

To get a fully SPI-independent SCSI core, we must change other people's 
code.  That's the way Linux works.  We evolve the existing code.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 15:20                     ` Jeff Garzik
@ 2005-09-29 16:56                       ` Luben Tuikov
  2005-09-29 17:11                         ` Jeff Garzik
  0 siblings, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 16:56 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Arjan van de Ven, Willy Tarreau, SCSI Mailing List,
	Linus Torvalds, Andrew Morton, Linux Kernel Mailing List

On 09/29/05 11:20, Jeff Garzik wrote:
>>Arjan, I'll be your best friend here:
>>Never say this in public or in an intervew.
> 
> 
> It's hard-earned experience.  We constantly have to teach hardware 
> vendors how to write good drivers.

I'm sure you have.  Hardware vendors are lost without
Jeff, James Bottomley and Christoph.

You see, it is because of your _enormous_ ego as shown
above, that the code is being blocked.

> At some point you have to step away from the spec, and ask yourself what 
> makes sense for Linux.

I'm sure -- flush interoperability down the drain.

> I've already had to poke T10 when they put silly 
> things in the SAT spec.

Surely they are lost without you.

> As a tangent, I already have a design for a Linux filesystem that makes 
> use of SCSI object-based storage (to James's horror, no doubt :)).  It's 
> a fun thing to ponder.

Ok, so the way I see it you want to show who has got
the bigger balls?

Jeff, I have *worked* on a Linux OBD-based filesystem.

Are you going to stop this self-gratifying stuff?

>>Hardware folks needs to work with software folks and
>>software folks need to work with hardware folks.
> 
> Certainly.  The historical disconnect is where hardware vendors tend to 
> presume They Know Best, when in reality it needs to be an equal 
> tradeoff.  Hardware vendors must admit they don't know Linux, and Linux 
> developers must admit that hardware vendors know their own hardware 
> better than anyone else.

Reflection of above:
  The historical disconnect is where "the community" tend to 
presume They Know Best, when in reality it needs to be an equal 
tradeoff.  "The community" must admit they don't know hardware,
and hardware developers must admit that "the community" know their
own code better than anyone else.

Jeff, if you had started looking at the design and firmware
of any new SCSI storage chip, you'd see how incredibly similar
it is to the transport it defines, and thus to SAM, since the
transport itself has to comply with SAM for interoperability
(TMF and all).

Linux SCSI does _not_ need to do "its own thing".  There are
perfectly well defined specs, telling you how things are
conceptually _and_ in the physical world.

In order to control those objects, you need to represent
them internally (you can learn this either in neuroscience
class or in OOD & OOP comp sci classes) as you can see has
been done in the SAS Transport Layer code.

So if you want _better control_, higher quality you need
to invent _your own_ stuff as _little as possible_ and
represent things as they are.

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 16:33                     ` Luben Tuikov
@ 2005-09-29 16:56                       ` Jeff Garzik
  2005-09-29 16:58                         ` Luben Tuikov
  2005-09-29 17:13                       ` Bernd Petrovitsch
  1 sibling, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-09-29 16:56 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Bernd Petrovitsch, Linux Kernel Mailing List, SCSI Mailing List,
	Andre Hedrick, Patrick Mansfield, Luben Tuikov, Andrew Morton,
	Linus Torvalds

Luben Tuikov wrote:
> On 09/29/05 11:17, Bernd Petrovitsch wrote:
> 
>>Then submit your driver as a (separate) block device in parallel to the
>>existing SCSI subsystem. People will use it for/with other parts if it
> 
> 
> SAS is ultimately SCSI.  I'll just have to write my own SCSI core.
> _We_ together can do this in parallel to the old SCSI Core.

You should have stated this plainly, from the start.

If you want to do your own SCSI layer, you need to do it at the block 
layer rather than poking around drivers/scsi/

	Jeff




^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 16:56                       ` Jeff Garzik
@ 2005-09-29 16:58                         ` Luben Tuikov
  2005-09-29 17:03                           ` Jeff Garzik
  2005-09-29 18:09                           ` Gerrit Huizenga
  0 siblings, 2 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 16:58 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Bernd Petrovitsch, Linux Kernel Mailing List, SCSI Mailing List,
	Andre Hedrick, Patrick Mansfield, Luben Tuikov, Andrew Morton,
	Linus Torvalds

On 09/29/05 12:56, Jeff Garzik wrote:
> Luben Tuikov wrote:
> 
>>On 09/29/05 11:17, Bernd Petrovitsch wrote:
>>
>>
>>>Then submit your driver as a (separate) block device in parallel to the
>>>existing SCSI subsystem. People will use it for/with other parts if it
>>
>>
>>SAS is ultimately SCSI.  I'll just have to write my own SCSI core.
>>_We_ together can do this in parallel to the old SCSI Core.
> 
> 
> You should have stated this plainly, from the start.
> 
> If you want to do your own SCSI layer, you need to do it at the block 
> layer rather than poking around drivers/scsi/

So now you are saying that I should _not_ poke at drivers/scsi?
(as I haven't done)

Are you going to make up your mind?

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 16:58                         ` Luben Tuikov
@ 2005-09-29 17:03                           ` Jeff Garzik
  2005-09-29 18:09                           ` Gerrit Huizenga
  1 sibling, 0 replies; 112+ messages in thread
From: Jeff Garzik @ 2005-09-29 17:03 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Bernd Petrovitsch, Linux Kernel Mailing List, SCSI Mailing List,
	Andre Hedrick, Patrick Mansfield, Luben Tuikov, Andrew Morton,
	Linus Torvalds

Luben Tuikov wrote:
> On 09/29/05 12:56, Jeff Garzik wrote:
> 
>>Luben Tuikov wrote:
>>
>>
>>>On 09/29/05 11:17, Bernd Petrovitsch wrote:
>>>
>>>
>>>
>>>>Then submit your driver as a (separate) block device in parallel to the
>>>>existing SCSI subsystem. People will use it for/with other parts if it
>>>
>>>
>>>SAS is ultimately SCSI.  I'll just have to write my own SCSI core.
>>>_We_ together can do this in parallel to the old SCSI Core.
>>
>>
>>You should have stated this plainly, from the start.
>>
>>If you want to do your own SCSI layer, you need to do it at the block 
>>layer rather than poking around drivers/scsi/
> 
> 
> So now you are saying that I should _not_ poke at drivers/scsi?
> (as I haven't done)
> 
> Are you going to make up your mind?

Are you:  are you going to rewrite the SCSI core, or work to improve the 
existing one?

Your choice, not mine.  Your time, not mine.

	Jeff




^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 16:56                       ` Luben Tuikov
@ 2005-09-29 17:11                         ` Jeff Garzik
  0 siblings, 0 replies; 112+ messages in thread
From: Jeff Garzik @ 2005-09-29 17:11 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Arjan van de Ven, Willy Tarreau, SCSI Mailing List,
	Linus Torvalds, Andrew Morton, Linux Kernel Mailing List

Luben Tuikov wrote:
> On 09/29/05 11:20, Jeff Garzik wrote:
> 
>>>Arjan, I'll be your best friend here:
>>>Never say this in public or in an intervew.
>>
>>
>>It's hard-earned experience.  We constantly have to teach hardware 
>>vendors how to write good drivers.
> 
> 
> I'm sure you have.  Hardware vendors are lost without
> Jeff, James Bottomley and Christoph.
> 
> You see, it is because of your _enormous_ ego as shown
> above, that the code is being blocked.

No, I was referring to things such as, e.g.
	http://people.redhat.com/arjanv/olspaper.pdf
	http://people.redhat.com/arjanv/OLS.pdf

It has nothing to do with ego, just hard-won experience.

There are bunches of hardware vendors who have their patches merged 
immediately after posting.  They get it.  They have internalized the 
reasons why Linux drivers look the way they do.


>>As a tangent, I already have a design for a Linux filesystem that makes 
>>use of SCSI object-based storage (to James's horror, no doubt :)).  It's 
>>a fun thing to ponder.
> 
> 
> Ok, so the way I see it you want to show who has got
> the bigger balls?
> 
> Jeff, I have *worked* on a Linux OBD-based filesystem.
> 
> Are you going to stop this self-gratifying stuff?

Oh good grief.  It was an example, silly.  Trying to lighten the mood, even.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 16:33                     ` Luben Tuikov
  2005-09-29 16:56                       ` Jeff Garzik
@ 2005-09-29 17:13                       ` Bernd Petrovitsch
  2005-09-29 18:39                         ` Luben Tuikov
  1 sibling, 1 reply; 112+ messages in thread
From: Bernd Petrovitsch @ 2005-09-29 17:13 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Linux Kernel Mailing List, SCSI Mailing List, Andre Hedrick,
	Patrick Mansfield, Luben Tuikov, Jeff Garzik, Andrew Morton,
	Linus Torvalds

On Thu, 2005-09-29 at 12:33 -0400, Luben Tuikov wrote:
> On 09/29/05 11:17, Bernd Petrovitsch wrote:
[...] 
> > Then submit your driver as a (separate) block device in parallel to the
> > existing SCSI subsystem. People will use it for/with other parts if it
> 
> SAS is ultimately SCSI.  I'll just have to write my own SCSI core.
> _We_ together can do this in parallel to the old SCSI Core.
>
> This is the whole idea.

The question is: Who starts and leads seriously this effort (and takes
in the course others with him)?
Just telling others where to go and waiting until they carry you there
usually doesn't succeed if you are not the boss of them (and/or they
are free to leave at any time without significant punishment).

> > makes sense (and you - as the maintainer - accept their patches). And in
[...]
> > a few years the "old" SCSI core fades out as legacy drives fade out (or
> > they will happily coexist forever).
> 
> Yep, I've been saying this since 2002.  On the linux-scsi ML.

Perhaps speaking is not enough and work should follow?
All people who really do the work like those others standing beneath
(possibly doing their own thing) and telling them how to do their own
work best.

> And this is the problem: *you* and "the community" see things in
> *this* way:  "your balls - my balls", "yours/mine".

It's at most (and actually exactly) "my work - your work", not "my balls
- your balls" (or "code" or whatever).
If you want to play "our work" (read: team[0] work), than you have to
cope with others (and they with you), their - probably historically
grown - design (even if it is wrong), etc.
If this doesn't work (and ATM I have this impression) for whatever
reason, the second step is "my work, your work".
And if two (or more) people have different design opinions (and
different opinions about "quality" and/or "correct vs wrong" - I can't
decide since I have virtually no knowledge about SCSI core internals,
discussions on the Linux-SCSI-ML, etc. to decide - not even for me -,
who is "right" and/or "wrong" in which aspect or in general), it comes
down to "better the not-so-good design and working code than the best
design and no code".
So just copy the old core, throw out what you don't want, need and/or
like and voila. If it *is* "better", it will succeed and people will
come and help.
Of course it is probably more work in the short and in the long run to
maintain a separate block driver for SAS storage, but it is at least a
possible solution.
Perhaps all relevant people will see that the difference is small enough
to converge to some point in between.

	Bernd

[0]: Not in the ironic interpretation in German which translates roughly
     to "great, another one does it".
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29  7:44                 ` Arjan van de Ven
  2005-09-29 15:09                   ` Luben Tuikov
@ 2005-09-29 17:15                   ` Stefan Richter
  2005-09-29 17:29                     ` Jeff Garzik
  2005-09-29 19:32                   ` Willy Tarreau
  2005-09-29 19:57                   ` Linus Torvalds
  3 siblings, 1 reply; 112+ messages in thread
From: Stefan Richter @ 2005-09-29 17:15 UTC (permalink / raw)
  To: SCSI Mailing List
  Cc: Arjan van de Ven, Willy Tarreau, Linus Torvalds, Andrew Morton,
	Linux Kernel Mailing List, Luben Tuikov, Jeff Garzik

Arjan van de Ven wrote:
> On Thu, 2005-09-29 at 06:04 +0200, Willy Tarreau wrote:
>>On Wed, Sep 28, 2005 at 07:04:31PM -0400, Jeff Garzik wrote:
>>
>>>Linux is about getting things done, not being religious about 
>>>specifications.  You are way too focused on the SCSI specs, and missing 
>>>the path we need to take to achieve additional flexibility.

AFAIU, demands to get our concepts closer to SAM concepts are actually 
motivated by this: To achieve additional flexibility. (In particular, to 
ease integration of the various transports.)

>>>With Linux, it's all about evolution and the path we take.
>>
>>Hmmm... I'm fine with "not being religious about specs", but I hope we
>>try to respect them as much as possible
> 
> a spec describes how the hw works... how we do the sw piece is up to
> us ;)

We implement drivers of initiators. (Well, targets too.) The specs 
describe _what_ initiators do. Thereby they partly describe _how_ 
drivers of initiators (our sw pieces) work.

> (I know the scsi stuff also provides sort of a reference "here is how
> you can do it in sw" but I see that more as you "you need this
> functionality" not "you need this exact architecture in your software")

This is correct. The SAM is what it is --- the SCSI-3 Architecture 
Model, not the architecture model of Linux' SCSI stack.

However it is very desirable to reflect layers and concepts of the SAM 
in our stack. One class of reasons is maintainability. No person is able 
to understand the stack; nor is a person able to consume and understand 
all or even half of the SCSI specs. No person is able to construct a 
mapping between the whole stack and the whole SCSI-3 Architecture Model 
(in his mind or with pencil and paper...). Therefore there have to be 
_components_ of the stack's architecture model which map 1:1 to 
_components_ of the SCSI-3 Architecture Model.

Fortunately, SAM layers and concepts are already there in the stack, 
although incomplete and incoherent. It will always be disputable _how_ 
complete and coherent our software should be in this respect. However it 
is out of a question that our software's architecture model might 
arbitrarily differ from the SAM.
-- 
Stefan Richter
-=====-=-=-= =--= ===-=
http://arcgraph.de/sr/

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 17:15                   ` Stefan Richter
@ 2005-09-29 17:29                     ` Jeff Garzik
  0 siblings, 0 replies; 112+ messages in thread
From: Jeff Garzik @ 2005-09-29 17:29 UTC (permalink / raw)
  To: Stefan Richter
  Cc: SCSI Mailing List, Arjan van de Ven, Willy Tarreau,
	Linus Torvalds, Andrew Morton, Linux Kernel Mailing List,
	Luben Tuikov

Stefan Richter wrote:
> Arjan van de Ven wrote:
> 
>> On Thu, 2005-09-29 at 06:04 +0200, Willy Tarreau wrote:
>>
>>> On Wed, Sep 28, 2005 at 07:04:31PM -0400, Jeff Garzik wrote:
>>>
>>>> Linux is about getting things done, not being religious about 
>>>> specifications.  You are way too focused on the SCSI specs, and 
>>>> missing the path we need to take to achieve additional flexibility.
> 
> 
> AFAIU, demands to get our concepts closer to SAM concepts are actually 
> motivated by this: To achieve additional flexibility. (In particular, to 
> ease integration of the various transports.)

That's what transport classes help achieve.

We just gotta move gunk from the core (HCIL etc.) to scsi_transport_spi 
before we get there.


> We implement drivers of initiators. (Well, targets too.) The specs 
> describe _what_ initiators do. Thereby they partly describe _how_ 
> drivers of initiators (our sw pieces) work.

Mostly agreed.  Some of the firmware-based and emulated SCSI stuff is a 
bit of an I_T mix.


> However it is very desirable to reflect layers and concepts of the SAM 
> in our stack. One class of reasons is maintainability. No person is able 
> to understand the stack; nor is a person able to consume and understand 
> all or even half of the SCSI specs. No person is able to construct a 
> mapping between the whole stack and the whole SCSI-3 Architecture Model 
> (in his mind or with pencil and paper...). Therefore there have to be 
> _components_ of the stack's architecture model which map 1:1 to 
> _components_ of the SCSI-3 Architecture Model.
> 
> Fortunately, SAM layers and concepts are already there in the stack, 
> although incomplete and incoherent. It will always be disputable _how_ 
> complete and coherent our software should be in this respect. However it 
> is out of a question that our software's architecture model might 
> arbitrarily differ from the SAM.

I think just about everybody agrees with this.

The current thread is more about the path to take, to get there...

The general point about specs is that you gotta think about them, not 
just blindly implement them.  SNIA for example is notorious for 
generating silly storage-related specifications.  And some of the T10 
stuff is... well... obviously designed by committee :)

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 14:33                 ` Luben Tuikov
                                     ` (2 preceding siblings ...)
  2005-09-29 15:17                   ` Bernd Petrovitsch
@ 2005-09-29 17:52                   ` John Stoffel
  2005-09-29 19:20                     ` Bruce Ferrell
  3 siblings, 1 reply; 112+ messages in thread
From: John Stoffel @ 2005-09-29 17:52 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Linux Kernel Mailing List, SCSI Mailing List, Andre Hedrick,
	Patrick Mansfield, Luben Tuikov, Jeff Garzik, Andrew Morton,
	Linus Torvalds


Luben,

I'd really prefer if you'd just stop on your tirade and just send in a
10 line patch for the existing linux SCSI subsystem to fix something
you think is wrong. 

Code talks, bullshit walks.  

Sure, Linux SCSI might not be ideal, but how many people do you know
have SAS storage on their home PCs right now?  Heck, I don't have SATA
or PIV on my home system!  

And as a customer of Adaptec hardware, I'm getting to the point of
seriously taking my money and going elsewhere for my storage needs.
If you are a general example of how Adaptec works with its customers,
then I want nothing to do with you or your products.  

Sure, I know you think Linux is stuck in the past, so help us move to
the future in small baby steps.  It doesn't require big huge leaps
like you're proposing.  I mean, have you actually tried to your old
legacy SCSI controllers in a system with your new hardware?  How did
your testing go?  

Now I'm not a programmer, and I can't talk like one, but in my real
life job I'm a SysAdmin and knowing what I know about Adaptec's
interactions on this list will certainly color my perceptions of your
hardware and trying to make it work with my company.

John

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 16:58                         ` Luben Tuikov
  2005-09-29 17:03                           ` Jeff Garzik
@ 2005-09-29 18:09                           ` Gerrit Huizenga
  1 sibling, 0 replies; 112+ messages in thread
From: Gerrit Huizenga @ 2005-09-29 18:09 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Jeff Garzik, Bernd Petrovitsch, Linux Kernel Mailing List,
	SCSI Mailing List, Andre Hedrick, Patrick Mansfield,
	Luben Tuikov, Andrew Morton, Linus Torvalds


On Thu, 29 Sep 2005 12:58:16 EDT, Luben Tuikov wrote:
> On 09/29/05 12:56, Jeff Garzik wrote:
> > Luben Tuikov wrote:
> > 
> >>On 09/29/05 11:17, Bernd Petrovitsch wrote:
> >>
> >>
> >>>Then submit your driver as a (separate) block device in parallel to the
> >>>existing SCSI subsystem. People will use it for/with other parts if it
> >>
> >>
> >>SAS is ultimately SCSI.  I'll just have to write my own SCSI core.
> >>_We_ together can do this in parallel to the old SCSI Core.
> > 
> > 
> > You should have stated this plainly, from the start.
> > 
> > If you want to do your own SCSI layer, you need to do it at the block 
> > layer rather than poking around drivers/scsi/
> 
> So now you are saying that I should _not_ poke at drivers/scsi?
> (as I haven't done)
> 
> Are you going to make up your mind?

Luben, I think you are missing the distinction being made here and that
distinction is very important.

It is *critical* to hardware vendors, to the linux community, and even
at this point to some of your competitors in the HBA space that we find
the best solutions that work well for *everyone*.  The more often we
wind up with independent, unique stacks and unrelated methods and
mechanisms in the kernel, the more work we all have to do to support
Linux.  If every HBA out there that thought there were following a new
and interesting technology and were going to code to the perfect ISO
or T10 or IETF layering model, the linux kernel would be one huge,
inconsistent, bloated stinking mess for the rest of us to support.

Worse, all of our customers would see different behaviors in semantics,
functionality, and support matrices for every HBA, hardware component,
or combination of platform/HBA/storage subsystem.

I believe that for you personally to find success in the Linux development
community (much as you probably do in the standards or HBA community)
is that you have to talk off your personal hat, you have to take off
your employer's hat, and you must put on the Linux community hat for
a while and see through their eyes.

In this case, Jeff and others are providing two options with a common
goal.  The common goal is to increase the overall amount of commonality
and common code in Linux in this case.

You can do that two ways:  Start with a new SCSI core library and show
with code how it works for multiple HBA vendors (this includes working
with your competitors!) OR help to evolve the current code to better
address your needs while not breaking the needs of other consumers.

Either approach is valid.  You can start sending patches to update the
SCSI core code to simplify your driver and fit with the current
community model, OR you can put forward not just a model but the
libraries and proof-of-concepts (possibly while working with other
HBA vendors) in the form of Linux kernel code to demonstrate the
viability of a new stack which satisfies the wider community goals of
ease of maintainence and ease of understanding over time.

In general, if you think you see a contraction coming from the community,
I'd encourage you to look more closely - there are some strong guiding
principles for the community.

I suggest reading through a few of these resources which might help:

http://lists.osdl.org/pipermail/os_drivers/attachments/20050426/261c7d9d/DeviceDriverDevelopmentPlan-v.02-0001.pdf

http://www.madrone.org/mentor/linux-mentoring.pdf

I'm sure others have simmilar materials floating around.  You are not
the first person to suffer from culture shock here but the sooner you
understand the goals of the community and show how to help meet those
goals (hopefully with code to substantiate your goals, and the ability
to incorporate feedback and give feedback) the sooner we'll have a working
driver in mainline.

gerrit

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 16:54                       ` Jeff Garzik
@ 2005-09-29 18:25                         ` Luben Tuikov
  0 siblings, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 18:25 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Linux Kernel Mailing List, SCSI Mailing List, Andre Hedrick,
	Patrick Mansfield, Luben Tuikov, Andrew Morton, Linus Torvalds

On 09/29/05 12:54, Jeff Garzik wrote:
> Luben Tuikov wrote:
> 
>>of SAS.  THE REASON THEY WERE INTRODUCED INTO LINUX BY JB IS TO
>>ACCOMODATE MPT-based SOLUTIONS FROM TWIDDLING WITH IOCTLS!
> 
> 
> Wrong.  This shows you fundamentally don't understand transport classes 
> at all.
> 
> AFAIK, the first transport class was FC, for qla2xxx.
> 
> Read the code to see how FC avoids the SPI-centric scan -- an example of 
> transport independence.

And it shows that you do not understand SAM.

How do I know this: simple: JB's "transport attributes" have
NOTHING to do with SAM.

They break the layering architecture for one, and are
ATTRIBUTE EXPORTING FACILITY for another.

I understand that you want to preserve your friend's
bal^w^w^wpride but, lets face it:
  I do not try to shove my solution down JB's throat.

As I've said many times: they are different due to
the *technology they represent*, which differs in
implmentation, and they can coexist!

If you can say this statement:
  "The core problem is that a SAM-friendly path to SAS
   has already been chosen -- transport classes -- and
   your driver isn't following this path."

This means that you have NO CLUE ABOUT SAS or SAM!

I certainly hope that things would improve once you
start reading specs and talking to the engineers
who designed BCM8603.  (If you are still going to
write their driver for them.)

>>How do I know this: simple: JB's "transport attributes" have
>>NOTHING to do with SAM.
>>
>>They break the layering architecture for one, and are
>>ATTRIBUTE EXPORTING FACILITY for another.
> 
> 
> Transport class == transport layer.  Eventually this will sink in.
> 
> Transport class allows for complete transport independence, be it SAS, 
> FC, iSCSI, or other.

Nah -- all FUD.

See how you're talking general stuff.  See how I talk
specifics:

The host template was introduced to satisfy SPI only
LLDD which was everything available at that time and
SAM didn't exist yet.

Over time it was enlarged to accomodate others and
all LLDD implemented it and simulated SPI centric
view.

Now, you have a storage chip on a pci device which is
NOT a host template material.

I.e. the LLDD is a _PCI_ device driver, NOT SCSI!

It exports only a SAM section 5, 6 and 7 view of
the Service Delivery Subsystem and interconnect.

It does _not_ export anything "scsi host" like.

For this reason you _need_ a management layer
on top, but _below_ SCSI Core, since that management
layer is _transport_ specific _and_ SCSI Core
should be completely _unaware_ of the transport!

Then _this_ transport layer, presents things
to the SCSI Core as "scsi host" material.

Among the many, lets take for example this
member of the struct scsi_host_template
along with the comment:

	/*
	 * In many instances, especially where disconnect / reconnect are
	 * supported, our host also has an ID on the SCSI bus.  If this is
	 * the case, then it must be reserved.  Please set this_id to -1 if
	 * your setup is in single initiator mode, and the host lacks an
	 * ID.
	 */
	int this_id;

SPI-centric?

How about this from scsi_host:

	/*
	 * These three parameters can be used to allow for wide scsi,
	 * and for host adapters that support multiple busses
	 * The first two should be set to 1 more than the actual max id
	 * or lun (i.e. 8 for normal systems).
	 */
	unsigned int max_id;
	unsigned int max_lun;
	unsigned int max_channel;

And I can continue to give examples of this for as many lines
are in the header files of Linux SCSI.

Now Jeff will say: "Then submit patches to fix this."

> I'm merely stating I'm submitting patches to clean up SCSI core.  Others 
> have submitted far more patches than I.  And further patches to SCSI 

I've also submitted patches to improve SCSI Core.  Those improvements
came directly from my own mini-SCSI Core implementation of iSCSI Target.
For example, using the slab cache for scsi commands.

Thanks to Doug L, and Andi K, they made it in, if it had been left
to James Bottomley, they'd never be in.

Then I continued to post RFCs and various other suggestions, like
64 bit LUN, elimination of HCIL -- all shot down by your friends
in the community.

This was back when you had just started working on libata.

So please spare me the political sap -- I've tears in my eyes already.

> core are needed to properly integrate SAS as a transport completely 

Stop this FUD man -- it integrates right now:
http://linux.adaptec.com/sas/

> independent from SPI.  I'm going to be putting time and effort into 
> moving the SCSI core away from SPI, so that SAS can be properly integrated.

So you are going to give all currently existsing legacy LLDD
a heart attack?

Or are you going to create new functionality as I had
outlined here:
http://marc.theaimsgroup.com/?l=linux-scsi&m=112794008820004&w=2

You know, "struct scsi_domain_device", proper LU
scannint, etc.

> All I've seen from you is
> (a) complaints that the SCSI core is too SPI-centric

I've been wanting to change this since 2003.  I
even wrote an email that I wanted to completely
rewrite SCSI Core for 2.7 in 2003.  See this email.
http://marc.theaimsgroup.com/?l=linux-scsi&m=104508658212335&w=2

Sadly as most discussions in linux-scsi nothing materializes,
patches get dropped, etc, etc, et.

> (b) a solution that does nothing to fix this

But it gets you one step closed to it.  It merges _cleanly_,
people can use it get comfortable with it and eventually
things else where would improve as people get comfortable
with it.

> My goal is Linux.  Always has been.  I put quality of Linux code, and 
> giving features to Linux users, above all else.  Have been doing so 
> regardless of who employs me, for many years now.
> 
> Maybe one day I will be independently wealthy, be a completely 
> independent Linux maintainer, and then people will have to find

Jeff, if you think that if one day if you became independently
wealthy you'd be an independent Linux maintainer, or
do _any_ kind of work, you need to mature a bit more.
I _guarantee_ you that in 5 years you'd think differently.

Independently wealthy people start doing charity work
and then they use that to get into politics, in order
to obtain that which lacks from just having a ton of money:
power.

	Luben

 
> something other than Red Hat as the reason for why their code is 
> receiving criticism.
> 
> 
> 
>>I doubt you've ever been honest with me.*  The reason is that
>>you are trying to push down my throat JB's "transport classes",
>>all the while you're saying I'm supposed to change other people's
>>code?
> 
> 
> To get a fully SPI-independent SCSI core, we must change other people's 
> code.  That's the way Linux works.  We evolve the existing code.
> 
> 	Jeff
> 
> 
> 


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 17:13                       ` Bernd Petrovitsch
@ 2005-09-29 18:39                         ` Luben Tuikov
  2005-09-29 22:43                           ` Joel Becker
  0 siblings, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 18:39 UTC (permalink / raw)
  To: Bernd Petrovitsch
  Cc: Linux Kernel Mailing List, SCSI Mailing List, Andre Hedrick,
	Patrick Mansfield, Luben Tuikov, Jeff Garzik, Andrew Morton,
	Linus Torvalds

On 09/29/05 13:13, Bernd Petrovitsch wrote:
> different opinions about "quality" and/or "correct vs wrong" - I can't
> decide since I have virtually no knowledge about SCSI core internals,

Ok.

> discussions on the Linux-SCSI-ML, etc. to decide - not even for me -,
> who is "right" and/or "wrong" in which aspect or in general), it comes
> down to "better the not-so-good design and working code than the best
> design and no code".

That sounds very fine, _but_ "the community" isn't a "corporation".

"The community" is by far and wide very close friends, so if you
point out to one of them that his code is wrong, even if all
other see that you're indeed correct, no one would say anything.

Why?  Because he doesn't want to same thing done to him.

So it doesn't matter who is right or who is wrong.  What matters
is who has political power to have it his way.

> So just copy the old core, throw out what you don't want, need and/or
> like and voila. If it *is* "better", it will succeed and people will
> come and help.

Blesses art thou, who believeth.

I wish it worked like this, I really wished.  Sadly its doesn'
work like this.

James is a strong political figure.  He keeps people who he thinks
know more than him at bay.  I can quote several names here, who
are active and some who were active at one point or another,
all very well versed in the T10 ways, but it wouldn't be fare to them.

So what you have is a strong political game: they don't care
what is right or wrong, they'll implement it the way _they_ think
is right, in effect alongside _their_ code.

I'm not sure how much History the readers have studied, but such
politics have always yielded to extinction.

The reason is _not_ because you reject something, but because
you end up always doing it always _your_ way.  Eventually you
become unfit to compete when the world has changed _so much_
around you, that "your way" is no longer relevant and the change
to make you fit is so radical, that it is impossible to do.

So you see, it is _not_ about accepting code, it is about
accepting _ideas_ and _innovation_.

James can still do everything _his_ way.  The question is
how many _years_ would this be relevant?

> [0]: Not in the ironic interpretation in German which translates roughly
>      to "great, another one does it".

Yes, but in "the community" people want "great, he does it _my_ way".

	Luben



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 15:04                 ` Luben Tuikov
  2005-09-29 15:08                   ` Jeff Garzik
@ 2005-09-29 19:09                   ` Stefan Richter
  2005-09-29 22:06                     ` Luben Tuikov
  1 sibling, 1 reply; 112+ messages in thread
From: Stefan Richter @ 2005-09-29 19:09 UTC (permalink / raw)
  To: SCSI Mailing List
  Cc: Luben Tuikov, Andre Hedrick, Patrick Mansfield, Luben Tuikov,
	Jeff Garzik, Linux Kernel Mailing List, Andrew Morton,
	Linus Torvalds

Luben Tuikov wrote:
> On 09/28/05 18:43, Andre Hedrick wrote:
>>Have you and company considered the approach of mapping to a library of
>>sorts?
> 
> Hmm, it is not a library.
> 
> It is a layer, again, because of what the chip actually is, and because
> of what it implements.
> 
> Take a look at the announcement text, I do give some description there
> and in the code the drivers/scsi/sas-class/README file describes
> the event/managment infrastructure.  Also you can take a look at the code.
> http://linux.adaptec.com/sas/
> 
> What you'll see in the code is:
> 
>   hardware implementation  (interconnect, SAM 4.15, 1.3)
>       firmware implementation  (interconnect, SDS, SAM 4.6, 1.3)
>           LLDD                     (SAM, section 5, 6, 7)
>              Transport Layer          (SAM 4.15, SAS)
>                   SCSI Core             (SAM section 4,5,8)
>                      Commmand Sets        (SAM section 1)
> 
> A very nice explanation in latest SAM4r03,
> section 4.15 The SCSI model for distributed communications.

BTW, Linux' implementations of transports like USB storage and SBP-2 
have always been similarly layered. (Actually they come with at least 
one more layer between LLDD and SCSI core.) Needless to say that these 
transports need their specific managing infrastructures. So this 
layering is not at all new to Linux.

> Now for MPT based solutions you have:
> 
>   LLDD                  (SAM, section 5, 6, 7)
>      SCSI Core             (SAM section 4,5,8)
>         Commmand Sets         (SAM section 1)
> 
> You see?  No Transport Layer between LLDD and SCSI Core!
> Why?  Because all this work is done in FIRMWARE!

-- 
Stefan Richter
-=====-=-=-= =--= ===-=
http://arcgraph.de/sr/

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 17:52                   ` John Stoffel
@ 2005-09-29 19:20                     ` Bruce Ferrell
  0 siblings, 0 replies; 112+ messages in thread
From: Bruce Ferrell @ 2005-09-29 19:20 UTC (permalink / raw)
  To: John Stoffel
  Cc: Luben Tuikov, Linux Kernel Mailing List, SCSI Mailing List,
	Andre Hedrick, Patrick Mansfield, Luben Tuikov, Jeff Garzik,
	Andrew Morton, Linus Torvalds

Well said John!

For that matter get us a driver for the embedded 7902 (is that the one? 
  I forget now) with host raid support.



John Stoffel wrote:
> Luben,
> 
> I'd really prefer if you'd just stop on your tirade and just send in a
> 10 line patch for the existing linux SCSI subsystem to fix something
> you think is wrong. 
> 
> Code talks, bullshit walks.  
> 
> Sure, Linux SCSI might not be ideal, but how many people do you know
> have SAS storage on their home PCs right now?  Heck, I don't have SATA
> or PIV on my home system!  
> 
> And as a customer of Adaptec hardware, I'm getting to the point of
> seriously taking my money and going elsewhere for my storage needs.
> If you are a general example of how Adaptec works with its customers,
> then I want nothing to do with you or your products.  
> 
> Sure, I know you think Linux is stuck in the past, so help us move to
> the future in small baby steps.  It doesn't require big huge leaps
> like you're proposing.  I mean, have you actually tried to your old
> legacy SCSI controllers in a system with your new hardware?  How did
> your testing go?  
> 
> Now I'm not a programmer, and I can't talk like one, but in my real
> life job I'm a SysAdmin and knowing what I know about Adaptec's
> interactions on this list will certainly color my perceptions of your
> hardware and trying to make it work with my company.
> 
> John
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-27 21:55 ` Jeff Garzik
  2005-09-27 22:51   ` Luben Tuikov
@ 2005-09-29 19:22   ` Stefan Richter
  1 sibling, 0 replies; 112+ messages in thread
From: Stefan Richter @ 2005-09-29 19:22 UTC (permalink / raw)
  To: SCSI Mailing List
  Cc: Jeff Garzik, Linux Kernel Mailing List, Andrew Morton,
	Linus Torvalds, Luben Tuikov

Jeff Garzik wrote:
> * Avoids (rather than fix) several SCSI core false dependencies on HCIL. 

BTW, other SCSI transport layers in Linux do this too, and have been 
doing so for some time. So this is hardly a valid reason not to include 
the new SAS layer.
-- 
Stefan Richter
-=====-=-=-= =--= ===-=
http://arcgraph.de/sr/

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29  7:44                 ` Arjan van de Ven
  2005-09-29 15:09                   ` Luben Tuikov
  2005-09-29 17:15                   ` Stefan Richter
@ 2005-09-29 19:32                   ` Willy Tarreau
  2005-09-29 19:57                   ` Linus Torvalds
  3 siblings, 0 replies; 112+ messages in thread
From: Willy Tarreau @ 2005-09-29 19:32 UTC (permalink / raw)
  To: Arjan van de Ven
  Cc: SCSI Mailing List, Linus Torvalds, Andrew Morton,
	Linux Kernel Mailing List, Luben Tuikov, Jeff Garzik

On Thu, Sep 29, 2005 at 09:44:08AM +0200, Arjan van de Ven wrote:
> On Thu, 2005-09-29 at 06:04 +0200, Willy Tarreau wrote:
> > On Wed, Sep 28, 2005 at 07:04:31PM -0400, Jeff Garzik wrote:
> > > Linux is about getting things done, not being religious about 
> > > specifications.  You are way too focused on the SCSI specs, and missing 
> > > the path we need to take to achieve additional flexibility.
> > > 
> > > With Linux, it's all about evolution and the path we take.
> > 
> > Hmmm... I'm fine with "not being religious about specs", but I hope we
> > try to respect them as much as possible
> 
> a spec describes how the hw works... how we do the sw piece is up to
> us ;)

No Arjan, you cannot say that ! (well, of course you can but in this case
you may be wrong). A spec describes any process, whether it's soft or hard,
and BTW, the frontier between soft and hard is diminishing. When I designed
a PI-Bus-PCI bridge 10 years ago, I used PCI 2.1 Specification. And it was
more related to software than hardware (FSMs, config registers, etc...).

It's the *implementation* which is up to us, not the spec. A spec will never
tell you that you have to be compliant with 4k stacks or things like this.
This is implementation. What it tells you is when interrupt X strikes and
you read bit Y from reg Z, then you must reset bit Y before leaving. And this
is software specs, not hardware.

> (I know the scsi stuff also provides sort of a reference "here is how
> you can do it in sw" but I see that more as you "you need this
> functionality" not "you need this exact architecture in your software")

Keeping close to an accepted standard model makes it far easier to upgrade
later, but you're right, the spec does not tell you what your implementation
must look like.

I think we agree but just don't give the exact same meaning to words.

Regards,
Willy


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28  2:02     ` Jeff Garzik
  2005-09-28 20:36       ` Luben Tuikov
@ 2005-09-29 19:37       ` Stefan Richter
  1 sibling, 0 replies; 112+ messages in thread
From: Stefan Richter @ 2005-09-29 19:37 UTC (permalink / raw)
  To: SCSI Mailing List
  Cc: Jeff Garzik, Luben Tuikov, Linux Kernel Mailing List,
	Andrew Morton, Linus Torvalds

Jeff Garzik wrote:
>> The sad truth is that SCSI Core knows only HCIL.
> 
> That's something that needs fixing, for SAS.

Not just for SAS.

>> The code doesn't alter Linux SCSI or anyone else's behaviour.
>> It only _provides_ SAS support to the kernel.
> 
> That's one of the problems: It should update the SCSI core.

Sure, but the same is true for the other transports except for SPI.
-- 
Stefan Richter
-=====-=-=-= =--= ===-=
http://arcgraph.de/sr/

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29  7:44                 ` Arjan van de Ven
                                     ` (2 preceding siblings ...)
  2005-09-29 19:32                   ` Willy Tarreau
@ 2005-09-29 19:57                   ` Linus Torvalds
  2005-09-29 22:49                     ` jerome lacoste
                                       ` (2 more replies)
  3 siblings, 3 replies; 112+ messages in thread
From: Linus Torvalds @ 2005-09-29 19:57 UTC (permalink / raw)
  To: Arjan van de Ven
  Cc: Willy Tarreau, SCSI Mailing List, Andrew Morton,
	Linux Kernel Mailing List, Luben Tuikov, Jeff Garzik



On Thu, 29 Sep 2005, Arjan van de Ven wrote:
> 
> a spec describes how the hw works... how we do the sw piece is up to
> us ;)

How we do the SW is indeed up to us, but I want to step in on your first 
point.

Again.

A "spec" is close to useless. I have _never_ seen a spec that was both big 
enough to be useful _and_ accurate.

And I have seen _lots_ of total crap work that was based on specs. It's 
_the_ single worst way to write software, because it by definition means 
that the software was written to match theory, not reality.

So there's two MAJOR reasons to avoid specs:

 - they're dangerously wrong. Reality is different, and anybody who thinks 
   specs matter over reality should get out of kernel programming NOW. 
   When reality and specs clash, the spec has zero meaning. Zilch. Nada.
   None.

   It's like real science: if you have a theory that doesn't match 
   experiments, it doesn't matter _how_ much you like that theory. It's
   wrong. You can use it as an approximation, but you MUST keep in mind 
   that it's an approximation.

 - specs have an inevitably tendency to try to introduce abstractions
   levels and wording and documentation policies that make sense for a 
   written spec. Trying to implement actual code off the spec leads to the 
   code looking and working like CRAP. 

   The classic example of this is the OSI network model protocols. Classic 
   spec-design, which had absolutely _zero_ relevance for the real world. 
   We still talk about the seven layers model, because it's a convenient 
   model for _discussion_, but that has absolutely zero to do with any 
   real-life software engineering. In other words, it's a way to _talk_ 
   about things, not to implement them.

   And that's important. Specs are a basis for _talking_about_ things. But 
   they are _not_ a basis for implementing software.

So please don't bother talking about specs. Real standards grow up 
_despite_ specs, not thanks to them.

		Linus

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 23:04             ` Jeff Garzik
  2005-09-29  4:04               ` Willy Tarreau
@ 2005-09-29 19:59               ` Stefan Richter
  1 sibling, 0 replies; 112+ messages in thread
From: Stefan Richter @ 2005-09-29 19:59 UTC (permalink / raw)
  To: SCSI Mailing List
  Cc: Jeff Garzik, Luben Tuikov, Linux Kernel Mailing List,
	Andrew Morton, Linus Torvalds

Jeff Garzik wrote:
[...]
> HCIL stuff to move to SPI-specific transport code.
> 
> That is the task that must be completed BEFORE transport layer for SAS 
> can be fully merged.

So it could at least be _halfway_ merged, like it was done with the 
other non-SPI transport layers long ago, couldn't it?
-- 
Stefan Richter
-=====-=-=-= =--= ===-=
http://arcgraph.de/sr/

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 19:09                   ` Stefan Richter
@ 2005-09-29 22:06                     ` Luben Tuikov
  0 siblings, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 22:06 UTC (permalink / raw)
  To: Stefan Richter, SCSI Mailing List
  Cc: Luben Tuikov, Andre Hedrick, Patrick Mansfield, Luben Tuikov,
	Jeff Garzik, Linux Kernel Mailing List, Andrew Morton,
	Linus Torvalds

--- Stefan Richter <stefanr@s5r6.in-berlin.de> wrote:
> Luben Tuikov wrote:
> > What you'll see in the code is:
> > 
> >   hardware implementation  (interconnect, SAM 4.15, 1.3)
> >       firmware implementation  (interconnect, SDS, SAM 4.6, 1.3)
> >           LLDD                     (SAM, section 5, 6, 7)
> >              Transport Layer          (SAM 4.15, SAS)
> >                   SCSI Core             (SAM section 4,5,8)
> >                      Commmand Sets        (SAM section 1)
> > 
> > A very nice explanation in latest SAM4r03,
> > section 4.15 The SCSI model for distributed communications.
> 
> BTW, Linux' implementations of transports like USB storage and SBP-2 
> have always been similarly layered. (Actually they come with at least 
> one more layer between LLDD and SCSI core.) Needless to say that these 
> transports need their specific managing infrastructures. So this 
> layering is not at all new to Linux.

True, true.

But those subsystems are shielded from SCSI Core.  Plus SCSI Core
is managed by people unaware of SAM or the layering infrastructure.

    Luben
 
> > Now for MPT based solutions you have:
> > 
> >   LLDD                  (SAM, section 5, 6, 7)
> >      SCSI Core             (SAM section 4,5,8)
> >         Commmand Sets         (SAM section 1)
> > 
> > You see?  No Transport Layer between LLDD and SCSI Core!
> > Why?  Because all this work is done in FIRMWARE!
> 
> -- 
> Stefan Richter
> -=====-=-=-= =--= ===-=
> http://arcgraph.de/sr/
> 


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 18:39                         ` Luben Tuikov
@ 2005-09-29 22:43                           ` Joel Becker
  0 siblings, 0 replies; 112+ messages in thread
From: Joel Becker @ 2005-09-29 22:43 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Linux Kernel Mailing List, SCSI Mailing List, Luben Tuikov, Jeff Garzik

On Thu, Sep 29, 2005 at 02:39:44PM -0400, Luben Tuikov wrote:
> So you see, it is _not_ about accepting code, it is about
> accepting _ideas_ and _innovation_.
> 
> James can still do everything _his_ way.  The question is
> how many _years_ would this be relevant?

	Is your cat sleeping on your underscore key?

Joel

-- 

"There is no more evil thing on earth than race prejudice, none at 
 all.  I write deliberately -- it is the worst single thing in life 
 now.  It justifies and holds together more baseness, cruelty and
 abomination than any other sort of error in the world." 
        - H. G. Wells

Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker@oracle.com
Phone: (650) 506-8127

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 19:57                   ` Linus Torvalds
@ 2005-09-29 22:49                     ` jerome lacoste
  2005-09-29 23:20                     ` Luben Tuikov
  2005-09-30  6:52                     ` Andre Hedrick
  2 siblings, 0 replies; 112+ messages in thread
From: jerome lacoste @ 2005-09-29 22:49 UTC (permalink / raw)
  To: Linux Kernel Mailing List

<fun_but_off_topic>

[Removing most of the CC. Because they've got real work to do]

On 9/29/05, Linus Torvalds <torvalds@osdl.org> wrote:
>
[...]

> A "spec" is close to useless.

The only usefulness of a spec is to allow to differ between morons and assholes.

http://diveintomark.org/archives/2004/08/16/specs

Couldn't resist.

</fun_but_off_topic>

J

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 19:57                   ` Linus Torvalds
  2005-09-29 22:49                     ` jerome lacoste
@ 2005-09-29 23:20                     ` Luben Tuikov
  2005-09-29 23:57                       ` Prasenjit Sarkar
                                         ` (2 more replies)
  2005-09-30  6:52                     ` Andre Hedrick
  2 siblings, 3 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-29 23:20 UTC (permalink / raw)
  To: Linus Torvalds, Arjan van de Ven
  Cc: Willy Tarreau, SCSI Mailing List, Andrew Morton,
	Linux Kernel Mailing List, Luben Tuikov, Jeff Garzik

--- Linus Torvalds <torvalds@osdl.org> wrote:
> 
> A "spec" is close to useless. I have _never_ seen a spec that was both big 
> enough to be useful _and_ accurate.
> 
> And I have seen _lots_ of total crap work that was based on specs. It's 
> _the_ single worst way to write software, because it by definition means 
> that the software was written to match theory, not reality.

A spec defines how a protocol works and behaves.  All SCSI specs
are currently very layered and defined by FSMs.

This is _the reason_ I can plug in an Adaptec SAS host adapter
to Vitesse Expander which has a Seagate SAS disk attached to phy X...
And guess what? They interoperate and communicate with each other.

Why?  Because at each layer (physical/link/phy/etc) each
one of them follow the FSMs defined in the, guess where, SAS spec.

If you take a SAS/SATA/FC/etc course, they _show you_ a link
trace and then _show_ you how all of it is defined by the FSM
specs, and make you follow the FSMs.

> So there's two MAJOR reasons to avoid specs:

Ok, then I accept that you and James Bottomley and Christoph are
_right_, and I'm wrong.

I see we differ in ideology.

>    It's like real science: if you have a theory that doesn't match 
>    experiments, it doesn't matter _how_ much you like that theory. It's
>    wrong. You can use it as an approximation, but you MUST keep in mind 
>    that it's an approximation.

But this is _the_ definition of a theory.  No one is arguing that
a theory is not an approximation to observed behaviour.

What you have here is interoperability. Only possible because
different vendors follow the same spec(s).

>  - specs have an inevitably tendency to try to introduce abstractions
>    levels and wording and documentation policies that make sense for a 
>    written spec. Trying to implement actual code off the spec leads to the 
>    code looking and working like CRAP. 

Ok, I give up: I'm wrong and you and James B are right.

>    The classic example of this is the OSI network model protocols. Classic 

Yes, it is a _classic_ example and OSI is _very_ old.

_But_ the tendency of representing things in a _layered_, object oriented
design has persisted.

>    spec-design, which had absolutely _zero_ relevance for the real world. 
>    We still talk about the seven layers model, because it's a convenient 
>    model for _discussion_, but that has absolutely zero to do with any 
>    real-life software engineering. In other words, it's a way to _talk_ 
>    about things, not to implement them.

Ok.
 
>    And that's important. Specs are a basis for _talking_about_ things. But 
>    they are _not_ a basis for implementing software.

Ok.  Let's forget about maintenance and adding _new_ functionality.
 
> So please don't bother talking about specs. Real standards grow up 
> _despite_ specs, not thanks to them.

Yes, you're right. Linus is always right.

Now to things more pertinent, which I'm sure people are interested in:

Jeff has been appointed to the role of integrating the SAS code
with the Linux SCSI _model_, with James Bottomley's "transport attributes".
So you can expect more patches from him.

Regards,
    Luben

P.S. I have to get this 8139too.c network card here working.


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 23:20                     ` Luben Tuikov
@ 2005-09-29 23:57                       ` Prasenjit Sarkar
  2005-09-30  6:35                         ` Andre Hedrick
  2005-09-30  0:35                       ` Linus Torvalds
  2005-09-30  5:31                       ` Theodore Ts'o
  2 siblings, 1 reply; 112+ messages in thread
From: Prasenjit Sarkar @ 2005-09-29 23:57 UTC (permalink / raw)
  To: ltuikov
  Cc: Andrew Morton, Arjan van de Ven, Jeff Garzik,
	Linux Kernel Mailing List, SCSI Mailing List, linux-scsi-owner,
	Luben Tuikov, Linus Torvalds, Willy Tarreau

Luben,

The role of standard bodies is to primarily enforce interoperability but
while they suggest FSMs and layering, those directives are not mandatory.

I have also seen industrial SCSI Core implementations from various sources
to come to the following conclusions (i) they do not implement all the
manadatory stuff (ii) they implement just enough to get by with
interoperability [who has the time] (iii) any layering design is
evolutionary and (iv) none of them come close to the T10 FSMs.

You may disagree, but there needs to be a balance between standards and
implementations.




                                                                           
             Luben Tuikov                                                  
             <ltuikov@yahoo.co                                             
             m>                                                         To 
             Sent by:                  Linus Torvalds <torvalds@osdl.org>, 
             linux-scsi-owner@         Arjan van de Ven                    
             vger.kernel.org           <arjan@infradead.org>               
                                                                        cc 
                                       Willy Tarreau <willy@w.ods.org>,    
             09/29/2005 04:20          SCSI Mailing List                   
             PM                        <linux-scsi@vger.kernel.org>,       
                                       Andrew Morton <akpm@osdl.org>,      
                                       Linux Kernel Mailing List           
             Please respond to         <linux-kernel@vger.kernel.org>,     
             ltuikov@yahoo.com         Luben Tuikov                        
                                       <luben_tuikov@adaptec.com>, Jeff    
                                       Garzik <jgarzik@pobox.com>          
                                                                   Subject 
                                       Re: I request inclusion of SAS      
                                       Transport Layer and AIC-94xx into   
                                       the kernel                          
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




--- Linus Torvalds <torvalds@osdl.org> wrote:
>
> A "spec" is close to useless. I have _never_ seen a spec that was both
big
> enough to be useful _and_ accurate.
>
> And I have seen _lots_ of total crap work that was based on specs. It's
> _the_ single worst way to write software, because it by definition means
> that the software was written to match theory, not reality.

A spec defines how a protocol works and behaves.  All SCSI specs
are currently very layered and defined by FSMs.

This is _the reason_ I can plug in an Adaptec SAS host adapter
to Vitesse Expander which has a Seagate SAS disk attached to phy X...
And guess what? They interoperate and communicate with each other.

Why?  Because at each layer (physical/link/phy/etc) each
one of them follow the FSMs defined in the, guess where, SAS spec.

If you take a SAS/SATA/FC/etc course, they _show you_ a link
trace and then _show_ you how all of it is defined by the FSM
specs, and make you follow the FSMs.

> So there's two MAJOR reasons to avoid specs:

Ok, then I accept that you and James Bottomley and Christoph are
_right_, and I'm wrong.

I see we differ in ideology.

>    It's like real science: if you have a theory that doesn't match
>    experiments, it doesn't matter _how_ much you like that theory. It's
>    wrong. You can use it as an approximation, but you MUST keep in mind
>    that it's an approximation.

But this is _the_ definition of a theory.  No one is arguing that
a theory is not an approximation to observed behaviour.

What you have here is interoperability. Only possible because
different vendors follow the same spec(s).

>  - specs have an inevitably tendency to try to introduce abstractions
>    levels and wording and documentation policies that make sense for a
>    written spec. Trying to implement actual code off the spec leads to
the
>    code looking and working like CRAP.

Ok, I give up: I'm wrong and you and James B are right.

>    The classic example of this is the OSI network model protocols.
Classic

Yes, it is a _classic_ example and OSI is _very_ old.

_But_ the tendency of representing things in a _layered_, object oriented
design has persisted.

>    spec-design, which had absolutely _zero_ relevance for the real world.

>    We still talk about the seven layers model, because it's a convenient
>    model for _discussion_, but that has absolutely zero to do with any
>    real-life software engineering. In other words, it's a way to _talk_
>    about things, not to implement them.

Ok.

>    And that's important. Specs are a basis for _talking_about_ things.
But
>    they are _not_ a basis for implementing software.

Ok.  Let's forget about maintenance and adding _new_ functionality.

> So please don't bother talking about specs. Real standards grow up
> _despite_ specs, not thanks to them.

Yes, you're right. Linus is always right.

Now to things more pertinent, which I'm sure people are interested in:

Jeff has been appointed to the role of integrating the SAS code
with the Linux SCSI _model_, with James Bottomley's "transport attributes".
So you can expect more patches from him.

Regards,
    Luben

P.S. I have to get this 8139too.c network card here working.

-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 23:20                     ` Luben Tuikov
  2005-09-29 23:57                       ` Prasenjit Sarkar
@ 2005-09-30  0:35                       ` Linus Torvalds
  2005-09-30  1:25                         ` Hua Zhong
                                           ` (3 more replies)
  2005-09-30  5:31                       ` Theodore Ts'o
  2 siblings, 4 replies; 112+ messages in thread
From: Linus Torvalds @ 2005-09-30  0:35 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Arjan van de Ven, Willy Tarreau, SCSI Mailing List,
	Andrew Morton, Linux Kernel Mailing List, Luben Tuikov,
	Jeff Garzik



On Thu, 29 Sep 2005, Luben Tuikov wrote:
>
> >    It's like real science: if you have a theory that doesn't match 
> >    experiments, it doesn't matter _how_ much you like that theory. It's
> >    wrong. You can use it as an approximation, but you MUST keep in mind 
> >    that it's an approximation.
> 
> But this is _the_ definition of a theory.  No one is arguing that
> a theory is not an approximation to observed behaviour.

No.

A scientific theory is an approximation of observed behaviour WITH NO 
KNOWN HOLES.

Once there are known holes in the theory, it's not a scientific theory. At 
best it's an approximation, but quite possibly it's just plain wrong.

And that's my point. Specs are not only almost invariably badly written, 
they also never actually match reality. 

At which point at _best_ it's just an approximation. At worst, it's much 
worse. At worst, it causes people to ignore reality, and then it becomes 
religion.

And that's way _way_ too common. People who ignore reality are sadly not 
at all unusual.

"But the spec says ..." is pretty much always a sign of somebody who has 
just blocked out the fact that some device doesn't.

So don't talk about specs.

Talk about working code that is _readable_ and _works_.

There's an absolutely mindbogglingly huge difference between the two.

			Linus

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30  0:35                       ` Linus Torvalds
@ 2005-09-30  1:25                         ` Hua Zhong
  2005-09-30  2:42                         ` Marcin Dalecki
                                           ` (2 subsequent siblings)
  3 siblings, 0 replies; 112+ messages in thread
From: Hua Zhong @ 2005-09-30  1:25 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Luben Tuikov, Arjan van de Ven, Willy Tarreau, SCSI Mailing List,
	Andrew Morton, Linux Kernel Mailing List, Luben Tuikov,
	Jeff Garzik

> Once there are known holes in the theory, it's not a
> scientific theory. At best it's an approximation, but
> quite possibly it's just plain wrong.

You are right about scientific theory, but specs are not just a theory.
You are mixing "discovery" and "invention".

A scientific theory has to match reality, because the universe deveops
independently. There is no way you can enforce your theory down the
throat on the "nature".

But the roles of specs are more than that. There are two parts of it:
1. unify/summarize the reality
2. guide future implementations on a unified road

It might do job 1 poorly (simply because the reality is a mess),
but if everyone from the point on puts the effort to follow it, job 2 can
be done, and it is the real goal. It can do this simply because *humans*
can collaborate and be influenced for a goal that could eventually
benefit everybody.

> And that's my point. Specs are not only almost invariably
> badly written, they also never actually match reality.
>
> At which point at _best_ it's just an approximation. At
> worst, it's much worse. At worst, it causes people to
> ignore reality, and then it becomes religion.

Let me add more to the moron/asshole argument:

Anyone that thinks specs are reality is a moron.

Anyone that thinks specs are useless and refuses to collaborate
is an asshole. :)

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-28 14:50           ` Linus Torvalds
@ 2005-09-30  1:56             ` Junio C Hamano
  0 siblings, 0 replies; 112+ messages in thread
From: Junio C Hamano @ 2005-09-30  1:56 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linux Kernel Mailing List

Linus Torvalds <torvalds@osdl.org> writes:

> On Wed, 28 Sep 2005, Matthew Wilcox wrote:
>> 
>> Dude, that document is written in a very tongue-in-cheek style.
>
> True, true. But sometimes you can say painful truths more easily if you do 
> it as a joke. Most of the ManagementStyle document is perfectly valid.

Yes, I thought I understood it when I read it first, but I later
realized that my understanding was very superficial.

When I re-read it now, I cannot help chuckling, remembering how
you kept saying "go wild", "make it so", "That is good, but it
strikes me that there is no fundamental reason to limit
ourselves to ..."  on the git list ;-).


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30  0:35                       ` Linus Torvalds
  2005-09-30  1:25                         ` Hua Zhong
@ 2005-09-30  2:42                         ` Marcin Dalecki
  2005-09-30 19:12                           ` Joe Bob Spamtest
  2005-09-30  7:29                         ` Douglas Gilbert
  2005-09-30 14:07                         ` Luben Tuikov
  3 siblings, 1 reply; 112+ messages in thread
From: Marcin Dalecki @ 2005-09-30  2:42 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Luben Tuikov, Arjan van de Ven, Willy Tarreau, SCSI Mailing List,
	Andrew Morton, Linux Kernel Mailing List, Luben Tuikov,
	Jeff Garzik


On 2005-09-30, at 02:35, Linus Torvalds wrote:
>
> No.
>
> A scientific theory is an approximation of observed behaviour WITH NO
> KNOWN HOLES.

Since "approximation" is equivalent to a "known hole", there is no  
single scientific theory without known holes out there?! Well that's  
a segfault in brain - unless you don't consider math science of course.

A scientific theory is just a set of axioms and deduction rules. Not  
much more by definition...

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 23:20                     ` Luben Tuikov
  2005-09-29 23:57                       ` Prasenjit Sarkar
  2005-09-30  0:35                       ` Linus Torvalds
@ 2005-09-30  5:31                       ` Theodore Ts'o
  2 siblings, 0 replies; 112+ messages in thread
From: Theodore Ts'o @ 2005-09-30  5:31 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Linus Torvalds, Arjan van de Ven, Willy Tarreau,
	SCSI Mailing List, Andrew Morton, Linux Kernel Mailing List,
	Luben Tuikov, Jeff Garzik

On Thu, Sep 29, 2005 at 04:20:13PM -0700, Luben Tuikov wrote:
>
> A spec defines how a protocol works and behaves.  All SCSI specs
> are currently very layered and defined by FSMs.

A spec defines how a protocol works and behaves --- *if* it is
well-specified and unambiguous, and *if* vendors actually implement
the spec correctly.  (And sometimes vendors have major economic
incentives to cheat and either intentionally violate the
specification, or simply not bother to test to make sure whether or
not they implemented their hardware correctly.)

Computing history has been literred with specifications that were
incompentently written and/or incompentently implemented --- from the
disaster known as ACPI, to FDDI (early FDDI networking gear was
interoperable only if you bought all of your gear from one vendor,
natch), consumer-grade disks which lied about when data had been
safely written to iron oxide to garner better Winbench scores, and
many, many, many others.

This is one of the reasons why the IETF doesn't bless a networking
standard until there are multiple independent, interoperable
implementations --- and even _then_ there will be edge cases that
won't be caught until much, much later.

In those cases, if you implement something which is religiously
adherent to the specification, and it doesn't interoperate with the
real world (i.e., everybody else, or some large part of the industry)
--- do you claim that you are right because you are following the
specification, and everyone else in the world is wrong?  Or do you
adapt to reality?  People who are too in love with specifications so
that they are not willing to be flexible will generally not be able to
achieve complete interoperability.  This is the reason for the IETF
Maxim --- be conservative in what you send, liberal in what you will
accept.  And it's why interoperability testing and reference
implementations are critical.

But it's also important to remember when there is a reference
implementation, or pseudo-code in the specification, it's not the only
way you can implement things.  Very often, as Linus has pointed out,
there are reasons why the pseudo-code in the specification is wholely
inappropriate for a particular implementation.  But that's OK; the
implementation can use a different implementastion, as long as the
result is interoperable.

Regards,

						- Ted

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 23:57                       ` Prasenjit Sarkar
@ 2005-09-30  6:35                         ` Andre Hedrick
  0 siblings, 0 replies; 112+ messages in thread
From: Andre Hedrick @ 2005-09-30  6:35 UTC (permalink / raw)
  To: Prasenjit Sarkar
  Cc: ltuikov, Andrew Morton, Arjan van de Ven, Jeff Garzik,
	Linux Kernel Mailing List, SCSI Mailing List, linux-scsi-owner,
	Luben Tuikov, Linus Torvalds, Willy Tarreau


Prasenjit,

The role of a standards body is to self promote and backslap each other
amd figure out how to divide the market and make money and not cause
problems.

The problem here is T10/T11 is the protocol is "ends justify the means".

This is where the clash of technical and design happens.

If the standards body was going to "primarily enforce interoperability",
then why the heck did the T10 proposal for "domain validation" become an
empty file and was withdrawn?  IIRC it was Adaptec who helped to kill
Domain Validation on T10, but I could be wrong and correction is warrented
here if needed.

"(iv) none of them come close to the T10 FSMs" is the answer, and this
justifies Linux's position to operate under "ends justify the means".

I can tell you why the T13 proposal died.  I killed when I withdrew it as
a direct result of T10's actions or lack of such.

As much as I believe in NCITS standards, they are worthless if no one is
there to assist in the process of creation, model, and adoption.

Regardless of anything stated above, the problem with creation of a scsi
standard core is most of the VOODOO of SCSI is hidden in the firmware.
James knows this fact and points it out on occassion.  SCSI is a FUZZY
State Machine and nowhere close to being consider finite.

Not sure if there is a good solution to date; however, James does have an
strong understanding of the mess and Christop is a good right hand
enforcer regardless that he and I disagree more often than agree.

Cheers,

Andre Hedrick
LAD Storage Consulting Group

On Thu, 29 Sep 2005, Prasenjit Sarkar wrote:

> Luben,
> 
> The role of standard bodies is to primarily enforce interoperability but
> while they suggest FSMs and layering, those directives are not mandatory.
> 
> I have also seen industrial SCSI Core implementations from various sources
> to come to the following conclusions (i) they do not implement all the
> manadatory stuff (ii) they implement just enough to get by with
> interoperability [who has the time] (iii) any layering design is
> evolutionary and (iv) none of them come close to the T10 FSMs.
> 
> You may disagree, but there needs to be a balance between standards and
> implementations.
> 
> 
> 
> 
>                                                                            
>              Luben Tuikov                                                  
>              <ltuikov@yahoo.co                                             
>              m>                                                         To 
>              Sent by:                  Linus Torvalds <torvalds@osdl.org>, 
>              linux-scsi-owner@         Arjan van de Ven                    
>              vger.kernel.org           <arjan@infradead.org>               
>                                                                         cc 
>                                        Willy Tarreau <willy@w.ods.org>,    
>              09/29/2005 04:20          SCSI Mailing List                   
>              PM                        <linux-scsi@vger.kernel.org>,       
>                                        Andrew Morton <akpm@osdl.org>,      
>                                        Linux Kernel Mailing List           
>              Please respond to         <linux-kernel@vger.kernel.org>,     
>              ltuikov@yahoo.com         Luben Tuikov                        
>                                        <luben_tuikov@adaptec.com>, Jeff    
>                                        Garzik <jgarzik@pobox.com>          
>                                                                    Subject 
>                                        Re: I request inclusion of SAS      
>                                        Transport Layer and AIC-94xx into   
>                                        the kernel                          
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
> 
> 
> 
> 
> --- Linus Torvalds <torvalds@osdl.org> wrote:
> >
> > A "spec" is close to useless. I have _never_ seen a spec that was both
> big
> > enough to be useful _and_ accurate.
> >
> > And I have seen _lots_ of total crap work that was based on specs. It's
> > _the_ single worst way to write software, because it by definition means
> > that the software was written to match theory, not reality.
> 
> A spec defines how a protocol works and behaves.  All SCSI specs
> are currently very layered and defined by FSMs.
> 
> This is _the reason_ I can plug in an Adaptec SAS host adapter
> to Vitesse Expander which has a Seagate SAS disk attached to phy X...
> And guess what? They interoperate and communicate with each other.
> 
> Why?  Because at each layer (physical/link/phy/etc) each
> one of them follow the FSMs defined in the, guess where, SAS spec.
> 
> If you take a SAS/SATA/FC/etc course, they _show you_ a link
> trace and then _show_ you how all of it is defined by the FSM
> specs, and make you follow the FSMs.
> 
> > So there's two MAJOR reasons to avoid specs:
> 
> Ok, then I accept that you and James Bottomley and Christoph are
> _right_, and I'm wrong.
> 
> I see we differ in ideology.
> 
> >    It's like real science: if you have a theory that doesn't match
> >    experiments, it doesn't matter _how_ much you like that theory. It's
> >    wrong. You can use it as an approximation, but you MUST keep in mind
> >    that it's an approximation.
> 
> But this is _the_ definition of a theory.  No one is arguing that
> a theory is not an approximation to observed behaviour.
> 
> What you have here is interoperability. Only possible because
> different vendors follow the same spec(s).
> 
> >  - specs have an inevitably tendency to try to introduce abstractions
> >    levels and wording and documentation policies that make sense for a
> >    written spec. Trying to implement actual code off the spec leads to
> the
> >    code looking and working like CRAP.
> 
> Ok, I give up: I'm wrong and you and James B are right.
> 
> >    The classic example of this is the OSI network model protocols.
> Classic
> 
> Yes, it is a _classic_ example and OSI is _very_ old.
> 
> _But_ the tendency of representing things in a _layered_, object oriented
> design has persisted.
> 
> >    spec-design, which had absolutely _zero_ relevance for the real world.
> 
> >    We still talk about the seven layers model, because it's a convenient
> >    model for _discussion_, but that has absolutely zero to do with any
> >    real-life software engineering. In other words, it's a way to _talk_
> >    about things, not to implement them.
> 
> Ok.
> 
> >    And that's important. Specs are a basis for _talking_about_ things.
> But
> >    they are _not_ a basis for implementing software.
> 
> Ok.  Let's forget about maintenance and adding _new_ functionality.
> 
> > So please don't bother talking about specs. Real standards grow up
> > _despite_ specs, not thanks to them.
> 
> Yes, you're right. Linus is always right.
> 
> Now to things more pertinent, which I'm sure people are interested in:
> 
> Jeff has been appointed to the role of integrating the SAS code
> with the Linux SCSI _model_, with James Bottomley's "transport attributes".
> So you can expect more patches from him.
> 
> Regards,
>     Luben
> 
> P.S. I have to get this 8139too.c network card here working.
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 19:57                   ` Linus Torvalds
  2005-09-29 22:49                     ` jerome lacoste
  2005-09-29 23:20                     ` Luben Tuikov
@ 2005-09-30  6:52                     ` Andre Hedrick
  2 siblings, 0 replies; 112+ messages in thread
From: Andre Hedrick @ 2005-09-30  6:52 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Arjan van de Ven, Willy Tarreau, SCSI Mailing List,
	Andrew Morton, Linux Kernel Mailing List, Luben Tuikov,
	Jeff Garzik


Linus,

I have to tip my hat to you sir.

As much as I wanted to believe and tried to make it happen ... ATA/IDE was
forced to design many exception case events.  Regardless how hard I an
others tried to invoke/create a driver to mimic the "SPEC", the hardware
people broke most of the rules and each chipset was littered with
exception cases.

It has been 7 years since you and I started butting heads, and in the end
both of us were right.  A driver could be written to follow the standard
exactly, and it would never work (alone, as-is) because the hardware was
not paying attention the rules book.

Hope you can kick back and laugh about the history, too!

Have a great Day!

Andre Hedrick
LAD Storage Consulting Group

On Thu, 29 Sep 2005, Linus Torvalds wrote:

> 
> 
> On Thu, 29 Sep 2005, Arjan van de Ven wrote:
> > 
> > a spec describes how the hw works... how we do the sw piece is up to
> > us ;)
> 
> How we do the SW is indeed up to us, but I want to step in on your first 
> point.
> 
> Again.
> 
> A "spec" is close to useless. I have _never_ seen a spec that was both big 
> enough to be useful _and_ accurate.
> 
> And I have seen _lots_ of total crap work that was based on specs. It's 
> _the_ single worst way to write software, because it by definition means 
> that the software was written to match theory, not reality.
> 
> So there's two MAJOR reasons to avoid specs:
> 
>  - they're dangerously wrong. Reality is different, and anybody who thinks 
>    specs matter over reality should get out of kernel programming NOW. 
>    When reality and specs clash, the spec has zero meaning. Zilch. Nada.
>    None.
> 
>    It's like real science: if you have a theory that doesn't match 
>    experiments, it doesn't matter _how_ much you like that theory. It's
>    wrong. You can use it as an approximation, but you MUST keep in mind 
>    that it's an approximation.
> 
>  - specs have an inevitably tendency to try to introduce abstractions
>    levels and wording and documentation policies that make sense for a 
>    written spec. Trying to implement actual code off the spec leads to the 
>    code looking and working like CRAP. 
> 
>    The classic example of this is the OSI network model protocols. Classic 
>    spec-design, which had absolutely _zero_ relevance for the real world. 
>    We still talk about the seven layers model, because it's a convenient 
>    model for _discussion_, but that has absolutely zero to do with any 
>    real-life software engineering. In other words, it's a way to _talk_ 
>    about things, not to implement them.
> 
>    And that's important. Specs are a basis for _talking_about_ things. But 
>    they are _not_ a basis for implementing software.
> 
> So please don't bother talking about specs. Real standards grow up 
> _despite_ specs, not thanks to them.
> 
> 		Linus
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30  0:35                       ` Linus Torvalds
  2005-09-30  1:25                         ` Hua Zhong
  2005-09-30  2:42                         ` Marcin Dalecki
@ 2005-09-30  7:29                         ` Douglas Gilbert
  2005-09-30 14:23                           ` Luben Tuikov
  2005-09-30 16:26                           ` Andrew Patterson
  2005-09-30 14:07                         ` Luben Tuikov
  3 siblings, 2 replies; 112+ messages in thread
From: Douglas Gilbert @ 2005-09-30  7:29 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Luben Tuikov, SCSI Mailing List, Linux Kernel Mailing List

Linus Torvalds wrote:
> 
> On Thu, 29 Sep 2005, Luben Tuikov wrote:
> 
>>>   It's like real science: if you have a theory that doesn't match 
>>>   experiments, it doesn't matter _how_ much you like that theory. It's
>>>   wrong. You can use it as an approximation, but you MUST keep in mind 
>>>   that it's an approximation.
>>
>>But this is _the_ definition of a theory.  No one is arguing that
>>a theory is not an approximation to observed behaviour.
> 
> 
> No.
> 
> A scientific theory is an approximation of observed behaviour WITH NO 
> KNOWN HOLES.
> 
> Once there are known holes in the theory, it's not a scientific theory. At 
> best it's an approximation, but quite possibly it's just plain wrong.
> 
> And that's my point. Specs are not only almost invariably badly written, 
> they also never actually match reality. 
> 
> At which point at _best_ it's just an approximation. At worst, it's much 
> worse. At worst, it causes people to ignore reality, and then it becomes 
> religion.
> 
> And that's way _way_ too common. People who ignore reality are sadly not 
> at all unusual.
> 
> "But the spec says ..." is pretty much always a sign of somebody who has 
> just blocked out the fact that some device doesn't.
> 
> So don't talk about specs.

Why not?

There are good, bad and ill-timed specs. The bad ones are
ignored. Ill-timed ones gather dust, for example the
SCSI Ultra 640 standard (SPI-5) since the industry has
bet on SAS; hope they weren't expecting timely driver
support from Linux.

As for a good spec how about the Multi Media Command (MMC)
set which allows us to read music and data CDs written
almost twenty years ago plus many different formats since
then. It is currently (in MMC-5) being enhanced to cope
with the next big bun fight in that space: Blue ray and
HD-DVD (and their various content protection systems).

In the t10.org hierarchy of specs, MMC is subservient to
the primary commands (SPC) and the general architecture
(SAM). The companies that work in the MMC space (and
tend to define that standard) have "bent the rules" over
the years. The response from the (different set of)
companies that are behind SPC and SAM was to make
allowance for MMC.
The process seems to work pretty well and I am unaware
of any proposed alternate interfaces. Transports have
come and gone but the logical interface has remained.

> Talk about working code that is _readable_ and _works_.

For SAS we have a well thought out definition for what the
interface should be to hardware specific drivers IMO. It is
called CSMI, rechristened SDI. The editor of SDI is also
the editor of SAS, SAS-1.1 and SAS-2. Judging from his work,
he knows his stuff. Unfortunately SDI uses ioctls to define
its interface, which is mainly between two kernel layers
(if one ignores pass throughs). Sorry, did I mention "ioctl",
oh that makes SDI unacceptable. Almost a year ago that is what
happened to the first proposed SAS driver for Linux. That
decision has pushed Luben (amongst others) into the position
he is in now: come up with a "better" design, produce code
and then watch it get rejected. So please cut Luben a bit
of slack.

Just in case people think that I agree with Luben on using
sysfs to represent the whole SAS topology and interesting
bits suspended in it (i.e. SAS expanders), then I don't.
I am, however, prepared to argue the detail. Since the
days of Eric Youngdale I have believed that SCSI Host Bus
Adapters (HBAs) should be addressable devices, just like
network interfaces. IMO it is the block layer and its
associated end devices that are the legacy thinking.

> There's an absolutely mindbogglingly huge difference between the two.

It is ironic that as the author of the SG_IO
passthrough ioctl the "specs" that I am
often asked to help circumvent are the "we
know better" variety built into various layers
of the linux kernel :-)

Doug Gilbert

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29  7:24                       ` David S. Miller
@ 2005-09-30  7:36                         ` Andre Hedrick
  2005-09-30 18:34                           ` Luben Tuikov
  2005-09-30 18:51                           ` Luben Tuikov
  0 siblings, 2 replies; 112+ messages in thread
From: Andre Hedrick @ 2005-09-30  7:36 UTC (permalink / raw)
  To: David S. Miller
  Cc: jgarzik, willy, luben_tuikov, patmans, ltuikov, linux-kernel,
	akpm, torvalds, linux-scsi



On Thu, 29 Sep 2005, David S. Miller wrote:

Dave,

Thanks for filling in the details I was missing about the TOE history.

Glad to see you laugh about the ski stuff.  I thought about snowboarding
then realized I would make a great mogal for someone to do an ali off.  If
you are open to questions about TOE/RDMA stuff, would like to chat with
you and see your POV on the subject.

> In that case, it is indeed a vendor trying to shove their particular
> solution down our throats.  They never even attempt to try out the
> alternatives, and we've even gone through the trouble of coming up
> with several.  And they do this because their whole buisness model is
> all about their scheme to the exclusion of anything else, not because
> what they have is better.

Luben,

Reading Dave's points above tends to point to adaptec's current direction,
as we all know. TOEs were rejected.

I stated I would help with SAS adoption because there is a SAS-Transport
model.  I asked about a possible libadaptec + libsas, and still waiting to
see if you and adaptec are up for the task.  Right now the only path open
is the one Jeff Garzik is putting forward along with James and Christop.
I have a vested interest in seeing SAS-Transport, otherwise I would have
cut and run a long time ago.

These long email threads where everyone is shout from the top of their
hill never wins anything.  After a while the hill becomes flat (from all
the stomping), and you become old and tired.

LSI pointed out they mask there SAS in firmware and make it show up in a
scsi-like or scsi state.  They also pointed out other vendors have taken
this road.  Even if Adaptec did not go this way in hardware, there still
has to be a way to map into SCSI ... sheesh this is Adaptec known for
SCSI.

Just an FYI, would suggest you cool your heels and listen for the quiet
responses.  There is more heat than light right now; maybe this thread
will offset some of the cost in the energy criss.  Will pass on advice
handed to me (when I was a maintainer) relax and listen, nobody is out to
get you (and they were right).

Cheers,

Andre

PS I didn't listen to that advice back then, don't make the same mistake.



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30  0:35                       ` Linus Torvalds
                                           ` (2 preceding siblings ...)
  2005-09-30  7:29                         ` Douglas Gilbert
@ 2005-09-30 14:07                         ` Luben Tuikov
  3 siblings, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-30 14:07 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Luben Tuikov, Arjan van de Ven, Willy Tarreau, SCSI Mailing List,
	Andrew Morton, Linux Kernel Mailing List, Jeff Garzik

On 09/29/05 20:35, Linus Torvalds wrote:
> And that's my point. Specs are not only almost invariably badly written, 
> they also never actually match reality. 

Linus, the world has changed around you.

Take a look at the SAS spec and then at a SAS chip
implementation, for example.

(We're talking abou T10 specs, right?)

> And that's way _way_ too common. People who ignore reality are sadly not 
> at all unusual.

You are saying I ignored reality?

> Talk about working code that is _readable_ and _works_.

http://linux.adaptec.com/sas/

	Luben

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30  7:29                         ` Douglas Gilbert
@ 2005-09-30 14:23                           ` Luben Tuikov
  2005-09-30 16:26                           ` Andrew Patterson
  1 sibling, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-30 14:23 UTC (permalink / raw)
  To: dougg
  Cc: Linus Torvalds, Luben Tuikov, SCSI Mailing List,
	Linux Kernel Mailing List

On 09/30/05 03:29, Douglas Gilbert wrote:
> 
> For SAS we have a well thought out definition for what the
> interface should be to hardware specific drivers IMO. It is
> called CSMI, rechristened SDI. The editor of SDI is also
> the editor of SAS, SAS-1.1 and SAS-2. Judging from his work,
> he knows his stuff. Unfortunately SDI uses ioctls to define
> its interface, which is mainly between two kernel layers
> (if one ignores pass throughs). Sorry, did I mention "ioctl",

Hi Doug,

Almost all of the SDI stuff can be extracted by a user space
library reading the SAS sysfs domain tree (which is the result
of domain discovery).

Pictures of can be found here:
http://marc.theaimsgroup.com/?l=linux-scsi&m=112629509826900&w=2

Since MPT-based hardware does domain discovery in the FIRMWARE,
this is why you do not have the domain picture as easily.

> oh that makes SDI unacceptable. Almost a year ago that is what
> happened to the first proposed SAS driver for Linux. That
> decision has pushed Luben (amongst others) into the position
> he is in now: come up with a "better" design, produce code
> and then watch it get rejected. So please cut Luben a bit
> of slack.

What James Bottomley et al. complained back then is that
"common code" to SAS should be pulled out in a "common layer".

This layer is the SAS Transport layer.

But in the mean time, LSI came out with SAS, whose driver
as you can see had nothing to do with SAS -- it was an MPT
driver after all, so James Bottomley decides that whatever
else comes along, it would use _his_ design.  Whether it
works for open transport, he doesn't want to listen.  He
is using his political power to enforce it.

> Just in case people think that I agree with Luben on using
> sysfs to represent the whole SAS topology and interesting
> bits suspended in it (i.e. SAS expanders), then I don't.
> I am, however, prepared to argue the detail. Since the

Sorry, since the discover process keeps an internal
representation of "what is out there" via discovery,
I just tacked a kobject to each structure I have anyway,
and showed it in sysfs.

I thought that was the whole purpose of sysfs -- to show
kernel internal structures and dependencies.

Plus, this is what it _actually_ looks in the physical world.

Also you have to admit -- it looks cool:
http://marc.theaimsgroup.com/?l=linux-scsi&m=112629509826900&w=2

> days of Eric Youngdale I have believed that SCSI Host Bus
> Adapters (HBAs) should be addressable devices, just like
> network interfaces. IMO it is the block layer and its
> associated end devices that are the legacy thinking.

Host Adapters are addressable -- if there's an initiator
on the domain, the discover process will discover it
and it will show up in the SAS sysfs tree.

> It is ironic that as the author of the SG_IO
> passthrough ioctl the "specs" that I am
> often asked to help circumvent are the "we
> know better" variety built into various layers
> of the linux kernel :-)

Indeed.

	Luben

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30  7:29                         ` Douglas Gilbert
  2005-09-30 14:23                           ` Luben Tuikov
@ 2005-09-30 16:26                           ` Andrew Patterson
  2005-09-30 16:47                             ` Luben Tuikov
  1 sibling, 1 reply; 112+ messages in thread
From: Andrew Patterson @ 2005-09-30 16:26 UTC (permalink / raw)
  To: dougg
  Cc: Linus Torvalds, Luben Tuikov, SCSI Mailing List,
	Linux Kernel Mailing List


On Fri, 2005-09-30 at 17:29 +1000, Douglas Gilbert wrote:

snippage.

> 
> For SAS we have a well thought out definition for what the
> interface should be to hardware specific drivers IMO. It is
> called CSMI, rechristened SDI. The editor of SDI is also
> the editor of SAS, SAS-1.1 and SAS-2. Judging from his work,
> he knows his stuff. Unfortunately SDI uses ioctls to define
> its interface, which is mainly between two kernel layers
> (if one ignores pass throughs). 

I talked to one of the authors of these specs.  SDI is an attempt to
create an open standard for the somewhat proprietary CSMI spec developed
by HP.  It is currently languishing in t10 due to the IOCTL problem you
describe below (the "no new IOCTL's" doctrine caught them by surprise).
There is some thought to going to a write()/read() on a character device
model, but this has various problems as well.  

> Sorry, did I mention "ioctl",
> oh that makes SDI unacceptable. Almost a year ago that is what
> happened to the first proposed SAS driver for Linux. 

That was one of the reasons the MPT Fusion and Adaptec drivers were
rejected.  There were others as well, such as lack of a SAS transport
class.

Andrew

> That
> decision has pushed Luben (amongst others) into the position
> he is in now: come up with a "better" design, produce code
> and then watch it get rejected. So please cut Luben a bit
> of slack.
> 
> Just in case people think that I agree with Luben on using
> sysfs to represent the whole SAS topology and interesting
> bits suspended in it (i.e. SAS expanders), then I don't.
> I am, however, prepared to argue the detail. Since the
> days of Eric Youngdale I have believed that SCSI Host Bus
> Adapters (HBAs) should be addressable devices, just like
> network interfaces. IMO it is the block layer and its
> associated end devices that are the legacy thinking.
> 
> > There's an absolutely mindbogglingly huge difference between the two.
> 
> It is ironic that as the author of the SG_IO
> passthrough ioctl the "specs" that I am
> often asked to help circumvent are the "we
> know better" variety built into various layers
> of the linux kernel :-)
> 
> Doug Gilbert
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 16:26                           ` Andrew Patterson
@ 2005-09-30 16:47                             ` Luben Tuikov
  0 siblings, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-30 16:47 UTC (permalink / raw)
  To: andrew.patterson
  Cc: dougg, Linus Torvalds, Luben Tuikov, SCSI Mailing List,
	Linux Kernel Mailing List

On 09/30/05 12:26, Andrew Patterson wrote:
> 
> I talked to one of the authors of these specs.  SDI is an attempt to
> create an open standard for the somewhat proprietary CSMI spec developed
> by HP.  It is currently languishing in t10 due to the IOCTL problem you
> describe below (the "no new IOCTL's" doctrine caught them by surprise).
> There is some thought to going to a write()/read() on a character device
> model, but this has various problems as well.  

I think that read/write from a char device is going away too.

For this reason I showed the whole picture of the SAS
domain in sysfs _and_ created a binary file attr to
send/receive SMP requests/responses to control
the domain and get attributes ("smp_portal" binary
attr of each expander).

It is completely user space driven and a user space library
is simple to write.

See drivers/scsi/sas/expander_conf.c which is a user
space utility.  For the output see Announcement 3:
http://linux.adaptec.com/sas/Announce_2.txt or here:
http://marc.theaimsgroup.com/?l=linux-scsi&m=112629509318354&w=2

The code which implements it is very tiny, at the bottom
of drivers/scsi/sas/sas_expander.c

>>Sorry, did I mention "ioctl",
>>oh that makes SDI unacceptable. Almost a year ago that is what
>>happened to the first proposed SAS driver for Linux. 
> 
> 
> That was one of the reasons the MPT Fusion and Adaptec drivers were
> rejected.  There were others as well, such as lack of a SAS transport
> class.

You mean the first Adaptec SAS "adp94xx" driver.

BTW, neither the original "adp94xx", nor the subsequent "aic94xx"
Adaptec drivers implmented _any_ ioctls for CSMI/SDI.

	Luben




^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-29 15:09                   ` Luben Tuikov
  2005-09-29 15:20                     ` Jeff Garzik
@ 2005-09-30 18:16                     ` Joe Bob Spamtest
  1 sibling, 0 replies; 112+ messages in thread
From: Joe Bob Spamtest @ 2005-09-30 18:16 UTC (permalink / raw)
  To: Luben Tuikov; +Cc: SCSI Mailing List, Linux Kernel Mailing List



Luben Tuikov wrote:
> Hardware folks needs to work with software folks and
> software folks need to work with hardware folks.
> 
> This is what makes good design.

This is so true, and so often overlooked when hardware is being designed 
and built. A lot of it can be attributed to mismanagement and bad 
communication between departments ... But, that's the drawback of the 
corporate system

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30  7:36                         ` Andre Hedrick
@ 2005-09-30 18:34                           ` Luben Tuikov
  2005-09-30 18:50                             ` Kyle Moffett
                                               ` (3 more replies)
  2005-09-30 18:51                           ` Luben Tuikov
  1 sibling, 4 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-30 18:34 UTC (permalink / raw)
  To: Andre Hedrick
  Cc: David S. Miller, jgarzik, willy, patmans, ltuikov, linux-kernel,
	akpm, torvalds, linux-scsi, James Bottomley

On 09/30/05 03:36, Andre Hedrick wrote:
> I stated I would help with SAS adoption because there is a SAS-Transport
> model.  I asked about a possible libadaptec + libsas, and still waiting to
> see if you and adaptec are up for the task.  Right now the only path open
> is the one Jeff Garzik is putting forward along with James and Christop.
> I have a vested interest in seeing SAS-Transport, otherwise I would have
> cut and run a long time ago.
> 
> These long email threads where everyone is shout from the top of their
> hill never wins anything.  After a while the hill becomes flat (from all
> the stomping), and you become old and tired.
> 
> LSI pointed out they mask there SAS in firmware and make it show up in a
> scsi-like or scsi state.  They also pointed out other vendors have taken
> this road.  Even if Adaptec did not go this way in hardware, there still
> has to be a way to map into SCSI ... sheesh this is Adaptec known for
> SCSI.

Hi Andre,

Let me know if this 4 section write up satisfies:

Section 1: MPT, SCSI Core and JB's "transport attributes"
---------------------------------------------------------

SPI drivers (say 5 years ago)
-----------------------------
 hardware implementation     (bus connect)
     firmware implementation   (transport: SPI)
        LLDD                     (exports SCSI devices (LUs))
           SCSI Core
              Command Sets


MPT-based drivers (now)
-----------------------
 hardware implementation     (interconnect/physical)
-->  Transport Layer           (firmware: FC/SPI/SAS/etc)  <--
        LLDD                     (exports SCSI devices (LUs))
           SCSI Core
              Command Sets

As you can see SCSI Core is _unaware_ of the transport.
The transport is completely implemented in FIRMWARE, relieving
the LLDD from worrying about it.  Theoretically/ideally the same
LLDD would work for _all_ transports, since the FW would
export LUs to the LLDD, which would in turn register
those with SCSI Core.

The layout is the same as before, achieving 100% backward
software compatibility.


MPT-based drivers + James Bottomley's "transport attributes"
-------------------------------------------------------------
 hardware implementation
     Transport Layer               <------+ FW/Transport dependent access method
        LLDD                  <---------- + LLDD dependent access method
           SCSI Core ---------------------'
              Command Sets

This picture is _identical_ to the one above, but
I've also shown what the "transport attributes" achieve:
They hook to the _LLDD_ to get to LLDD dependent way of
accessing "transport attributes" (any transport).  This is
JB's template unifying _all_ transports.

Note that this isn't a _management_ layer or infrastructure,
since, it _does not lie between_ the LLDD and SCSI Core.
It merely implements attribute exporting.


Section 2: USB/SBP/SAS and SCSI Core
------------------------------------

  hardware implementation            (interconnect/physical)
      firmware implementation           (SDS: TMFs + Execute Command SCSI RPC)*
          LLDD                             (Coherent interface to SDS)
-->         Transport Layer                   (Transport common to LLDDs) <--
                 SCSI Core
                    Command Sets

* SDS, Service Delivery Subsystem (see SAM 4.6)
  TMF, Task Management Function (see SAM 7)
  Execute Command SCSI RPC (see SAM 5.1)

Most immediate difference from Section 1 is that
  - the Transport Layer is _above_ the LLDD (in top-down).
  - no need for LLDD/Firmware dependent access method
    to the Transport,
  - Transport is accessed in the same way across all
    LLDDs of the same transport (USB/SBP/SAS).

Now since, the LLDDs all implement TMFs + Exec Cmnd SCSI RPC,
you can have 
  - a transport common error handling and
  - a transport common "attribute" access (sysfs),
across all LLDD of the same transport directly from userspace.

The reason the LLDDs all implement TMFs + Exec Cmnd SCSI RPC,
is that the Firmware implements it, and the reason that
the Firmware implements it is that the chip implements
it (following the transport spec).

That is, you can have _different_ LLDDs connecting you
to the _same place_ (maybe not at the same time, depending
on the transport).

SCSI Core should be completely unaware of the
Transport being used and Transport specific
Error handling is common to all such Transport
specific LLDDs (via TMFs): one for SBP, one for
USB, one for SAS. 

The whole point of this USB/SBP/SAS Transport
Layering is that you can access at each level,
thus you can add new abstractions, e.g. SATL (libata),
as is shown in the SATr06 spec.

Furthermore, when you look at the USB/SBP/SAS chips
you will see nothing about "scsi_host", and all about
"transport".

And the sysfs representation of the SAS domain is analogous
to, say, the USB representation of the USB domain.


Section 3: Legacy Thinking or Thinking Legacy
---------------------------------------------

Traditionally Error Handling has been done in
SCSI Core.  The reason for this is that the first
and only SCSI was Parallel SCSI and no other
SCSI was around (and that SAM didn't exist back then).

This is how we have the SPI-centric EH methods
in the scsi host template right now:
	int (* eh_abort_handler)(struct scsi_cmnd *);
	int (* eh_device_reset_handler)(struct scsi_cmnd *);
	int (* eh_bus_reset_handler)(struct scsi_cmnd *);
	int (* eh_host_reset_handler)(struct scsi_cmnd *);

This is fine for Parallel SCSI (SPI) but for other
transports it doesn't quite satisfy.

Let's admit it, with HCIL and with the EH, SCSI Core
is still very SPI centric.

But we should _not_ break legacy drivers and backward
support, yet we have to face the future.

The way we do this is we slowly, without disruption
to older drivers introduce, in parallel, emerge
a new, simpler, slimmer, faster SCSI Core, whereby
we accommodate new infrastructures, yet, have 100%
backward compatibility, via the current older
SCSI Core.  After all, both would be a bunch of
functions in a bunch of files.

If X works with Y, do not disrupt it.  Fix it if
it's broken.  Introduce innovation, functionality,
better design, but not at the expense of breaking
legacy.

To eliminate bugs, tweak old as little as possible,
since you cannot test on _all_ hardware the old code
works on.

To achieve maximum innovation and relevance in the fast
changing world of storage, create, innovate new
better, more accommodating design and infrastructures.

Section 4: Politics
-------------------

Let's face it: SAS is a new emerging technology.
It will be the technology for the next 10-15 years,
and *everybody* in Linux SCSI wants a piece of it.
Everybody wants their name and contribution to it.

This is fine, but we need people who clearly understand
the technology and clearly understand what, how
and why it works.  We need well-read and well educated
people.  Linux dedication is fine, but protocol knowlege
is needed too.

Can Linux afford people who have never even read SAS
to write SAS Code for Linux.  Yes, sure.  It is the
Linux's ideology: "specs are cr@p".

Conclusion
----------

Even though the SAS Transport Layer follows an _already_
establised layering infrastructure for more (less?) exotic
transports such as USB and SBP, James Bottomley has resisted
its inclusion in Linux SCSI.

Have we lost our touch with the new calling it
"non-traditional"?  Will Linux become a dinosaur?

I'm not sure how many times one can split the SAS code?
Will there be enough for everyone?

> Just an FYI, would suggest you cool your heels and listen for the quiet
> responses.  There is more heat than light right now; maybe this thread
> will offset some of the cost in the energy criss.  Will pass on advice
> handed to me (when I was a maintainer) relax and listen, nobody is out to
> get you (and they were right).

Thank you Andre for the warm advice.

James, Linus, can we have this driver in the kernel now, please?

Thank you,
	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 18:34                           ` Luben Tuikov
@ 2005-09-30 18:50                             ` Kyle Moffett
  2005-09-30 19:08                               ` Luben Tuikov
  2005-09-30 20:45                             ` James Bottomley
                                               ` (2 subsequent siblings)
  3 siblings, 1 reply; 112+ messages in thread
From: Kyle Moffett @ 2005-09-30 18:50 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Andre Hedrick, David S. Miller, jgarzik, willy, patmans, ltuikov,
	linux-kernel, akpm, torvalds, linux-scsi, James Bottomley

On Sep 30, 2005, at 14:34:42, Luben Tuikov wrote:
> This is how we have the SPI-centric EH methods in the scsi host  
> template right now:
>     int (* eh_abort_handler)(struct scsi_cmnd *);
>     int (* eh_device_reset_handler)(struct scsi_cmnd *);
>     int (* eh_bus_reset_handler)(struct scsi_cmnd *);
>     int (* eh_host_reset_handler)(struct scsi_cmnd *);

So submit patches to fix it!  You clearly understand what is wrong,  
so why not help change it?

> But we should _not_ break legacy drivers and backward support,

WRONG.  This is not the way Linux works.  We break internal APIs all  
the time.  If you need to change one _thats_OK_.  Userspace ABI is  
mostly another matter, but that's different from the internal data  
structures and functions.

> The way we do this is we slowly, without disruption to older  
> drivers introduce, in parallel, emerge a new, simpler, slimmer,  
> faster SCSI Core, whereby we accommodate new infrastructures, yet,  
> have 100% backward compatibility, via the current older SCSI Core.   
> After all, both would be a bunch of functions in a bunch of files.

Except this introduces bloat and multiplies maintainer load.  Fix the  
existing one.  If it breaks other in-core drivers, fix those to  
match.  If it breaks out-of-tree drivers, too bad!  They should get  
their code upstream and then they wouldn't need to worry.

> If X works with Y, do not disrupt it.  Fix it if it's broken.   
> Introduce innovation, functionality, better design, but not at the  
> expense of breaking legacy.

This is not the way Linux works.  It may be the way Adaptec works,  
but that's not relevant here.

> Section 4: Politics
> -------------------

s/Politics.*//g;  I hate politics.  Keep it off this list.

Cheers,
Kyle Moffett


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30  7:36                         ` Andre Hedrick
  2005-09-30 18:34                           ` Luben Tuikov
@ 2005-09-30 18:51                           ` Luben Tuikov
  1 sibling, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-30 18:51 UTC (permalink / raw)
  To: Andre Hedrick
  Cc: David S. Miller, jgarzik, willy, patmans, ltuikov, linux-kernel,
	akpm, torvalds, linux-scsi

On 09/30/05 03:36, Andre Hedrick wrote:
> I stated I would help with SAS adoption because there is a SAS-Transport
> model.  I asked about a possible libadaptec + libsas, and still waiting to
> see if you and adaptec are up for the task.  Right now the only path open
> is the one Jeff Garzik is putting forward along with James and Christop.
> I have a vested interest in seeing SAS-Transport, otherwise I would have
> cut and run a long time ago.

Hi Andre,

Let me know if this satisfies:

The infrastructure is broken into
	* SAS LLDD,
	* SAS Layer.

The SAS LLDD does phy/OOB management, and generates SAS events
to the SAS Layer.  Those events are *the only way* a SAS LLDD
communicates with the SAS Layer.  If you can generate 2 types
of event, then you can use this infrastructure.  The first two
are, loosely, "link was severed", "bytes were dmaed".  The third
kind is "received a primitive", used for domain revalidation.

A SAS LLDD should implement the Execute Command SCSI RPC and
at least one SCSI TMF (Task Management Function), in order for
the SAS Layer to communicate with the SAS LLDD.

The SAS Layer is concerned with
      * SAS Phy/Port/HA event management (LLDD generates,
        SAS Layer processes),
      * SAS Port management (creation/destruction),
      * SAS Domain discovery and revalidation,
      * SAS Domain device management,
      * SCSI Host registration/deregistration,
      * Device registration with SCSI Core (SAS) or libata
        (SATA/PI), and
      * Expander management and exporting expander control
        to user space.

The SAS Layer uses the Execute Command SCSI RPC, and the TMFs
implemented by the SAS LLDD in order to manage the domain and
the domain devices.

For details please see drivers/scsi/sas/README.

The SAS Layer represents the SAS domain in sysfs.  For each
object represented, its parent is the physical entity it attaches
to in the physical world.  So in effect, kobject_get, gets
the whole chain up on which that object depends on.

In effect, the sysfs representation of the SAS domain(s)
is what you'd see in the physical world.

Hot plugging and hot unplugging of devices, domains and subdomains
is supported.  Repeated hot plugging and hot unplugging is
also supported, naturally.

SAS introduces a new physical entity, an expander.
Expanders are _not_ SAS devices, and thus are _not_ SCSI devices.
Expanders are part of the Service Delivery Subsystem, in this case
SAS.

Expanders are controlled using the Serial Management Protocol (SMP).
Complete control is given to user space of all expanders found
in the domain, using an "smp_portal".  More of this in the second
and third email in this series.

A user space program, "expander_conf.c" is also presented to show
how one controls expanders in the domain.  It is located here:
drivers/scsi/sas/expanders_conf.c

Thank you,
	Luben

> 
> These long email threads where everyone is shout from the top of their
> hill never wins anything.  After a while the hill becomes flat (from all
> the stomping), and you become old and tired.
> 
> LSI pointed out they mask there SAS in firmware and make it show up in a
> scsi-like or scsi state.  They also pointed out other vendors have taken
> this road.  Even if Adaptec did not go this way in hardware, there still
> has to be a way to map into SCSI ... sheesh this is Adaptec known for
> SCSI.
> 
> Just an FYI, would suggest you cool your heels and listen for the quiet
> responses.  There is more heat than light right now; maybe this thread
> will offset some of the cost in the energy criss.  Will pass on advice
> handed to me (when I was a maintainer) relax and listen, nobody is out to
> get you (and they were right).
> 
> Cheers,
> 
> Andre
> 
> PS I didn't listen to that advice back then, don't make the same mistake.
> 
> 
> 


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 18:50                             ` Kyle Moffett
@ 2005-09-30 19:08                               ` Luben Tuikov
  2005-09-30 21:31                                 ` Kyle Moffett
  0 siblings, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-09-30 19:08 UTC (permalink / raw)
  To: Kyle Moffett
  Cc: Andre Hedrick, David S. Miller, jgarzik, willy, patmans, ltuikov,
	linux-kernel, akpm, torvalds, linux-scsi, James Bottomley

On 09/30/05 14:50, Kyle Moffett wrote:
> On Sep 30, 2005, at 14:34:42, Luben Tuikov wrote:
> 
>>This is how we have the SPI-centric EH methods in the scsi host  
>>template right now:
>>    int (* eh_abort_handler)(struct scsi_cmnd *);
>>    int (* eh_device_reset_handler)(struct scsi_cmnd *);
>>    int (* eh_bus_reset_handler)(struct scsi_cmnd *);
>>    int (* eh_host_reset_handler)(struct scsi_cmnd *);
> 
> 
> So submit patches to fix it!  You clearly understand what is wrong,  
> so why not help change it?

Because
  - I do not want to give heart attack to all existing LLDDs
  - Some LLDD would never be able to be changed
  - Some LLDD work on very _scarce_ hardware which we cannot test.
  - plus such radical changes are neither warranted nor necessary.

It is better to keep legacy around, until all you'll have on
your new serverboard is a SAS/SATA storage chip such as
AIC-94xx or say BCM8603.  Then you can compile out most
of the legacy stuff.

>>But we should _not_ break legacy drivers and backward support,
> 
> WRONG.  This is not the way Linux works.  We break internal APIs all  
> the time.  If you need to change one _thats_OK_.  Userspace ABI is  

Well, I can never have it right.  Some people say you shouldn't break
it, others say let's break the whole thing and give heart attack
to all LLDDs, other say it is impossible to change all LLDD since
the hardware is not around, etc, etc.

I think not breaking anything (for now at least) would be the
_easiest_ and most painless way to transition.

>>The way we do this is we slowly, without disruption to older  
>>drivers introduce, in parallel, emerge a new, simpler, slimmer,  
>>faster SCSI Core, whereby we accommodate new infrastructures, yet,  
>>have 100% backward compatibility, via the current older SCSI Core.   
>>After all, both would be a bunch of functions in a bunch of files.
> 
> 
> Except this introduces bloat and multiplies maintainer load.  Fix the  
> existing one.  If it breaks other in-core drivers, fix those to  

Well, not necessarily.  It would be more painful and more maintainer
load if we did what you suggest.  The overhead would be enormous.

>>Section 4: Politics
>>-------------------
> 
> 
> s/Politics.*//g;  I hate politics.  Keep it off this list.

Me too, but we are idealists.  Politics is an integral part of
life.

Long time ago, in a galaxy far, far away...
I literally sat in a meeting whereby technical staff of _several_
companies agreed that Pi=3.0.

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30  2:42                         ` Marcin Dalecki
@ 2005-09-30 19:12                           ` Joe Bob Spamtest
  2005-09-30 19:38                             ` Bob Copeland
  0 siblings, 1 reply; 112+ messages in thread
From: Joe Bob Spamtest @ 2005-09-30 19:12 UTC (permalink / raw)
  To: Marcin Dalecki
  Cc: Linus Torvalds, SCSI Mailing List, Linux Kernel Mailing List

Marcin Dalecki wrote:
> On 2005-09-30, at 02:35, Linus Torvalds wrote:
>> A scientific theory is an approximation of observed behaviour WITH NO
>> KNOWN HOLES.
> 
> Since "approximation" is equivalent to a "known hole", there is no  
> single scientific theory without known holes out there?! Well that's  a 
> segfault in brain - unless you don't consider math science of course.
> 
> A scientific theory is just a set of axioms and deduction rules. Not  
> much more by definition...

I think a better explanation of 'scientific theory' is:

an explanation or definition of observed behaviour with no known error

which, is what I believe Linus was trying to say

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 19:12                           ` Joe Bob Spamtest
@ 2005-09-30 19:38                             ` Bob Copeland
  0 siblings, 0 replies; 112+ messages in thread
From: Bob Copeland @ 2005-09-30 19:38 UTC (permalink / raw)
  To: Joe Bob Spamtest; +Cc: Linux Kernel Mailing List

[cc trimmed]

> I think a better explanation of 'scientific theory' is:
>
> an explanation or definition of observed behaviour with no known error

...that is testable.  (Not that this has anything to do with the point.)

While jumping on the thread for no good reason, I might point out (to
Luben) that ^w is erase word and ^h is erase character.  Your stty
settings may vary.

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 18:34                           ` Luben Tuikov
  2005-09-30 18:50                             ` Kyle Moffett
@ 2005-09-30 20:45                             ` James Bottomley
  2005-09-30 22:05                               ` Luben Tuikov
  2005-09-30 22:04                             ` Andre Hedrick
  2005-09-30 23:57                             ` Jeff Garzik
  3 siblings, 1 reply; 112+ messages in thread
From: James Bottomley @ 2005-09-30 20:45 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Andre Hedrick, David S. Miller, Jeff Garzik, willy,
	Patrick Mansfield, ltuikov, Linux Kernel, Andrew Morton,
	Linus Torvalds, SCSI Mailing List

On Fri, 2005-09-30 at 14:34 -0400, Luben Tuikov wrote:
> James, Linus, can we have this driver in the kernel now, please?

A while ago I told you that if you could show that the transport class
abstraction could not support both the aic94xx and LSI SAS cards then we
could look at doing SAS differently.  Since then you have asserted many
times that a transport class could not work for the aic94xx (mostly by
making inaccurate statements about what the transport class abstraction
is) but have never actually provided any evidence for your assertion.

In a recent prior email, you said:

> Now to things more pertinent, which I'm sure people are interested in:
> 
> Jeff has been appointed to the role of integrating the SAS code
> with the Linux SCSI _model_, with James Bottomley's "transport
> attributes".
> So you can expect more patches from him.

So very soon now, with proof by code, we shall have confirmation or
negation of that assertion.  I'll wait quietly for this to happen, and I
would suggest you do the same.

James



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 19:08                               ` Luben Tuikov
@ 2005-09-30 21:31                                 ` Kyle Moffett
  2005-09-30 22:10                                   ` Greg Freemyer
  2005-09-30 22:14                                   ` Luben Tuikov
  0 siblings, 2 replies; 112+ messages in thread
From: Kyle Moffett @ 2005-09-30 21:31 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Andre Hedrick, David S. Miller, jgarzik, willy, patmans, ltuikov,
	linux-kernel, akpm, torvalds, linux-scsi, James Bottomley

On Sep 30, 2005, at 15:08:15, Luben Tuikov wrote:
> On 09/30/05 14:50, Kyle Moffett wrote:
>> On Sep 30, 2005, at 14:34:42, Luben Tuikov wrote:
>>
>>> This is how we have the SPI-centric EH methods in the scsi host  
>>> template right now:
>>>    int (* eh_abort_handler)(struct scsi_cmnd *);
>>>    int (* eh_device_reset_handler)(struct scsi_cmnd *);
>>>    int (* eh_bus_reset_handler)(struct scsi_cmnd *);
>>>    int (* eh_host_reset_handler)(struct scsi_cmnd *);
>>
>> So submit patches to fix it!  You clearly understand what is  
>> wrong, so why not help change it?
>
> Because
>   - I do not want to give heart attack to all existing LLDDs

Significance of change is not an issue, assuming the change is broken  
up into a collection of small obvious changes as highlighted in  
Documentation/SubmittingPatches

>   - Some LLDD would never be able to be changed

Why not?  It's easy to change APIs, even stuff as invasive as the VM,  
the device driver model, etc, and those get changed all the time.

>   - Some LLDD work on very _scarce_ hardware which we cannot test.

You don't have to worry all that much about testing.  If your patches  
are small and obviously correct (like they should be), then they will  
get enough review during submission that there will only be a very  
small number of bugs.  The few remaining bugs will probably be ironed  
out in -mm.  In any case, if nobody uses hardware anymore, eventually  
the driver will get sufficiently crufty and out of date that it will  
be recognized as such and removed.

>   - plus such radical changes are neither warranted nor necessary.

Jeff Garzik et. al. seem to think that they are necessary, and I  
agree.  You don't need to fork SCSI-core; doing so would just double  
the maintainer load, and _that_ is neither warranted nor necessary.

> It is better to keep legacy around, until all you'll have on your  
> new serverboard is a SAS/SATA storage chip such as AIC-94xx or say  
> BCM8603.  Then you can compile out most of the legacy stuff.

Precisely.  When nobody uses the legacy drivers to the point that  
they aren't fixed or maintained anymore because no-one reports bugs,  
then said drivers can be removed from the kernel entirely, along with  
any support code.  The model I describe here works better because it  
keeps a _single_ clean core subsystem, and leaves any lack-of- 
maintenance crap in the old drivers.

> I think not breaking anything (for now at least) would be the  
> _easiest_ and most painless way to transition.

Until somebody wants to add a new high-level SCSI feature that works  
for both the new and the old devices.  Then they have to do it _twice_.

>>> The way we do this is we slowly, without disruption to older  
>>> drivers introduce, in parallel, emerge a new, simpler, slimmer,  
>>> faster SCSI Core, whereby we accommodate new infrastructures,  
>>> yet, have 100% backward compatibility, via the current older SCSI  
>>> Core. After all, both would be a bunch of functions in a bunch of  
>>> files.
>>
>> Except this introduces bloat and multiplies maintainer load.  Fix the
>> existing one.  If it breaks other in-core drivers, fix those to
>
> Well, not necessarily.  It would be more painful and more  
> maintainer load if we did what you suggest.  The overhead would be  
> enormous.

So you're saying fixing the current SCSI subsystem once *now* costs  
more than applying all *future* SCSI fixes to _two_ SCSI subsystems,  
handling bug reports for _two_ SCSI subsystems, etc.

>> s/Politics.*//g;  I hate politics.  Keep it off this list.
>
> Me too, but we are idealists.  Politics is an integral part of life.

Politics are not an integral part of productive technical  
discussions, though.  If you discuss technical topics and provide  
realistic technical descriptions, examples, reasons, code, etc, then  
politics tends not to matter in the discussion, and we're all happier  
people.

Cheers,
Kyle Moffett

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCM/CS/IT/U d- s++: a18 C++++>$ UB/L/X/*++++(+)>$ P+++(++++)>$ L++++(+ 
++) E W++(+) N+++(++) o? K? w--- O? M++ V? PS+() PE+(-) Y+ PGP+++ t+(+ 
++) 5 X R? tv-(--) b++++(++) DI+ D+ G e->++++$ h!*()>++$ r  !y?(-)
------END GEEK CODE BLOCK------



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 18:34                           ` Luben Tuikov
  2005-09-30 18:50                             ` Kyle Moffett
  2005-09-30 20:45                             ` James Bottomley
@ 2005-09-30 22:04                             ` Andre Hedrick
  2005-09-30 22:32                               ` Luben Tuikov
  2005-09-30 23:57                             ` Jeff Garzik
  3 siblings, 1 reply; 112+ messages in thread
From: Andre Hedrick @ 2005-09-30 22:04 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: David S. Miller, jgarzik, willy, patmans, ltuikov, linux-kernel,
	akpm, torvalds, linux-scsi, James Bottomley



On Fri, 30 Sep 2005, Luben Tuikov wrote:

> Hi Andre,
> 
> Let me know if this 4 section write up satisfies:

> Section 4: Politics
> -------------------
> 
> Let's face it: SAS is a new emerging technology.
> It will be the technology for the next 10-15 years,
> and *everybody* in Linux SCSI wants a piece of it.
> Everybody wants their name and contribution to it.

No true, many of us could careless about credit list.

> This is fine, but we need people who clearly understand
> the technology and clearly understand what, how
> and why it works.  We need well-read and well educated
> people.  Linux dedication is fine, but protocol knowlege
> is needed too.

Sometimes teaching others is a better way to bring them around to your
view point while learning about their goals.  Since everyone/most agree
your T10 knowledge is strong, others have pointed out you are savy enough
to work around problems over fixing them in general.  Blah blah ...

Just show everyone why it can not work the "Linux Way" and defend the
points logically.  Should the defense of it not be possible, then the
point is lost.

> Can Linux afford people who have never even read SAS
> to write SAS Code for Linux.  Yes, sure.  It is the
> Linux's ideology: "specs are cr@p".

SPECs become crap when organizations like STA with T10 make joining and
voting on the technology under NCITS $10,000.00 annual membership.  This
is old boys club rules, otherwise I would have joined and terrorized T10
like I did to T13.  Exclusion breeds distrust.

> Conclusion
> ----------
> 
> Even though the SAS Transport Layer follows an _already_
> establised layering infrastructure for more (less?) exotic
> transports such as USB and SBP, James Bottomley has resisted
> its inclusion in Linux SCSI.

If this is accurate then it is fair to raise a question; however, few can
stand in judgement because they were present in for the discussions.  The
remander (self included) are in the dark.

Cheers,

Andre


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 20:45                             ` James Bottomley
@ 2005-09-30 22:05                               ` Luben Tuikov
  2005-10-01  0:38                                 ` Jeff Garzik
  0 siblings, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-09-30 22:05 UTC (permalink / raw)
  To: James Bottomley
  Cc: Andre Hedrick, David S. Miller, Jeff Garzik, willy,
	Patrick Mansfield, ltuikov, Linux Kernel, Andrew Morton,
	Linus Torvalds, SCSI Mailing List

On 09/30/05 16:45, James Bottomley wrote:
> On Fri, 2005-09-30 at 14:34 -0400, Luben Tuikov wrote:
> 
>>James, Linus, can we have this driver in the kernel now, please?
> 
> 
> A while ago I told you that if you could show that the transport class
> abstraction could not support both the aic94xx and LSI SAS cards then we

I have, by example and by spec.  They both use two different
and distinct architectures.

Now _you_ have decided that this isn't the case, simply because
you want to prove your own idea.  (which breaks SAM layering)

I think I explained the similarity of the SAS Transport Layer
to *USB and SBP*.

As I said: everyone wants a pice of the SAS code.
You do too.

I'm sure you'll do whatever humanly possible to show
that _your_ idea can be applied: you can do this now:
just use a big if () { ... } else { ... } statement and
you're done.

Furthermore I do not see the reasons to umbrella both
"aic94xx and LSI cards" when they are _completely different_
in architecture: MPT and open transport (ala USB Storage and SBP).

> could look at doing SAS differently.  Since then you have asserted many
> times that a transport class could not work for the aic94xx (mostly by
> making inaccurate statements about what the transport class abstraction
> is) but have never actually provided any evidence for your assertion.

The code is here:
http://linux.adaptec.com/sas/

>>Now to things more pertinent, which I'm sure people are interested in:
>>
>>Jeff has been appointed to the role of integrating the SAS code
>>with the Linux SCSI _model_, with James Bottomley's "transport
>>attributes".
>>So you can expect more patches from him.
> 
> So very soon now, with proof by code, we shall have confirmation or
> negation of that assertion.  I'll wait quietly for this to happen, and I
> would suggest you do the same.

I just thought it was only fare to the rest of the community
to know how far the politics has escalated.

Everyone wants a piece of the SAS code.

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 21:31                                 ` Kyle Moffett
@ 2005-09-30 22:10                                   ` Greg Freemyer
  2005-09-30 22:19                                     ` Luben Tuikov
  2005-09-30 23:54                                     ` Jeff Garzik
  2005-09-30 22:14                                   ` Luben Tuikov
  1 sibling, 2 replies; 112+ messages in thread
From: Greg Freemyer @ 2005-09-30 22:10 UTC (permalink / raw)
  To: Kyle Moffett
  Cc: Luben Tuikov, Andre Hedrick, David S. Miller, jgarzik, willy,
	patmans, ltuikov, linux-kernel, akpm, torvalds, linux-scsi,
	James Bottomley

> >>> The way we do this is we slowly, without disruption to older
> >>> drivers introduce, in parallel, emerge a new, simpler, slimmer,
> >>> faster SCSI Core, whereby we accommodate new infrastructures,
> >>> yet, have 100% backward compatibility, via the current older SCSI
> >>> Core. After all, both would be a bunch of functions in a bunch of
> >>> files.
> >>
> >> Except this introduces bloat and multiplies maintainer load.  Fix the
> >> existing one.  If it breaks other in-core drivers, fix those to
> >
> > Well, not necessarily.  It would be more painful and more
> > maintainer load if we did what you suggest.  The overhead would be
> > enormous.
>
> So you're saying fixing the current SCSI subsystem once *now* costs
> more than applying all *future* SCSI fixes to _two_ SCSI subsystems,
> handling bug reports for _two_ SCSI subsystems, etc.
>

Luben has more than once called for adding a small number of
additional calls to the existing SCSI core.  These calls would
implement the new (reduced) functionallity.  The old calls would
continue to support the full SPI functionallity.  No existing  LLDD
would need modification.

Then, over time, more radical restructuring could be done that pulls
SPI out of SCSI core.

I believe this proposal is what he was talking about, not the brand
new simplified SCSI core that has been discussed recently in this
thread.

Greg
--
Greg Freemyer
The Norcross Group
Forensics for the 21st Century

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 21:31                                 ` Kyle Moffett
  2005-09-30 22:10                                   ` Greg Freemyer
@ 2005-09-30 22:14                                   ` Luben Tuikov
  2005-10-01  0:33                                     ` Jeff Garzik
  1 sibling, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-09-30 22:14 UTC (permalink / raw)
  To: Kyle Moffett
  Cc: Andre Hedrick, David S. Miller, jgarzik, willy, patmans, ltuikov,
	linux-kernel, akpm, torvalds, linux-scsi, James Bottomley

On 09/30/05 17:31, Kyle Moffett wrote:
> Jeff Garzik et. al. seem to think that they are necessary, and I  

I've been contending this since before Jeff started work on
libata.  But none of the ideas: 64 bit LUN, HCIL removal, etc.,
were accepted with "submit a patch".

> So you're saying fixing the current SCSI subsystem once *now* costs  
> more than applying all *future* SCSI fixes to _two_ SCSI subsystems,  
> handling bug reports for _two_ SCSI subsystems, etc.

I'm saying that the current "old" one is already obsolete,
when all you have is a SAS chip on your mainboard.

All you need is a small, tiny, fast, slim SCSI Core.

>>>s/Politics.*//g;  I hate politics.  Keep it off this list.
>>
>>Me too, but we are idealists.  Politics is an integral part of life.
> 
> 
> Politics are not an integral part of productive technical  
> discussions, though.  If you discuss technical topics and provide  
> realistic technical descriptions, examples, reasons, code, etc, then  
> politics tends not to matter in the discussion, and we're all happier  
> people.

Yes, please re-read this thread, and open and read all the
references I've included to SAM, SPC, SAS and SAT of T10.org.

Politics: "Nah, whatever you say, specs are *crap* and we'll
do it our way.  We are not interested in your way, even if it
were better.  Oh, and BTW, REQUEST SENSE clears ACA and LUN
is a u64."

See?
	Luben

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 22:10                                   ` Greg Freemyer
@ 2005-09-30 22:19                                     ` Luben Tuikov
  2005-09-30 23:54                                     ` Jeff Garzik
  1 sibling, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-30 22:19 UTC (permalink / raw)
  To: Kyle Moffett
  Cc: Greg Freemyer, Andre Hedrick, David S. Miller, jgarzik, willy,
	patmans, ltuikov, linux-kernel, akpm, torvalds, linux-scsi,
	James Bottomley

On 09/30/05 18:10, Greg Freemyer wrote:
> 
> Luben has more than once called for adding a small number of
> additional calls to the existing SCSI core.  These calls would
> implement the new (reduced) functionallity.  The old calls would
> continue to support the full SPI functionallity.  No existing  LLDD
> would need modification.
> 
> Then, over time, more radical restructuring could be done that pulls
> SPI out of SCSI core.
> 
> I believe this proposal is what he was talking about, not the brand
> new simplified SCSI core that has been discussed recently in this
> thread.

See?  There _are_ smart people out there.

	Luben

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 22:04                             ` Andre Hedrick
@ 2005-09-30 22:32                               ` Luben Tuikov
  0 siblings, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-09-30 22:32 UTC (permalink / raw)
  To: Andre Hedrick
  Cc: David S. Miller, jgarzik, willy, patmans, ltuikov, linux-kernel,
	akpm, torvalds, linux-scsi, James Bottomley

On 09/30/05 18:04, Andre Hedrick wrote:
> 
> No true, many of us could careless about credit list.

I wasn't talking about you.  They know who they are.

> Sometimes teaching others is a better way to bring them around to your
> view point while learning about their goals.  Since everyone/most agree
> your T10 knowledge is strong, others have pointed out you are savy enough
> to work around problems over fixing them in general.  Blah blah ...

Thank you Andre.

> Just show everyone why it can not work the "Linux Way" and defend the
> points logically.  Should the defense of it not be possible, then the
> point is lost.

I think I have.  All the references to T10, all the pictures
to the email you replied to which you deleted, all the words.

> SPECs become crap when organizations like STA with T10 make joining and
> voting on the technology under NCITS $10,000.00 annual membership.  This
> is old boys club rules, otherwise I would have joined and terrorized T10
> like I did to T13.  Exclusion breeds distrust.

Well, the T10.org reflector is open to everyone.

Of course voting-membership is expensive.  And it should be so.
They don't want every "Joe" (no offence to Joe or to LKML or LSML
participants) to participate.

If you are a voting member then you really have a reason, you really
know what you're talking about and voting for and you really are
serious. It means that you or your company care.
It also becoms quickly enough obvious if you know your stuff
after a meeting or two.

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 22:10                                   ` Greg Freemyer
  2005-09-30 22:19                                     ` Luben Tuikov
@ 2005-09-30 23:54                                     ` Jeff Garzik
  2005-10-01  4:58                                       ` Willy Tarreau
  2005-10-03 14:04                                       ` Luben Tuikov
  1 sibling, 2 replies; 112+ messages in thread
From: Jeff Garzik @ 2005-09-30 23:54 UTC (permalink / raw)
  To: Greg Freemyer
  Cc: Kyle Moffett, Luben Tuikov, Andre Hedrick, David S. Miller,
	willy, patmans, ltuikov, linux-kernel, akpm, torvalds,
	linux-scsi, James Bottomley

Greg Freemyer wrote:
> Luben has more than once called for adding a small number of
> additional calls to the existing SCSI core.  These calls would
> implement the new (reduced) functionallity.  The old calls would
> continue to support the full SPI functionallity.  No existing  LLDD
> would need modification.

IOW, what Luben wants is:

	if (Luben)
		do this
	else
		do current stuff

If this is the case, why bother touching drivers/scsi/* at all?

Regards,

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 18:34                           ` Luben Tuikov
                                               ` (2 preceding siblings ...)
  2005-09-30 22:04                             ` Andre Hedrick
@ 2005-09-30 23:57                             ` Jeff Garzik
  2005-10-03 14:15                               ` Luben Tuikov
  3 siblings, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-09-30 23:57 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Andre Hedrick, David S. Miller, willy, patmans, ltuikov,
	linux-kernel, akpm, torvalds, linux-scsi, James Bottomley

Luben Tuikov wrote:
> MPT-based drivers + James Bottomley's "transport attributes"

You continue to fail to see that a transport class is more than just 
transport attributes.

You continue to fail to see that working on transport class support IS a 
transport layer, that includes management.

Is you don't understand this fundamental stuff, how can we expect you to 
get it right?

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 22:14                                   ` Luben Tuikov
@ 2005-10-01  0:33                                     ` Jeff Garzik
  2005-10-03 14:18                                       ` Luben Tuikov
  0 siblings, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-10-01  0:33 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Kyle Moffett, Andre Hedrick, David S. Miller, willy, patmans,
	ltuikov, linux-kernel, akpm, torvalds, linux-scsi,
	James Bottomley

Luben Tuikov wrote:
> But none of the ideas: 64 bit LUN, HCIL removal, etc.,
> were accepted with "submit a patch".

I concede this may have been the response in the past.  Its not, now.



>>So you're saying fixing the current SCSI subsystem once *now* costs  
>>more than applying all *future* SCSI fixes to _two_ SCSI subsystems,  
>>handling bug reports for _two_ SCSI subsystems, etc.
> 
> 
> I'm saying that the current "old" one is already obsolete,
> when all you have is a SAS chip on your mainboard.
> 
> All you need is a small, tiny, fast, slim SCSI Core.

Then don't use it at all.  Write a block driver, if you really feel we 
need two SCSI cores.


> Politics: "Nah, whatever you say, specs are *crap* and we'll
> do it our way.  We are not interested in your way, even if it
> were better.  Oh, and BTW, REQUEST SENSE clears ACA and LUN
> is a u64."

This is a misrepresentation.  -We- understand the stuff you have posted.

But you continue to demonstrate that you simply do not understand the 
existing SCSI core code.

The SAS transport class supports commonality across all SAS 
implementations.  This includes both MPT and Adaptec 94xx.

SAS transport class + libsas supports software implementations of SAS, 
including transport layer management.  This includes Adaptec 94xx but 
NOT MPT.

	Jeff




^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 22:05                               ` Luben Tuikov
@ 2005-10-01  0:38                                 ` Jeff Garzik
  2005-10-03 15:27                                   ` Luben Tuikov
  0 siblings, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-10-01  0:38 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: James Bottomley, Andre Hedrick, David S. Miller, willy,
	Patrick Mansfield, ltuikov, Linux Kernel, Andrew Morton,
	Linus Torvalds, SCSI Mailing List

Luben Tuikov wrote:
> I'm sure you'll do whatever humanly possible to show
> that _your_ idea can be applied: you can do this now:
> just use a big if () { ... } else { ... } statement and
> you're done.

This is not how we do things in Linux.  You're doubling the maintenance 
burden.

If you really want to do this, at least don't fill up drivers/scsi/ with 
an additional, completely unrelated codepath.


> Furthermore I do not see the reasons to umbrella both
> "aic94xx and LSI cards" when they are _completely different_
> in architecture: MPT and open transport (ala USB Storage and SBP).

There is commonality between aic94xx and MPT/LSI stuff.  aic94xx SAS 
transport layer is a superset of MPT/LSI SAS transport:  it clearly 
needs far more management code.

We understand this.  The part you don't understand is that we want to 
emphasize the commonality, rather than let aic94xx and MPT/LSI go in 
completely different directions.

Read it again:  aic94xx/BCMxxx is a superset of functionality, not 
completely different.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 23:54                                     ` Jeff Garzik
@ 2005-10-01  4:58                                       ` Willy Tarreau
  2005-10-03 15:08                                         ` Luben Tuikov
  2005-10-03 14:04                                       ` Luben Tuikov
  1 sibling, 1 reply; 112+ messages in thread
From: Willy Tarreau @ 2005-10-01  4:58 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Greg Freemyer, Kyle Moffett, Luben Tuikov, Andre Hedrick,
	David S. Miller, willy, patmans, ltuikov, linux-kernel, akpm,
	torvalds, linux-scsi, James Bottomley

On Fri, Sep 30, 2005 at 07:54:08PM -0400, Jeff Garzik wrote:
> Greg Freemyer wrote:
> >Luben has more than once called for adding a small number of
> >additional calls to the existing SCSI core.  These calls would
> >implement the new (reduced) functionallity.  The old calls would
> >continue to support the full SPI functionallity.  No existing  LLDD
> >would need modification.
> 
> IOW, what Luben wants is:
> 
> 	if (Luben)
> 		do this
> 	else
> 		do current stuff
> 
> If this is the case, why bother touching drivers/scsi/* at all?

that's the reason why I proposed that this moved to drivers/sas/* or
somewhere else so that there is no maintaining conflict.

Regards,
Willy


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 23:54                                     ` Jeff Garzik
  2005-10-01  4:58                                       ` Willy Tarreau
@ 2005-10-03 14:04                                       ` Luben Tuikov
  1 sibling, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-10-03 14:04 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Greg Freemyer, Kyle Moffett, Andre Hedrick, David S. Miller,
	willy, patmans, ltuikov, linux-kernel, akpm, torvalds,
	linux-scsi, James Bottomley

On 09/30/05 19:54, Jeff Garzik wrote:
> Greg Freemyer wrote:
> 
>>Luben has more than once called for adding a small number of
>>additional calls to the existing SCSI core.  These calls would
>>implement the new (reduced) functionallity.  The old calls would
>>continue to support the full SPI functionallity.  No existing  LLDD
>>would need modification.
> 
> 
> IOW, what Luben wants is:
> 
> 	if (Luben)
> 		do this
> 	else
> 		do current stuff
> 
> If this is the case, why bother touching drivers/scsi/* at all?

In order to have a new better, faster, slimmer SCSI Core.

	Luben

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-09-30 23:57                             ` Jeff Garzik
@ 2005-10-03 14:15                               ` Luben Tuikov
  2005-10-03 15:57                                 ` Jeff Garzik
  2005-10-03 19:10                                 ` Mike Christie
  0 siblings, 2 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-10-03 14:15 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Andre Hedrick, David S. Miller, willy, patmans, ltuikov,
	linux-kernel, akpm, torvalds, linux-scsi, James Bottomley

On 09/30/05 19:57, Jeff Garzik wrote:
> Luben Tuikov wrote:
> 
>>MPT-based drivers + James Bottomley's "transport attributes"
> 
> 
> You continue to fail to see that a transport class is more than just 
> transport attributes.
> 
> You continue to fail to see that working on transport class support IS a 
> transport layer, that includes management.
> 
> Is you don't understand this fundamental stuff, how can we expect you to 
> get it right?

>From what I see, because of its *layering* position
JB's "transport attributes" cannot satisfy open transport.

The reason is that MPT-based drivers indeed do need host template
in the LLDD.

Open Transport (SBP/USB/SAS) do not, since the chip is only
an interface to the transport.

The host template is implemented by a transport layer,
say USB Storage or the SAS Transport Layer.

This allows you to do great things, like layer
intersection.

	Luben

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-01  0:33                                     ` Jeff Garzik
@ 2005-10-03 14:18                                       ` Luben Tuikov
  2005-10-03 14:26                                         ` I request inclusion of SAS Transport Layer and AIC-94xx intothe kernel David Lang
  2005-10-03 16:01                                         ` I request inclusion of SAS Transport Layer and AIC-94xx into the kernel Jeff Garzik
  0 siblings, 2 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-10-03 14:18 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Kyle Moffett, Andre Hedrick, David S. Miller, willy, patmans,
	ltuikov, linux-kernel, akpm, torvalds, linux-scsi,
	James Bottomley

On 09/30/05 20:33, Jeff Garzik wrote:
> Luben Tuikov wrote:
> 
>>But none of the ideas: 64 bit LUN, HCIL removal, etc.,
>>were accepted with "submit a patch".
> 
> 
> I concede this may have been the response in the past.  Its not, now.
> 
> 
> 
> 
>>>So you're saying fixing the current SCSI subsystem once *now* costs  
>>>more than applying all *future* SCSI fixes to _two_ SCSI subsystems,  
>>>handling bug reports for _two_ SCSI subsystems, etc.
>>
>>
>>I'm saying that the current "old" one is already obsolete,
>>when all you have is a SAS chip on your mainboard.
>>
>>All you need is a small, tiny, fast, slim SCSI Core.
> 
> 
> Then don't use it at all.  Write a block driver, if you really feel we 
> need two SCSI cores.
> 
> 
> 
>>Politics: "Nah, whatever you say, specs are *crap* and we'll
>>do it our way.  We are not interested in your way, even if it
>>were better.  Oh, and BTW, REQUEST SENSE clears ACA and LUN
>>is a u64."
> 
> 
> This is a misrepresentation.  -We- understand the stuff you have posted.
> 
> But you continue to demonstrate that you simply do not understand the 
> existing SCSI core code.
> 
> The SAS transport class supports commonality across all SAS 
> implementations.  This includes both MPT and Adaptec 94xx.
> 
> SAS transport class + libsas supports software implementations of SAS, 
> including transport layer management.  This includes Adaptec 94xx but 
> NOT MPT.

You almost get it right, other than the layering infrastructure.

The SAS Transport Layer is a layer in its own right.  It is not
a "libsas".

MPT and open transport a very different, one hides the transport,
i.e. the transport layer is in firmware; the other exposes it
and needs a transport layer. See the pictures here:
http://marc.theaimsgroup.com/?l=linux-kernel&m=112810649712793&w=2

	Luben



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx intothe kernel
  2005-10-03 14:18                                       ` Luben Tuikov
@ 2005-10-03 14:26                                         ` David Lang
  2005-10-03 15:19                                           ` Luben Tuikov
  2005-10-03 16:01                                         ` I request inclusion of SAS Transport Layer and AIC-94xx into the kernel Jeff Garzik
  1 sibling, 1 reply; 112+ messages in thread
From: David Lang @ 2005-10-03 14:26 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Jeff Garzik, Kyle Moffett, Andre Hedrick, David S. Miller, willy,
	patmans, ltuikov, linux-kernel, akpm, torvalds, linux-scsi,
	James Bottomley

On Mon, 3 Oct 2005, Luben Tuikov wrote:

>>
>> The SAS transport class supports commonality across all SAS
>> implementations.  This includes both MPT and Adaptec 94xx.
>>
>> SAS transport class + libsas supports software implementations of SAS,
>> including transport layer management.  This includes Adaptec 94xx but
>> NOT MPT.
>
> You almost get it right, other than the layering infrastructure.
>
> The SAS Transport Layer is a layer in its own right.  It is not
> a "libsas".
>
> MPT and open transport a very different, one hides the transport,
> i.e. the transport layer is in firmware; the other exposes it
> and needs a transport layer. See the pictures here:
> http://marc.theaimsgroup.com/?l=linux-kernel&m=112810649712793&w=2

in this case wouldn't it be trivial to write a 'null transport' driver 
that just passed things down to the card to let the firmware deal with it?
(reformatting the data if needed)

having a null driver for a layer for some hardware, and a much more 
complex driver for the same layer for other hardware is fairly common in 
Linux. I believe ti was Linus that said in an interview that Linux is now 
largely designed for an ideal abstracted CPU, with code put in on the 
architectures that don't have a feature to simulate that feature in 
software.

David Lang

-- 
There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.
  -- C.A.R. Hoare

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-01  4:58                                       ` Willy Tarreau
@ 2005-10-03 15:08                                         ` Luben Tuikov
  0 siblings, 0 replies; 112+ messages in thread
From: Luben Tuikov @ 2005-10-03 15:08 UTC (permalink / raw)
  To: Willy Tarreau
  Cc: Jeff Garzik, Greg Freemyer, Kyle Moffett, Andre Hedrick,
	David S. Miller, patmans, ltuikov, linux-kernel, akpm, torvalds,
	linux-scsi, James Bottomley

On 10/01/05 00:58, Willy Tarreau wrote:
> On Fri, Sep 30, 2005 at 07:54:08PM -0400, Jeff Garzik wrote:
> 
>>Greg Freemyer wrote:
>>
>>>Luben has more than once called for adding a small number of
>>>additional calls to the existing SCSI core.  These calls would
>>>implement the new (reduced) functionallity.  The old calls would
>>>continue to support the full SPI functionallity.  No existing  LLDD
>>>would need modification.
>>
>>IOW, what Luben wants is:
>>
>>	if (Luben)
>>		do this
>>	else
>>		do current stuff
>>
>>If this is the case, why bother touching drivers/scsi/* at all?
> 
> 
> that's the reason why I proposed that this moved to drivers/sas/* or
> somewhere else so that there is no maintaining conflict.

Yes, it has been moved already there.
http://linux.adaptec.com/sas/

	Luben

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx intothe kernel
  2005-10-03 14:26                                         ` I request inclusion of SAS Transport Layer and AIC-94xx intothe kernel David Lang
@ 2005-10-03 15:19                                           ` Luben Tuikov
  2005-10-03 15:30                                             ` I request inclusion of SAS Transport Layer and AIC-94xx intothekernel David Lang
  0 siblings, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-10-03 15:19 UTC (permalink / raw)
  To: David Lang
  Cc: Jeff Garzik, Kyle Moffett, Andre Hedrick, David S. Miller, willy,
	patmans, ltuikov, linux-kernel, akpm, torvalds, linux-scsi,
	James Bottomley

On 10/03/05 10:26, David Lang wrote:
> in this case wouldn't it be trivial to write a 'null transport' driver 
> that just passed things down to the card to let the firmware deal with it?
> (reformatting the data if needed)

Hi David,

I think it is trivial.

Your LLDD would define the host template and register it
with SCSI Core.  This way you _bypass_ the Transport Layer.
(This is what you call null driver -- as is traditionally done
in SCSI Core due to the legacy LLDDs (to which MPT caters
for 100% backward software compatibility))

Else if your LLDD is just an inteface to the interconnect:
i.e. it only implements Execute SCSI RPC and TMFs, then
you'd register with the Transport Layer (SBP or USB or SAS)
which will do all Transport related tasks, and then that
Transport Layer (USB, SBP or SAS) would register a scsi host
with SCSI Core.

	Luben

> having a null driver for a layer for some hardware, and a much more 
> complex driver for the same layer for other hardware is fairly common in 
> Linux. I believe ti was Linus that said in an interview that Linux is now 
> largely designed for an ideal abstracted CPU, with code put in on the 
> architectures that don't have a feature to simulate that feature in 
> software.
> 
> David Lang
> 


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-01  0:38                                 ` Jeff Garzik
@ 2005-10-03 15:27                                   ` Luben Tuikov
  2005-10-03 16:28                                     ` Jeff Garzik
  0 siblings, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-10-03 15:27 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: James Bottomley, Andre Hedrick, David S. Miller, willy,
	Patrick Mansfield, ltuikov, Linux Kernel, Andrew Morton,
	Linus Torvalds, SCSI Mailing List

On 09/30/05 20:38, Jeff Garzik wrote:
> Luben Tuikov wrote:
> 
>>I'm sure you'll do whatever humanly possible to show
>>that _your_ idea can be applied: you can do this now:
>>just use a big if () { ... } else { ... } statement and
>>you're done.
> 
> 
> This is not how we do things in Linux.  You're doubling the maintenance 
> burden.

No necessarily.  See below.

> If you really want to do this, at least don't fill up drivers/scsi/ with 
> an additional, completely unrelated codepath.

How do you say it is unrelated?

Is USB storage unrelated? (other than the fact that it doesn't live
in drivers/scsi/)

> There is commonality between aic94xx and MPT/LSI stuff.  aic94xx SAS 
> transport layer is a superset of MPT/LSI SAS transport:  it clearly 
> needs far more management code.

And MPT/LSI SAS does not need this managament as this layer
is completely implemented in FW and not exposed (and for a reason).

> We understand this.  The part you don't understand is that we want to 
> emphasize the commonality, rather than let aic94xx and MPT/LSI go in 
> completely different directions.

But this was LSI's decision, remember?  We did work together,
until LSI and Dell decided that they'd rather let Christoph do it.
(Since who cares about the technological merit of the code when it
will be accepted into the kernel?)

Now you want to integrate the two?  Apparently LSI and Dell haven't
made up their mind.

As I said: Vendors are completely playing to the tune of a couple
of people at linux-scsi, for this reason we haven't seen _any_
SCSI or Storage _innovation_ in SCSI Core.

As opposed to those vendors saying: We _really_ need 64 bit LUNS
and it would be really nice to get rid of HCIL, etc, etc.

If all vendors pushed for that and were not afraid to speak
up (because they have drivers to write and patches to submit
and want acceptance), then SCSI Core would be a better place.

IMO, 64 bit LUNs and no HCIL is more important than "transport
attributes" and should've _preceded_ them.

The fact that you're trying to umbrella them together, doesn't
make it _technologically_ correct.

Remember, a person's fall starts when they're surrounded by "Yes" men.

> Read it again:  aic94xx/BCMxxx is a superset of functionality, not 
> completely different.

One implements all transport related tasks in FW and exposes only LUs
to the LLDD, the other implements only the interface to the transport
in the chip (the interconnect), and the rest is handed to upper layers.

If you sit down with a clean sheet of _paper and a pencil_ and try
to draw out the layering infrastructure for both and how they
interface with SCSI Core, you'll see that with MPT, things are
_upside_ down compared to USB/SBP/SAS.  Now trying to reconcile both,
while possible, would be extremely _ugly_, unless say, you can fake out
event formation in an MPT based LLDD, but then again, you'd need to
resolve the host template thing...

It would just be extremely ugly and not as flowing and straightforward
as the current code is.

	Luben


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx intothekernel
  2005-10-03 15:19                                           ` Luben Tuikov
@ 2005-10-03 15:30                                             ` David Lang
  0 siblings, 0 replies; 112+ messages in thread
From: David Lang @ 2005-10-03 15:30 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Jeff Garzik, Kyle Moffett, Andre Hedrick, David S. Miller, willy,
	patmans, ltuikov, linux-kernel, akpm, torvalds, linux-scsi,
	James Bottomley

On Mon, 3 Oct 2005, Luben Tuikov wrote:

> On 10/03/05 10:26, David Lang wrote:
>> in this case wouldn't it be trivial to write a 'null transport' driver
>> that just passed things down to the card to let the firmware deal with it?
>> (reformatting the data if needed)
>
> Hi David,
>
> I think it is trivial.
>
> Your LLDD would define the host template and register it
> with SCSI Core.  This way you _bypass_ the Transport Layer.
> (This is what you call null driver -- as is traditionally done
> in SCSI Core due to the legacy LLDDs (to which MPT caters
> for 100% backward software compatibility))
>
> Else if your LLDD is just an inteface to the interconnect:
> i.e. it only implements Execute SCSI RPC and TMFs, then
> you'd register with the Transport Layer (SBP or USB or SAS)
> which will do all Transport related tasks, and then that
> Transport Layer (USB, SBP or SAS) would register a scsi host
> with SCSI Core.

the advantage of actually having a null transport driver rather then 
bypassing the transport layer completely is that you avoid having to make 
the SCSI core know about details of the interface to the chips, and 
especially about any bugs that crop up and have to be worked around for 
different chips.

or worse yet, as the spec of the interface to the hardware changes over 
time the SCSI core would have to know about all the different variations 
and how to deal with them.

it's much cleaner to evict all that knowledge out of the SCSI core and let 
a very lightweight transport driver deal with that instead.

the drawback is that you may end up copying a little bit of data one time 
more then you absolutly have to, but that's probably a very small cost for 
the flexibility.

think of this as a problem similar to the network card interface, vendors 
want to implement TOE while the kernel folks are willing to do TSO, but 
not TOE (see the letters being exchange on lwn.net in the letters to the 
editor section the last few weeks for a good discussion on those issues)

David Lang

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-03 14:15                               ` Luben Tuikov
@ 2005-10-03 15:57                                 ` Jeff Garzik
  2005-10-03 16:23                                   ` Luben Tuikov
  2005-10-03 19:10                                 ` Mike Christie
  1 sibling, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-10-03 15:57 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Andre Hedrick, David S. Miller, willy, patmans, ltuikov,
	linux-kernel, akpm, torvalds, linux-scsi, James Bottomley

Luben Tuikov wrote:
> On 09/30/05 19:57, Jeff Garzik wrote:
>>Luben Tuikov wrote:
>>>MPT-based drivers + James Bottomley's "transport attributes"

>>You continue to fail to see that a transport class is more than just 
>>transport attributes.
>>
>>You continue to fail to see that working on transport class support IS a 
>>transport layer, that includes management.
>>
>>Is you don't understand this fundamental stuff, how can we expect you to 
>>get it right?
> 
> 
>>From what I see, because of its *layering* position
> JB's "transport attributes" cannot satisfy open transport.

Repeating verbatim the above quote:  a transport class is more than just 
transport attributes.


> The reason is that MPT-based drivers indeed do need host template
> in the LLDD.

> Open Transport (SBP/USB/SAS) do not, since the chip is only
> an interface to the transport.

> The host template is implemented by a transport layer,
> say USB Storage or the SAS Transport Layer.

Every chip is ultimately an interface to the transport, regardless of 
whether the transport layer is largely managed by software (aic94xx) or 
firmware (MPT).  SCSI host template can work just fine with open 
transport hardware.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-03 14:18                                       ` Luben Tuikov
  2005-10-03 14:26                                         ` I request inclusion of SAS Transport Layer and AIC-94xx intothe kernel David Lang
@ 2005-10-03 16:01                                         ` Jeff Garzik
  1 sibling, 0 replies; 112+ messages in thread
From: Jeff Garzik @ 2005-10-03 16:01 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Kyle Moffett, Andre Hedrick, David S. Miller, willy, patmans,
	ltuikov, linux-kernel, akpm, torvalds, linux-scsi,
	James Bottomley

Luben Tuikov wrote:
> On 09/30/05 20:33, Jeff Garzik wrote:
>>This is a misrepresentation.  -We- understand the stuff you have posted.
>>
>>But you continue to demonstrate that you simply do not understand the 
>>existing SCSI core code.
>>
>>The SAS transport class supports commonality across all SAS 
>>implementations.  This includes both MPT and Adaptec 94xx.
>>
>>SAS transport class + libsas supports software implementations of SAS, 
>>including transport layer management.  This includes Adaptec 94xx but 
>>NOT MPT.
> 
> 
> You almost get it right, other than the layering infrastructure.
> 
> The SAS Transport Layer is a layer in its own right.  It is not
> a "libsas".

Different open transport hardware will expose the underlying network at 
different levels.

Hardware A might provide direct access to SSP and IDENTIFY/CONNECT frame 
handling, while Hardware B may handle that internally, while still 
providing full SMP access for the transport layer to discovery topology 
and build its routing table.

We cannot assume that all open transport hardware will function the 
same, hence the better approach is a library of helpers that function in 
concert with LLDD to form a transport layer.


> MPT and open transport a very different, one hides the transport,
> i.e. the transport layer is in firmware; the other exposes it

For the 1001th time, we know all this.

	Jeff




^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-03 15:57                                 ` Jeff Garzik
@ 2005-10-03 16:23                                   ` Luben Tuikov
  2005-10-03 16:48                                     ` Jeff Garzik
  0 siblings, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-10-03 16:23 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Andre Hedrick, David S. Miller, willy, patmans, ltuikov,
	linux-kernel, akpm, torvalds, linux-scsi, James Bottomley

On 10/03/05 11:57, Jeff Garzik wrote:
>>From what I see, because of its *layering* position
>>JB's "transport attributes" cannot satisfy open transport.
> 
> 
> Repeating verbatim the above quote:  a transport class is more than just 
> transport attributes.

a) "Transport Attributes" _is_ its name,
b) It sits across SCSI Core, i.e. on the same level.
c) It was never intended to add management.
d) Its inteface to SCSI Core is badly defined and an "invention",
   (and very poor at that).

The reason for d) is that
1) it tries to unify different _transports_,
2) does _not_ follow _any_ spec or standard.

Look at this, while you repeat verbaitm a single
quote, I give you technical arguments, then you just
repeat a single quote verbatim... Sad.

> Every chip is ultimately an interface to the transport, regardless of 
> whether the transport layer is largely managed by software (aic94xx) or 
> firmware (MPT).  SCSI host template can work just fine with open 
> transport hardware.

Maybe the picures and the write up here will help:
http://marc.theaimsgroup.com/?l=linux-kernel&m=112810649712793&w=2

	Luben



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-03 15:27                                   ` Luben Tuikov
@ 2005-10-03 16:28                                     ` Jeff Garzik
  0 siblings, 0 replies; 112+ messages in thread
From: Jeff Garzik @ 2005-10-03 16:28 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: James Bottomley, Andre Hedrick, David S. Miller, willy,
	Patrick Mansfield, ltuikov, Linux Kernel, Andrew Morton,
	Linus Torvalds, SCSI Mailing List

Luben Tuikov wrote:
> As opposed to those vendors saying: We _really_ need 64 bit LUNS
> and it would be really nice to get rid of HCIL, etc, etc.

Everybody agrees with this 100%

Note that James submitted a sdev_printk() patch in the past few days, 
which assists in removing HCIL from the SCSI core.


> IMO, 64 bit LUNs and no HCIL is more important than "transport
> attributes" and should've _preceded_ them.

Agreed.  But that's a lot of work, and I doubt people want to delay SAS 
further to wait for complete HCIL elimination.


> The fact that you're trying to umbrella them together, doesn't
> make it _technologically_ correct.

It's muddled together, yes.  That doesn't make it any less correct. 
It's just not a clean, immediate separation.  Its a separation that 
takes time.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-03 16:23                                   ` Luben Tuikov
@ 2005-10-03 16:48                                     ` Jeff Garzik
  2005-10-03 19:03                                       ` Luben Tuikov
  0 siblings, 1 reply; 112+ messages in thread
From: Jeff Garzik @ 2005-10-03 16:48 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Andre Hedrick, David S. Miller, willy, patmans, ltuikov,
	linux-kernel, akpm, torvalds, linux-scsi, James Bottomley

Luben Tuikov wrote:
> On 10/03/05 11:57, Jeff Garzik wrote:
> 
>>>From what I see, because of its *layering* position
>>
>>>JB's "transport attributes" cannot satisfy open transport.
>>
>>
>>Repeating verbatim the above quote:  a transport class is more than just 
>>transport attributes.
> 
> 
> a) "Transport Attributes" _is_ its name,

No, transport class is its name.  Think about a standard object-oriented 
paradigm.  Each transport has unique characteristics.  The proper place 
to export these and manage these characteristics is the transport layer, 
as SAM agrees.  The manifestation of the transport layer is the 
transport class.

You have to look beyond the current code, to see this.

An implementation of a transport class, in conjunction with helper 
functions common to all transports (SCSI core), combines to form the 
transport layer for a specific transport.


> b) It sits across SCSI Core, i.e. on the same level.
> c) It was never intended to add management.

SCSI core is nothing but a set of helper functions and support code that 
enable the transport class and LLDD to implement the transport layer.


> d) Its inteface to SCSI Core is badly defined and an "invention",
>    (and very poor at that).

Strongly disagree.  This invention is defined by -needs-, as is other 
code in Linux.  If we have new needs, we change the code.


> The reason for d) is that
> 2) does _not_ follow _any_ spec or standard.

That's fine, since its an internal kernel API.

	Jeff



^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-03 16:48                                     ` Jeff Garzik
@ 2005-10-03 19:03                                       ` Luben Tuikov
  2005-10-03 19:32                                         ` Mike Christie
  0 siblings, 1 reply; 112+ messages in thread
From: Luben Tuikov @ 2005-10-03 19:03 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Andre Hedrick, David S. Miller, willy, patmans, ltuikov,
	linux-kernel, akpm, torvalds, linux-scsi, James Bottomley

On 10/03/05 12:48, Jeff Garzik wrote:
> No, transport class is its name.  Think about a standard object-oriented 

Not according to Kconfig:

menu "SCSI Transport Attributes"
	depends on SCSI

config SCSI_SPI_ATTRS
	tristate "Parallel SCSI (SPI) Transport Attributes"
	depends on SCSI
	help
	  If you wish to export transport-specific information about
	  each attached SCSI device to sysfs, say Y.  Otherwise, say N.

config SCSI_FC_ATTRS
	tristate "FiberChannel Transport Attributes"
	depends on SCSI
	help
	  If you wish to export transport-specific information about
	  each attached FiberChannel device to sysfs, say Y.
	  Otherwise, say N.

config SCSI_ISCSI_ATTRS
	tristate "iSCSI Transport Attributes"
	depends on SCSI
	help
	  If you wish to export transport-specific information about
	  each attached iSCSI device to sysfs, say Y.
	  Otherwise, say N.

config SCSI_SAS_ATTRS
	tristate "SAS Transport Attributes"
	depends on SCSI
	help
	  If you wish to export transport-specific information about
	  each attached SAS device to sysfs, say Y.

endmenu

> paradigm.  Each transport has unique characteristics.  The proper place 
> to export these and manage these characteristics is the transport layer, 
> as SAM agrees.

But:

>  The manifestation of the transport layer is the 
> transport class.

Bzzzt!  Wrong.

This is where you and James Bottomley make the wrong assesment.

Having the SCSI host template in the LLDD tells everyone immeditealy
that you have it all wrong as far as anything SAM/SPC is concerned.

Look at any transport spec, how little SCSI Host template is there.

You need to understand that declaring the host template in the
LLDD is, and has always been, the _exception_, not the rule.
The reason is legacy Parallel SCSI.

It is MPT based drivers who are the exception, not the rule,
and JB's "transport attributes" makes it the rule, and a
transport layer (what you call libsas), the exception.

It is wrong for a host template to "branch out" to a
transport layer as you're doing it now.  Think about it.
The layering infrastructure is upside down.

> You have to look beyond the current code, to see this.

Eh, well, not that you put it like this, I expect that
you'll completely pull out the implementation from my code
and put it in the "transport attributes" and call it your own.

I don't want to look beyond the current code, I'm discussing
things now, as they are.  How many times is JB going to change
the "transport attributes" just because FC needed one more thing
or because of, as often has been recently seen, "brown paper bag"
fix?

> An implementation of a transport class, in conjunction with helper 
> functions common to all transports (SCSI core), combines to form the 
> transport layer for a specific transport.

Should:

The transport layer sits below SCSI Core and above the LLDD.
SCSI Core is completely unaware of the transport layer.
The LLDD communicates with the transport layer via
the event interface (as shown in the SAS Transport layer)
and the transport layer communicates with the LLDD via
the Execute Command SCSI RPC and TMF.  All as outlined here:
http://marc.theaimsgroup.com/?l=linux-scsi&m=112629423714248&w=2

>>b) It sits across SCSI Core, i.e. on the same level.
>>c) It was never intended to add management.
> 
> 
> SCSI core is nothing but a set of helper functions and support code that 
> enable the transport class and LLDD to implement the transport layer.

Again you fail to see that the LLDD should _not_ implement
the host template as has been traditionally done.
The reason with this is that simply the LLDD has nothing to do
with the host template.  Unless you're dealing with MPT-based
LLDD which implement everything in FW and export LUs to
SCSI Core (which is fine too, as long as they do not dictate
how SCSI Core should work).

Notice that for MPT-based solution, SCSI Core wouldn't even
do LU discovery (unless you can turn that off via FW dependent
ways).

>>d) Its inteface to SCSI Core is badly defined and an "invention",
>>   (and very poor at that).
> 
> Strongly disagree.  This invention is defined by -needs-, as is other 
> code in Linux.  If we have new needs, we change the code.

You defence of your friends architecture is duly noted.
But if, as has been pointed out, you take a look at the
evolvement of this "invention" you'll see how it was and still
is _meandering_ in the technological maze to find its place.

All the while a transport layer like USB/SPB/SAS and maybe
iSCSI just sits "right".  Think about it.

>>The reason for d) is that
>>2) does _not_ follow _any_ spec or standard.
> 
> 
> That's fine, since its an internal kernel API.

Now, lets shove it down the throat of eveybody.

You forgot to say something about
1) it tries to unify different _transports_.
I don't expect a blurb on that, btw.


	Luben

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-03 14:15                               ` Luben Tuikov
  2005-10-03 15:57                                 ` Jeff Garzik
@ 2005-10-03 19:10                                 ` Mike Christie
  1 sibling, 0 replies; 112+ messages in thread
From: Mike Christie @ 2005-10-03 19:10 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Jeff Garzik, Andre Hedrick, David S. Miller, willy, patmans,
	ltuikov, linux-kernel, akpm, torvalds, linux-scsi,
	James Bottomley

Luben Tuikov wrote:
> On 09/30/05 19:57, Jeff Garzik wrote:
> 
>>Luben Tuikov wrote:
>>
>>
>>>MPT-based drivers + James Bottomley's "transport attributes"
>>
>>
>>You continue to fail to see that a transport class is more than just 
>>transport attributes.
>>
>>You continue to fail to see that working on transport class support IS a 
>>transport layer, that includes management.
>>
>>Is you don't understand this fundamental stuff, how can we expect you to 
>>get it right?
> 
> 
>>From what I see, because of its *layering* position
> JB's "transport attributes" cannot satisfy open transport.
> 
> The reason is that MPT-based drivers indeed do need host template
> in the LLDD.
> 
> Open Transport (SBP/USB/SAS) do not, since the chip is only
> an interface to the transport.
> 
> The host template is implemented by a transport layer,
> say USB Storage or the SAS Transport Layer.
> 

I think I can understand some of Luben's reasons for the layering. We 
are facing similar problems with software iscsi and hw iscsi. For 
software iscsi it would be nice to consolodate some of the common 
software iscsi code into a layer or lib. Following Luben's path for 
example our queuecommand would be:

scsi-ml -> scsi_host_template->queuecommand -> iscsi transport common 
queuecommand (do things like check session state, that we are not in 
session level recovery, scsi to iscsi pdu prep like setting the data 
direction, and other iSCSI PDU prep) -> iscsi_transport module -> 
iscsi_transport->queuepdu (you can probably reccomend a better name) -> 
tcp, sctp, iwarp, or some iSCSI HW that exposes a iSCSI interface rather 
than SCSI (note that qla4xxx would use its own 
scsi_host_template->queuecommand since it does not expose enough iSCSI 
internals for it to be useful to plug in here).

However, HW iscsi cards and software/partial-software iscsi solutions 
can share code for things like session and connection creation where we 
would have transport class lib functions: 
iscsi_add_session/iscsi_remove_session which both the HW iscsi cards 
like qla4xxx and software/partial-software iscsi drivers could use to 
setup things like a common sysfs representation. 
iscsi_add_session/iscsi_remove_session would work similar to the 
fc_rport code where the midlayer doesn't really know they exist (this is 
similar to our session and connection code today but it is bound to the 
scsi host which prevents qla4xxx from using it).

Is the direction we are going where iscsi would have to put the "iscsi 
transport common queuecommand" code into something similar to libata? Or 
  is it that Luben's transport layer code is performing something 
different than software/partial-software iscsi?

^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-03 19:03                                       ` Luben Tuikov
@ 2005-10-03 19:32                                         ` Mike Christie
  2005-10-03 20:15                                           ` Jeff Garzik
  0 siblings, 1 reply; 112+ messages in thread
From: Mike Christie @ 2005-10-03 19:32 UTC (permalink / raw)
  To: Luben Tuikov
  Cc: Jeff Garzik, Andre Hedrick, David S. Miller, willy, patmans,
	ltuikov, linux-kernel, akpm, torvalds, linux-scsi,
	James Bottomley

Luben Tuikov wrote:
> On 10/03/05 12:48, Jeff Garzik wrote:
> 
>>No, transport class is its name.  Think about a standard object-oriented 
> 
> 
> Not according to Kconfig:
> 
> menu "SCSI Transport Attributes"
> 	depends on SCSI
> 
> config SCSI_SPI_ATTRS
> 	tristate "Parallel SCSI (SPI) Transport Attributes"
> 	depends on SCSI
> 	help
> 	  If you wish to export transport-specific information about
> 	  each attached SCSI device to sysfs, say Y.  Otherwise, say N.
> 
> config SCSI_FC_ATTRS
> 	tristate "FiberChannel Transport Attributes"
> 	depends on SCSI
> 	help
> 	  If you wish to export transport-specific information about
> 	  each attached FiberChannel device to sysfs, say Y.
> 	  Otherwise, say N.
> 

For FC there is code like the fc_rport stuff which exports a sysfs 
interface but also does a lot more like probing and queue blocking.

> config SCSI_ISCSI_ATTRS
> 	tristate "iSCSI Transport Attributes"
> 	depends on SCSI
> 	help
> 	  If you wish to export transport-specific information about
> 	  each attached iSCSI device to sysfs, say Y.
> 	  Otherwise, say N.

And the iSCSI class does do a lot more now too. This just has not been 
updated. It handles the userspace to kernel communication, session and 
connection sysfs interface setup, and there were some patches that added 
the ability to tell scsi-ml to stop queueing commands to a iscsi driver.

Structures like the fc_rport and iscsi_session are managed by the 
transport classes so scsi-ml never knows about them (except for that 
scanning bug). And it is possible to share them between HW and software 
or partial software solutions. I do agree for some iscsi sitautions 
having a layer over the eh or command exection where the transport 
really is more of a layer like your design would be nice (I am not 
refferring to the code duplication though becuase iSCSI would like some 
of yrou fixes :), but at the same time there are places where code can 
be shared between a interface that hides the lower level details and one 
that implements them in software. Maybe it is not this way for SAS though.


^ permalink raw reply	[flat|nested] 112+ messages in thread

* Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel
  2005-10-03 19:32                                         ` Mike Christie
@ 2005-10-03 20:15                                           ` Jeff Garzik
  0 siblings, 0 replies; 112+ messages in thread
From: Jeff Garzik @ 2005-10-03 20:15 UTC (permalink / raw)
  To: Mike Christie
  Cc: Luben Tuikov, Andre Hedrick, David S. Miller, willy, patmans,
	ltuikov, linux-kernel, akpm, torvalds, linux-scsi,
	James Bottomley

Mike Christie wrote:
> For FC there is code like the fc_rport stuff which exports a sysfs 
> interface but also does a lot more like probing and queue blocking.

> And the iSCSI class does do a lot more now too. This just has not been 
> updated. It handles the userspace to kernel communication, session and 
> connection sysfs interface setup,

Great.  Exactly.


> Structures like the fc_rport and iscsi_session are managed by the 
> transport classes so scsi-ml never knows about them (except for that 
> scanning bug). And it is possible to share them between HW and software 
> or partial software solutions. I do agree for some iscsi sitautions 
> having a layer over the eh or command exection where the transport 
> really is more of a layer like your design would be nice (I am not 
> refferring to the code duplication though becuase iSCSI would like some 
> of yrou fixes :), but at the same time there are places where code can 
> be shared between a interface that hides the lower level details and one 
> that implements them in software. Maybe it is not this way for SAS though.

Adaptec's SAS stuff implements the standard high level SCSI model as an 
API, which is a pretty decent direction for SCSI long term:  provides a 
transport-independent execute-scsi-command high level hook (along with 
the other task management functions), and hides the transport details 
for the most part.

That's fine, and works for iSCSI as well.

I just disagree that we need to have two concurrent APIs for SCSI, 
completely separate from each other, and mildly duplicating each other's 
code.

The current SCSI code will morph in the proper direction given time and 
love.  Segregating generic [SPI | FC | SAS | iSCSI | ATA | RAID | ...] 
transport layer code into their own modules -- the transport classes and 
associated libs -- will point out the sore spots where scsi-ml needs 
changes.  This approach also implies we improve the existing scsi-ml 
where needed, rather than the proposed "if legacy, let it bitrot" approach.

	Jeff





^ permalink raw reply	[flat|nested] 112+ messages in thread

end of thread, other threads:[~2005-10-03 20:15 UTC | newest]

Thread overview: 112+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-09-26 19:38 I request inclusion of SAS Transport Layer and AIC-94xx into the kernel Luben Tuikov
2005-09-27 21:55 ` Jeff Garzik
2005-09-27 22:51   ` Luben Tuikov
2005-09-27 23:14     ` Andre Hedrick
2005-09-28 11:37       ` Luben Tuikov
2005-09-28 12:32         ` Matthew Wilcox
2005-09-28 14:50           ` Linus Torvalds
2005-09-30  1:56             ` Junio C Hamano
2005-09-28 16:27         ` Patrick Mansfield
2005-09-28 16:34           ` Luben Tuikov
2005-09-28 19:45           ` Andre Hedrick
2005-09-28 20:56             ` Luben Tuikov
2005-09-28 22:35               ` Willy Tarreau
2005-09-28 23:22                 ` Jeff Garzik
2005-09-28 23:29                   ` David S. Miller
2005-09-29  5:30                     ` Andre Hedrick
2005-09-29  7:24                       ` David S. Miller
2005-09-30  7:36                         ` Andre Hedrick
2005-09-30 18:34                           ` Luben Tuikov
2005-09-30 18:50                             ` Kyle Moffett
2005-09-30 19:08                               ` Luben Tuikov
2005-09-30 21:31                                 ` Kyle Moffett
2005-09-30 22:10                                   ` Greg Freemyer
2005-09-30 22:19                                     ` Luben Tuikov
2005-09-30 23:54                                     ` Jeff Garzik
2005-10-01  4:58                                       ` Willy Tarreau
2005-10-03 15:08                                         ` Luben Tuikov
2005-10-03 14:04                                       ` Luben Tuikov
2005-09-30 22:14                                   ` Luben Tuikov
2005-10-01  0:33                                     ` Jeff Garzik
2005-10-03 14:18                                       ` Luben Tuikov
2005-10-03 14:26                                         ` I request inclusion of SAS Transport Layer and AIC-94xx intothe kernel David Lang
2005-10-03 15:19                                           ` Luben Tuikov
2005-10-03 15:30                                             ` I request inclusion of SAS Transport Layer and AIC-94xx intothekernel David Lang
2005-10-03 16:01                                         ` I request inclusion of SAS Transport Layer and AIC-94xx into the kernel Jeff Garzik
2005-09-30 20:45                             ` James Bottomley
2005-09-30 22:05                               ` Luben Tuikov
2005-10-01  0:38                                 ` Jeff Garzik
2005-10-03 15:27                                   ` Luben Tuikov
2005-10-03 16:28                                     ` Jeff Garzik
2005-09-30 22:04                             ` Andre Hedrick
2005-09-30 22:32                               ` Luben Tuikov
2005-09-30 23:57                             ` Jeff Garzik
2005-10-03 14:15                               ` Luben Tuikov
2005-10-03 15:57                                 ` Jeff Garzik
2005-10-03 16:23                                   ` Luben Tuikov
2005-10-03 16:48                                     ` Jeff Garzik
2005-10-03 19:03                                       ` Luben Tuikov
2005-10-03 19:32                                         ` Mike Christie
2005-10-03 20:15                                           ` Jeff Garzik
2005-10-03 19:10                                 ` Mike Christie
2005-09-30 18:51                           ` Luben Tuikov
2005-09-29 14:33                 ` Luben Tuikov
2005-09-29 14:48                   ` Jeff Garzik
2005-09-29 15:50                     ` Luben Tuikov
2005-09-29 16:54                       ` Jeff Garzik
2005-09-29 18:25                         ` Luben Tuikov
2005-09-29 15:15                   ` grundig
2005-09-29 15:17                   ` Bernd Petrovitsch
2005-09-29 16:33                     ` Luben Tuikov
2005-09-29 16:56                       ` Jeff Garzik
2005-09-29 16:58                         ` Luben Tuikov
2005-09-29 17:03                           ` Jeff Garzik
2005-09-29 18:09                           ` Gerrit Huizenga
2005-09-29 17:13                       ` Bernd Petrovitsch
2005-09-29 18:39                         ` Luben Tuikov
2005-09-29 22:43                           ` Joel Becker
2005-09-29 17:52                   ` John Stoffel
2005-09-29 19:20                     ` Bruce Ferrell
2005-09-28 22:43               ` Andre Hedrick
2005-09-29 15:04                 ` Luben Tuikov
2005-09-29 15:08                   ` Jeff Garzik
2005-09-29 16:22                     ` Luben Tuikov
2005-09-29 19:09                   ` Stefan Richter
2005-09-29 22:06                     ` Luben Tuikov
2005-09-28 16:30         ` Valdis.Kletnieks
2005-09-28 16:35           ` Luben Tuikov
2005-09-28  2:02     ` Jeff Garzik
2005-09-28 20:36       ` Luben Tuikov
2005-09-28 21:00         ` Jeff Garzik
2005-09-28 22:10           ` Luben Tuikov
2005-09-28 23:04             ` Jeff Garzik
2005-09-29  4:04               ` Willy Tarreau
2005-09-29  7:44                 ` Arjan van de Ven
2005-09-29 15:09                   ` Luben Tuikov
2005-09-29 15:20                     ` Jeff Garzik
2005-09-29 16:56                       ` Luben Tuikov
2005-09-29 17:11                         ` Jeff Garzik
2005-09-30 18:16                     ` Joe Bob Spamtest
2005-09-29 17:15                   ` Stefan Richter
2005-09-29 17:29                     ` Jeff Garzik
2005-09-29 19:32                   ` Willy Tarreau
2005-09-29 19:57                   ` Linus Torvalds
2005-09-29 22:49                     ` jerome lacoste
2005-09-29 23:20                     ` Luben Tuikov
2005-09-29 23:57                       ` Prasenjit Sarkar
2005-09-30  6:35                         ` Andre Hedrick
2005-09-30  0:35                       ` Linus Torvalds
2005-09-30  1:25                         ` Hua Zhong
2005-09-30  2:42                         ` Marcin Dalecki
2005-09-30 19:12                           ` Joe Bob Spamtest
2005-09-30 19:38                             ` Bob Copeland
2005-09-30  7:29                         ` Douglas Gilbert
2005-09-30 14:23                           ` Luben Tuikov
2005-09-30 16:26                           ` Andrew Patterson
2005-09-30 16:47                             ` Luben Tuikov
2005-09-30 14:07                         ` Luben Tuikov
2005-09-30  5:31                       ` Theodore Ts'o
2005-09-30  6:52                     ` Andre Hedrick
2005-09-29 19:59               ` Stefan Richter
2005-09-29 19:37       ` Stefan Richter
2005-09-29 19:22   ` Stefan Richter

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).