Subject: Re: scalability enhancements to pool(9)
To: <>
From: David Laight <david@l8s.co.uk>
List: tech-perform
Date: 11/09/2003 19:48:42
On Sun, Nov 09, 2003 at 06:50:09PM +0100, Frank van der Linden wrote:
> On Sun, Nov 09, 2003 at 05:37:31PM +0000, David Laight wrote:
> > > 7.09 0.77 0.36 Xspllower
> >
> > Any thoughts about finding out where this is called from?
>
> That's tough to say. It's called from splx(), but only if there are pending
> interrupts. Could be from any splx(). If you want to know, copy/paste
> spllower (and splraise) from the inlines in x86/include/intr.h into
> real functions; this will show where they're called from.
I know that, but typically splx gets charged with all the time spent
with interrupts disabled. So what you really need to do is attribute
the time back to the caller of splx().
If we do a deferred splxxx (ie defer an interrupt after it happens instead
of disabling it) maybe the profiler could save the original saved PC
but do the actual work when splx is finally called.
De-inlining things only makes it worse!
I've been known to inline stuff just to get better profiling - even though
code-bloat makes the whole system too slow.
David
--
David Laight: david@l8s.co.uk