ATA rman performance enhancement
Søren Schmidt
sos at DeepCore.dk
Mon Jan 3 11:41:34 PST 2005
Nate Lawson wrote:
> While doing some benchmarking of other code, I noticed that there were a
> lot of calls to rman_get_bustag/handle(). They weren't taking up much
> actual time since they're pretty lightweight but seemed to be unnecessary.
>
> I worked up the attached diff and benchmarked it. There are about 1000
> calls a second to the rman routines without this patch and essentially
> none with it. It makes about a 1% difference in throughput under some
> IO loads. It is only for non-Promise or non-SII controllers right now
> since I didn't extend the initialization step to more than ata-pci.c.
> The same approach could be used for the other INW/OUTW calls as well but
> they're not in the fast path. I think it may make more of a difference
> with small reads.
>
> Feel free to test, cleanup, and commit.
I had something semilar to this once back when, but since HW got lots
faster I couldn't measure it anymore, but maybe things has changed...
Anyhow it needs to be applied to ata-isa.c ata-card.c ata-cbus.c etc to
not break anything at least. I'll think about it and eventually do
something about it in ATA-mkIII if it really is mesureable again..
--
-Søren
More information about the freebsd-current
mailing list