Re: ATA rman performance enhancement

From: Sean McNeil <sean_at_mcneil.com>
Date: Mon, 03 Jan 2005 11:54:39 -0800
On Mon, 2005-01-03 at 20:40 +0100, Søren Schmidt wrote:
> 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..

I would suggest that it be done even if it isn't measurable.  If you do
not need to call a function all the time like that, then where is the
harm in doing it more efficiently?  The added memory storage for this is
more than made up by its usefulness.

Cheers,
Sean


Received on Mon Jan 03 2005 - 18:54:43 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:25 UTC