On Wed, Dec 10, 2008 at 12:44:51PM +0900, Tejun Heo wrote: > >> and thus have SG on the host bus side in mode cases > >> but never on the device side. > > > > SG == scatter-gather? I'm not sure why that is specific to rotating media. > > Or is this referring to "SCSI-generic" pass through? > > I was talking about scatter-gather. All the IO commands are about one > continuous extent of data on the device and the whole stack from the > bio is built that way and the overhead of libata is minute compared to > the whole thing including emitting single command and receiving > completion for each 4k transfer. I think what Tejun means is add a new command, say READ_SG which would transfer a page of LBA ranges (see how TRIM works for details), then the drive would do a single transfer which contained the data from all those ranges. This would work, but (ignoring the political / standardisation efforts required to make this happen), this is just a cop-out. When networking people were first faced with gigabit, they tried the same thing (oooh, 9000 byte packets, oooh, TCP Offload, etc), all in the name of passing larger amounts of data to the card in a single transaction so they didn't have to fix their per-transaction overheads. Users weren't interested. They wanted to keep sending 1500 byte packets (because most equipment couldn't handle jumbo frames) and they wanted netfilter and SACK and all the other goodies that the Linux networking stack offered and the card's TCP stack didn't. We should stop denying that users actually want to do 4k IOs and just get on with fixing the storage stack to cope with lots of them. -- Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html