Bartlomiej Zolnierkiewicz wrote:
On 11/24/05, Jeff Garzik <jgarzik@xxxxxxxxx> wrote:
Douglas Gilbert wrote:
I don't think a SATL is that easy. One SCSI command can
translate into zero or more ATA commands. If it translates
to multiple commands, then there is the possibility of an
error prior to the last in the sequence of ATA commands
(how to report; rollback needed ?). The SATL needs to hold
state and needs a service thread if it is to support the
IMMED bit on some commands (e.g. START STOP UNIT).
It needs a conceptual service thread, not necessarily an explicit one.
With REQUEST SENSE, I've demonstrated how to report errors with each
step in the sequence. With demo patches I've posted, I've demonstrated
(using qc->private_data) how to hold state.
libata still has a ways to go to catch up to SAT rev 7
but has made some good progress lately with the addition
of the ATA pass through commands (lk 2.6.15-rc1 and onward).
smartmontools (just prior to 5.34) now works with '-d ata'
on libata-connected SATA disks. The '-d ata' ** overrides
the guess of a SCSI disk based on the device node (e.g.
/dev/sda) and uses the HDIO_DRIVE_CMD and HDIO_DRIVE_TASK
ioctls. The absence of support for the HDIO_DRIVE_TASKFILE
ioctl means that "selective" self-test can't be done.
I'm not sure if moving smartmontools to the ATA PASS THROUGH
SCSI commands will win back the "selective" self-test
capability. Anyway, going to those ATA PASS THROUGH SCSI
ATA passthru can do anything the legacy IDE ioctls can do (and more).
[ definitely ATA passthru is the way to go but... ]
discrete taskfiles?
what is this?
multi-PIO?
what is this? multi-sector PIO, such as READ MULTIPLE SECTORS? ATA
passthru can do that.
setting transfer speed?
That's not a limitation of passthru, but a limitation of the driver. I
don't yet see the value...
Jeff
-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html