SATA, PATA, or anything else: if it has to cross the PCI bus, a simple readX()/writeX() can stall the CPU for the equivalent of hundreds of instructions. I agree with Jeff, it is always worth even moderately complex logic to avoid I/O.
Note that an isolated write{bwl}() *may* be almost free in most cases, due to write buffers between the CPU and the bus. But those buffers are of limited depth (typically 3/4 entries), and a stall there often causes a 0.5us (or more) delay.
When measuring PATA hardware, I found the delay was often between 600ns and 1200ns (0.6us to 1.2us), per readX()/writeX(). With SATA, it will likely be around 11 PCI clocks, or say 363ns on most current platforms.
Cheers - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/