Jeff Garzik wrote:
Mark Lord wrote:
To maximize throughput, some kind of host-queuing would be needed,
or just have the driver sit in a tight loop, starting the next I/O
immediately when the previous one finishes. Linux isn't that quick
(yet).
I was talking on IRC with Tejun just recently. There are several
controllers (and/or "situations") like this, where some amount of host
queueing would permit greater throughput, even when NCQ is not
supported. sata_sx4 is the most dramatic example, where host queueing
could potentially increase speed by a factor of 10 or more, since it is
penalized by an awful two-irq-per-command (w/ a per-host bottleneck to
boot) setup. Silicon Image has a "command buffer". And overall, I
designed ->qc_prep() hook separate from ->qc_issue() to enable the
prepartion of multiple commands such that it only takes a simple "go"
I/O to start a transaction, immediately after the previous one ends.
Jeff
Theoretically NVIDIA nForce4 ADMA could likely do this as well, as it
seems to allow chaining up multiple commands to execute in succession
(assuming they're not NCQ)..
--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx
Home Page: http://www.roberthancock.com/
-
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