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