All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jeff@garzik.org>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: Jens Axboe <axboe@suse.de>,
	SCSI Mailing List <linux-scsi@vger.kernel.org>,
	"linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>,
	Tejun Heo <htejun@gmail.com>, Andrew Morton <akpm@osdl.org>,
	Linus Torvalds <torvalds@osdl.org>
Subject: Re: [Fwd: [RFT] major libata update]
Date: Wed, 17 May 2006 18:08:23 -0400	[thread overview]
Message-ID: <446B9ED7.5050204@garzik.org> (raw)
In-Reply-To: <1147888381.3463.49.camel@mulgrave.il.steeleye.com>

James Bottomley wrote:
> On Wed, 2006-05-17 at 12:17 -0400, Jeff Garzik wrote:
>> Yes, and not only that...  you must describe the queue pipeline too. 
>> i.e. N logical devices can be bottlenecked behind a bridge (expander, 
>> port multiplier, tunnel) of queue depth Q, which may in turn be behind 
>> another bottleneck.  :)
> 
> Well ... no, I'm not convinced of this.  Block is currently a nice, fast
> abstraction.  It's designed to manage storage infrastructure and provide
> helpers to implementation.  The question is how much more common
> infrastructure do we need to slim down all of our storage stacks.  I.e.
> block provides the building blocks to allow the storage implementation
> to do what it wants, but it doesn't necessarily provide the full
> implementation.

My central thesis is that
* SCSI provides a generic _storage driver_ infrastructure, encapsulating 
many common idioms generic to SCSI and non-SCSI hardware alike.
* Any such storage driver infrastructure, outside of SCSI, should impose 
no burdens on existing block drivers.

Call such storage driver infrastructure "libstorage" if you will.


>> But overall, libata and SAS controllers are forced to deal with the 
>> reality of the situation:  they all wind up either using, or recreating 
>> from scratch, objects for host/device/bus/etc. in order to sanely allow 
>> all the infrastructure to interoperate.
> 
> but that doesn't go for all storage ... look at the way usb and firewire
> implement host in SCSI at the moment.

Let's just stop using the word host, its too confusing for all involved 
:)  I'm well aware of this, look at how libata uses Scsi_Host too...


>> You'll all note that struct Scsi_Host and struct scsi_cmnd have very 
>> little to do with SCSI.  Its almost all infrastructure and driver 
>> management.  That's the _useful_ stuff that libata uses SCSI for.
> 
> Some is driver management, others are SCSI specific.  We'll never get

Agreed, though IMO I claim that "a lot" is driver management.


> away from the need for Scsi_Host and scsi_cmnd, but we can make sure
> they contain only truly SCSI specific pieces.  scsi_cmnd is the closest
> since it pretty much has a one to one mapping with a block request.

Agreed.


>> Thus, moving libata to the block layer entails either 
>> s/Scsi_Host/Storage_Host/g or a highly similar infrastructure, to 
>> achieve the same gains.
> 
> I'm not sure.  Block is currently nicely lightweight.  A large number of
> implementations have no use for a host concept ... I don't think we
> should be forcing it on them.

Like I said above, think "libstorage".  I think block as-is, too.

	Jeff



  reply	other threads:[~2006-05-17 22:08 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-15 17:08 [Fwd: [RFT] major libata update] Jeff Garzik
2006-05-16 14:18 ` James Bottomley
2006-05-16 15:41   ` Jeff Garzik
2006-05-16 15:51     ` James Bottomley
2006-05-16 16:06       ` Jeff Garzik
2006-05-16 16:30         ` James Bottomley
2006-05-16 16:39           ` Jeff Garzik
2006-05-16 21:55             ` Luben Tuikov
2006-05-16 21:32           ` Luben Tuikov
2006-05-16 16:08       ` Tejun Heo
2006-05-16 16:13         ` Tejun Heo
2006-05-16 16:29         ` James Bottomley
2006-05-16 16:37           ` Jeff Garzik
2006-05-16 16:39           ` Tejun Heo
2006-05-16 16:50             ` James Bottomley
2006-05-16 17:07               ` Tejun Heo
2006-05-16 17:09                 ` Jeff Garzik
2006-05-16 19:58                 ` Christoph Hellwig
2006-05-16 20:02                   ` Jeff Garzik
2006-05-16 21:28                   ` James Bottomley
2006-05-18  3:27                     ` Tejun Heo
2006-05-19 12:07                       ` [PATCH] SCSI: make scsi_implement_eh() generic API for SCSI transports Tejun Heo
2006-05-16 16:12       ` [Fwd: [RFT] major libata update] Jeff Garzik
2006-05-16 16:38         ` James Bottomley
2006-05-16 16:57           ` Jeff Garzik
2006-05-17  7:37             ` Jens Axboe
2006-05-17 15:06               ` Jeff Garzik
2006-05-17 15:50                 ` James Bottomley
2006-05-17 15:58                   ` James Smart
2006-05-17 16:17                   ` Jeff Garzik
2006-05-17 17:53                     ` James Bottomley
2006-05-17 22:08                       ` Jeff Garzik [this message]
2006-05-17 22:15                         ` Jeff Garzik
2006-05-17 17:47                   ` Linus Torvalds
2006-05-17 17:55                     ` Jens Axboe
2006-05-17 22:04                       ` Linus Torvalds
2006-05-17 22:12                         ` Jeff Garzik
2006-05-17 21:41                     ` Jeff Garzik
2006-05-17 21:52                     ` Douglas Gilbert
2006-05-17 22:20                       ` Linus Torvalds
2006-05-18  3:04                     ` Luben Tuikov
2006-05-17 16:05                 ` Douglas Gilbert
2006-05-17 17:37                 ` Jens Axboe
2006-05-17 21:58                   ` Jeff Garzik
2006-05-18  7:21                     ` Jens Axboe
2006-05-16 18:28       ` Luben Tuikov
2006-05-16 18:15     ` Luben Tuikov
2006-05-16 18:05   ` Luben Tuikov
2006-05-16 18:38     ` James Bottomley
2006-05-16 22:24       ` Luben Tuikov
2006-05-16 22:29         ` James Bottomley
2006-05-16 23:02           ` Luben Tuikov
2006-05-16 23:12             ` James Bottomley
2006-05-17  0:25               ` Luben Tuikov
2006-05-17 14:09                 ` James Bottomley
2006-05-18  2:39                   ` Luben Tuikov
2006-05-18 13:57                     ` James Bottomley
2006-05-19  3:28                       ` Luben Tuikov
2006-05-17 14:02               ` missed patch: Block I/O while SG reset operation in progress James Smart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=446B9ED7.5050204@garzik.org \
    --to=jeff@garzik.org \
    --cc=James.Bottomley@SteelEye.com \
    --cc=akpm@osdl.org \
    --cc=axboe@suse.de \
    --cc=htejun@gmail.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.