Re: vm lock contention reduction

Andrew Morton
2002-07-07T03:47:54Z

Linus Torvalds wrote:
>
> On Sat, 6 Jul 2002, Andrew Morton wrote:
> >
> > Martin is being bitten by the global invalidate more than by the lock.
> > He increased the size of the kmap pool just to reduce the invalidate
> > frequency and saw 40% speedups of some stuff.
> >
> > Those invalidates don't show up nicely on profiles.
>
> I'd like to enhance the profiling support a bit, to create some
> infrastructure for doing different kinds of profiles, not just the current
> timer-based one (and not just for the kernel).
>
> There's also the P4 native support for "event buffers" or whatever intel
> calls them, that allows profiling at a lower level by interrupting not for
> every event, but only when the hw buffer overflows.
>
> I haven't had much time to look at the oprofile thing, but what I _have_
> seen has made me rather unhappy (especially the horrid system call
> tracking kludges).
>
> I'd rather have some generic hooks (a notion of a "profile buffer" and
> events that cause us to have to synchronize with it, like process
> switches, mmap/munmap - oprofile wants these too), and some generic helper
> routines for profiling (turn any eip into a "dentry + offset" pair
> together with ways to tag specific dentries as being "worthy" of
> profiling).
>
> Depending on the regular timer interrupt will never give good profiles,
> simply because it can't be NMI, but also because you then don't have the
> choice of using other counters (cache miss etc).
>
> oprofile does much of this, but in a damn ugly manner.
>

I pinged John about an oprofile merge just the other day actually.
He agrees with you on the syscall table thing. I think he says
that it could be cleaned up if oprofile was in the tree. Ditto
the issue with mmap.

I was able to isolate and fix some fairly hairy performance problems
at work with oprofile. It's a great tool - I use it all the time. And
it profiles the entire system - right down to file-n-line in some random
shared object. With NMIs. It is not just a kernel tool.

So. John. Get coding :-)

-