Messages in this thread | | | Date | Wed, 01 Sep 2004 09:20:30 -0400 | From | Mark Lord <> | Subject | Re: [PATCH] Configure IDE probe delays |
| |
Bartlomiej Zolnierkiewicz wrote: > >>What determines whether 48 bit addressing will be used then? > > Availability of 48-bit addressing feature set and host capabilities > (some don't support LBA48 when DMA is used etc.).
I haven't examined the "released" IDE drivers in some time, but one optimisation that can save a LOT of CPU usage is for the driver to only use LBA48 *when necessary*, and use LBA28 I/O otherwise.
Each access to an IDE register typically chews up 600+ns, or the equivalent of a couple thousand instruction executions on a modern core. Avoiding LBA48 when it's not needed will save four such accesses per I/O, or about 2.5us.
LBA48 is only needed when (1) the sector count is greater than 256, and/or (2) the ending sector number >= (1<<28).
I regularly include this optimisation in the drivers I have been working on since LBA48 first appeared.
Cheers -- Mark Lord (hdparm keeper & the original "Linux IDE Guy") - 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/
| |