Messages in this thread | | | Subject | Re: 2.7 block ramblings (was Re: DMA for ide-scsi?) | From | James Bottomley <> | Date | 13 Sep 2003 15:16:09 -0500 |
| |
Oh, and I'm pondering the best way to deliver out-of-bang ATA taskfiles and SCSI cdbs to a device. (for the uninitiated, this is lower level than block devices / cdrom devices / etc.)
... AF_BLOCK is not out of the question ;-)
Well, I think the main issue to doing this is one of layering. What SAM-3 did for SCSI was essentially give us a 3 layer stack which the kernel represents as the upper, the mid and the lower layers (Note, these layers are subdividable too).
For SCSI commands, queuecommand() is a natural handoff point from the mid to lower layer representing a pure scsi command with no transport dependent details.
For ATA, a task file does contain transport dependent knowledge, thus it should enter the stack at a slightly lower level (and a level which the current SCSI model doesn't even represent).
Thus, the two ways of approaching this would seem to be either to derive somehow a way of removing the transport dependence from the taskfile (a sort of Task CDB for ATA), or redo the driver model stack to subdivide the current low level drivers correctly. I think the latter will probably be more productive, particularly if the subdivision is made optional (and thus wouldn't affect most of the drivers currently in the tree). Even in SCSI, there are certain register based SCSI Parallel cards that would benefit from being driven at the same level as a task file.
James
- 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/
| |