Messages in this thread | | | Date | Mon, 26 May 2003 01:30:12 -0400 | From | Jeff Garzik <> | Subject | Re: [BK PATCHES] add ata scsi driver |
| |
Linus Torvalds wrote: > On Mon, 26 May 2003, Jeff Garzik wrote: > >>Just to echo some comments I said in private, this driver is _not_ >>a replacement for drivers/ide. This is not, and has never been, >>the intention. In fact, I need drivers/ide's continued existence, >>so that I may have fewer boundaries on future development. > > > Just out of interest, is there any _point_ to this driver? I can > appreciate the approach, but I'd like to know if it does anything (at all) > better than the native IDE driver? Faster? Anything?
Direction: SATA is much more suited to SCSI, because otherwise you wind up re-creating all the queueing and error handling mess that SCSI already does for you. The SATA2 host controllers coming out soon do full host-side TCQ, not the dain-bramaged ATA TCQ bus-release stuff. Doing SATA2 devel in drivers/ide will essentially be re-creating the SCSI mid-layer.
Modularity: drivers/ide has come a long way. It needed to be turned "inside out", and that's what Alan did. But there's still a lot of code that needs to be factored out/about, before hotplugging and device model stuff is sane.
Legacy-free: Because I don't have to worry about legacy host controllers, I can ignore limitations drivers/ide cannot. In drivers/ide, each host IO (PIO/MMIO) is done via function pointer. If your arch has a mach_vec, more function pointers. Mine does direct calls to the asm/io.h functions in faster. So, ATA command submission is measureably faster.
sysfs: James and co are putting time into getting scsi sysfs right. I would rather ride their coattails, and have my driver Just Work with sysfs and the driver model.
PIO data transfer is faster and more scheduler-friendly, since it polls from a kernel thread.
And for specifically Intel SATA, drivers/ide flat out doesn't work (even though it claims to).
So, I conclude: faster, smaller, and better future direction. IMO, of course :)
Jeff
(the following is somewhat comparing apples to oranges, but I like doing it nonetheless)
bash-2.05b$ wc -l drivers/scsi/libata.c drivers/scsi/ata_piix.c include/linux/ata.h 2247 drivers/scsi/libata.c 322 drivers/scsi/ata_piix.c 485 include/linux/ata.h 3054 total
bash-2.05b$ wc -l drivers/ide/*.[ch] drivers/ide/pci/piix.[ch] 3418 drivers/ide/ide-cd.c 733 drivers/ide/ide-cd.h 71 drivers/ide/ide-default.c 1841 drivers/ide/ide-disk.c 1145 drivers/ide/ide-dma.c 2090 drivers/ide/ide-floppy.c 135 drivers/ide/ide-geometry.c 1330 drivers/ide/ide-io.c 1322 drivers/ide/ide-iops.c 437 drivers/ide/ide-lib.c 97 drivers/ide/ide-pnp.c 1466 drivers/ide/ide-probe.c 930 drivers/ide/ide-proc.c 6330 drivers/ide/ide-tape.c 2006 drivers/ide/ide-taskfile.c 798 drivers/ide/ide-tcq.c 281 drivers/ide/ide-timing.h 2539 drivers/ide/ide.c 41 drivers/ide/ide_modes.h 899 drivers/ide/setup-pci.c 840 drivers/ide/pci/piix.c 317 drivers/ide/pci/piix.h 29066 total
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |