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
next prev parent 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).