linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@pobox.com>
To: dougg@torque.net, Jens Axboe <axboe@suse.de>, luben_tuikov@adaptec.com
Cc: Hannes Reinecke <hare@suse.de>,
	James Bottomley <James.Bottomley@SteelEye.com>,
	SCSI Mailing List <linux-scsi@vger.kernel.org>,
	linux-ide@vger.kernel.org
Subject: Re: [PATCH] libata: device suspend/resume
Date: Tue, 24 May 2005 13:10:05 -0400	[thread overview]
Message-ID: <42935FED.5010602@pobox.com> (raw)
In-Reply-To: <4292FF22.5040201@torque.net>

Douglas Gilbert wrote:
> At the risk of boring you but informing others, Serial
> Attached SCSI (SAS) is going to muddy things.

Not necessarily...  ;-)

But yes, I am keeping track of SAS, don't worry.


> The SCSI ATA Translation (SAT
> http://www.t10.org/ftp/t10/drafts/sat/sat-r04.pdf )
> draft hopefully will find application any many areas
> other than libata (e.g. USB mass storage and 1394's
> SBP-2 drivers). The Scope section (section 1) of that
> draft makes interesting reading: in point a) the author
> sees SAT as presenting a unified command interface for
> block type devices across PATA, SATA and ATAPI!

In Linux's case, libata's SCSI<->ATA translation is merely a convenience 
so that I didn't have to bother writing all that storage infrastructure 
at the block layer.  And SAT was merely a convenient standard I could 
follow during the exercise.


> However the primary reason that SAT started is the
> fact that SAS infrastructure can include SATA disks.
> SAS defines the Serial ATA Tunneled Protocol (STP)
> which in linux will first appear in a SAS LLD (i.e.
> a scsi subsystem Low Level Driver, something like
> aic7xxx). Connecting a SATA disk (transported via SAS)
> to the IDE subsystem and a /dev/hd? device node seems
> like an unnatural act (a bit like ide-scsi in reverse).
> A solution involving libata seems appropriate in this case.

Certainly there will be hardware that attaches to both SATA and SAS. 
I've been planning for this.  I even have an Adaptec card (and docs).

It depends highly on the LLD how this is implemented.  If a SCSI 
interface to SATA is forced upon us (i.e. SAT is implemented in a 
firmware somewhere), then there's not much you can do.

If the LLD provides direct access to either SCSI CDBs or ATA taskfiles 
(FIS's), then the OS should directly work with the device's native 
command set.  Far from adding value, translation actually hinders 
progress, as users must either (a) find a way around the SAT layer to 
access an ATA feature, or (b) wait until the SAT layer is updated to 
support a translation for the desired feature.

One of the biggest requested features for libata is "ATA passthru", the 
ability to directly submit ATA commands to the device.  That should tell 
you something about what -users- want.

SCSI and ATA are competing and evolving command sets, which implies that 
there is -increased- interest in -not- hiding ATA devices behind an 
emulation layer.

A SATA+SAS LLD would ideally register an instance of the SAS transport 
class with the SCSI layer, and an instance of the SATA transport class 
with the block layer.  That's all it needs to do.

Everything else -- /dev/hdX versus /dev/sdX, emulation, sd/sr/st, etc. 
-- are all clients to either a SATA or SCSI transport class.  Remember, 
to many users, the fact that SATA right now uses /dev/sdX is confusing 
and annoying: they would prefer /dev/hdX as IDE has been presenting for 
over a decadce.

With the right design, there is little value OR NEED in hiding ATA 
devices behind emulation.


> Even more likely is that a SAT layer will be implemented
> in SAS enclosures just inches away from lots of SATA
> disks. From the point of view of a linux machine
> such SATA disks talk the SCSI command set and are
> connected via a SAS transport (Serial SCSI Protocol (SSP)).
> The only things that will probably care about the
> difference between such SATA disks and SAS disks are
> utilities like smartmontools (and that gap is being
> partially closed as well).

Linux will always want to talk to a device in its native command set, 
unless a firmware _forces_ us to do otherwise.

If the user considers a SAT layer added value, then they can certainly 
use such at their site.


> Perhaps libata could be renamed libsat.

s/libata/libata-scsi/

libata core is a SCSI-independent ATA transport, approaching the "ATA 
transport class" that I described above.

	Jeff



  reply	other threads:[~2005-05-24 17:10 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-23 20:15 [PATCH] libata: device suspend/resume Jeff Garzik
2005-05-23 20:41 ` James Bottomley
2005-05-23 20:45   ` Jeff Garzik
2005-05-23 22:10     ` James Bottomley
2005-05-24  6:21       ` Jens Axboe
2005-05-24  6:53         ` Jeff Garzik
2005-05-24  7:06           ` Hannes Reinecke
2005-05-24  7:08             ` Jens Axboe
2005-05-24  7:16             ` Jeff Garzik
2005-05-24  7:07           ` Jens Axboe
2005-05-24  7:10             ` Jeff Garzik
2005-05-24  7:13               ` Jens Axboe
2005-05-27  2:49                 ` libata, SCSI and storage drivers Jeff Garzik
2005-05-27  6:45                   ` Douglas Gilbert
2005-05-27 14:41                     ` Luben Tuikov
2005-05-24  7:14               ` [PATCH] libata: device suspend/resume Hannes Reinecke
2005-05-24  7:15                 ` Jens Axboe
2005-05-24  7:18                 ` Jeff Garzik
2005-05-24 10:17                   ` Douglas Gilbert
2005-05-24 17:10                     ` Jeff Garzik [this message]
2005-05-24  7:59           ` Jens Axboe
2005-05-24  8:21             ` Jeff Garzik
2005-05-24  8:51               ` Jens Axboe
2005-05-24 16:37                 ` Jeff Garzik
2005-05-25  9:29                   ` Jens Axboe
2005-05-25 23:40                     ` Guennadi Liakhovetski
2005-05-26  1:05                     ` Jeff Garzik
2005-05-26  5:57                       ` Jens Axboe
2005-05-26 22:56                     ` Bartlomiej Zolnierkiewicz
2005-05-27  6:54                       ` Jens Axboe
2005-05-27  2:01                     ` Benjamin Herrenschmidt
2005-05-27  6:55                       ` Jens Axboe
2005-05-24 13:48           ` Luben Tuikov
2005-05-24 17:29             ` Jeff Garzik
2005-05-24 13:05         ` Luben Tuikov
2005-05-27  2:54       ` Jeff Garzik
2005-05-24 16:27   ` Mark Lord
2005-05-24 16:33     ` Mark Lord
2005-05-24 16:04 ` Mark Lord

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=42935FED.5010602@pobox.com \
    --to=jgarzik@pobox.com \
    --cc=James.Bottomley@SteelEye.com \
    --cc=axboe@suse.de \
    --cc=dougg@torque.net \
    --cc=hare@suse.de \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=luben_tuikov@adaptec.com \
    /path/to/YOUR_REPLY

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

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).