All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@pobox.com>
To: Mark Lord <lkml@rtr.ca>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>,
	"linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>
Subject: Re: new tool:  blktool
Date: Mon, 16 Aug 2004 12:53:39 -0400	[thread overview]
Message-ID: <4120E693.8070700@pobox.com> (raw)
In-Reply-To: <41201DCA.2090204@rtr.ca>

Mark Lord wrote:
>  > http://www.t10.org/ftp/t10/document.04/04-262r1.pdf
> 
> Ahh.. my buddie Curtis has been busy of late, I see.
> 
> I'll implement this in hdparm and the SATA/RAID driver
> that I'm working on.  Will you (Jeff) do the same in libata?

I plan on providing _some_ way of executing arbitrary taskfiles, 
possibly more than one way.  I haven't decided upon the best route. 
Since T10 took my command protocol suggestions into account in the above 
proposal, implementing that would be an efficient route to the 
arbitrary-taskfiles feature.


> But HDIO_DRIVE_CMD is rather easy to implement as well,
> and perhaps both should be there for an overlap.
> 
> Especially since the former is in rather widespread use right now.
> Yup, it's missing a separate data-phase parameter,
> and lots of taskfile stuff, but it's configured by default
> into every kernel (the same is not true for taskfile support),
> and there's really only a few limited cases of it being used
> for non-data commands:  IDENTIFY, SMART, and the odd READ/WRITE
> SECTOR (pio, single sector).

If HDIO_DRIVE_CMD was easy to do, I would have already done it.  I agree 
with you that supporting it has benefits, but you are ignoring the 
obstacles:

* without taskfile protocol, it is _impossible_ to execute some vendor 
reserved commands
* without taskfile protocol, and without a lookup table, it is 
impossible to distinguish between [non-data | data-in | data-out] on 
some controllers.  Current IDE driver does "execute and pray we can 
guess from controller behavior" which definitely won't work in a lot of 
situations.

Modern SATA controllers need to set up the DMA engine beforehand -- for 
the entire transfer -- including for PIO data xfer commands.

HDIO_DRIVE_CMD tells me nothing about data direction or taskfile 
protocol.  It forces you to guess :(

libata is designed to be flexible enough to execute the full breadth of 
the ATA command set on whatever host controller you pick -- PCI PATA, 
paride, SATA, ATA-over-ethernet, or whatever zany technology you choose. 
  But all that flexibility demands a bit more from the software side of 
things, command protocol in this case.  That's why I the T10 04-262r1 
proposal spec.

	Jeff



  reply	other threads:[~2004-08-16 16:53 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-15 21:36 new tool: blktool Jeff Garzik
2004-08-15 20:55 ` Alan Cox
2004-08-15 22:07   ` Jeff Garzik
2004-08-15 22:18     ` David Ford
2004-08-15 22:22 ` Anton Starikov
2004-08-15 22:40   ` Jeff Garzik
2004-08-15 23:00     ` Anton Starikov
2004-08-15 23:27 ` Mark Lord
2004-08-15 23:34   ` Mark Lord
2004-08-15 23:44     ` Jeff Garzik
2004-08-15 23:36   ` Jeff Garzik
2004-08-16  2:36     ` Mark Lord
2004-08-16 16:53       ` Jeff Garzik [this message]
2004-08-19 15:03         ` Mark Lord
2004-08-19 15:51           ` Bartlomiej Zolnierkiewicz
2004-08-19 17:44             ` Mark Lord
2004-08-19 17:50               ` Jeff Garzik
2004-08-19 17:57               ` Jeff Garzik
2004-08-19 18:01                 ` Mark Lord
2004-08-19 18:04                 ` Mark Lord
2004-08-19 18:12                   ` Jeff Garzik
2004-08-19 18:42                     ` Mark Lord
     [not found] <2tATw-7md-25@gated-at.bofh.it>
     [not found] ` <2tCLz-dp-3@gated-at.bofh.it>
2004-08-15 23:54   ` Andi Kleen

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=4120E693.8070700@pobox.com \
    --to=jgarzik@pobox.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkml@rtr.ca \
    /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.