On Fri, 29 Jan 1999, Neil Conway wrote:
> Robert M. Hyatt wrote:
> >
> > Now that 2.2 has hit the ground, I have one topic to suggest for 2.3
> > development. Probably more appropriate in the normal kernel mailing
> > list, but it is a performance issue, and since my machines are SMP-based,
> > maybe it is appropriate here as well.
> >
> > The topic is memory-to-cache mapping.. and the current more-or-less
> > random page allocation approach is fine for most programs, but for those
> > that are _very_ cpu intensive, it leaves a lot to be desired. Since all
> > of the cache systems we are going to see for the forseeable future are
> > going to have some sort of 'direct mapping' at their core (ie 4-way
> > set associative still direct maps to the set) there is going to be a
> > good way to lay out a program in memory (several good ways in fact)
> > but there are far more bad ways. And statistics says we get the bad ways
> > far more often than we get the good ways. :)
> >
> > The issue for me is program optimization. I make a change that obviously
> > results in better instruction scheduling and the program runs slower
> > because now I get less cache performance due to the way the program was
> > loaded _this_ time.
>
> I'm very interested in making codes faster (number-crunching is what we
> do here).
>
> But: I get much more than 2% variations on codes, (try 20%+). It
> depends on the nature of the code, and my feeling is that it's due to
> alignment problems.
>
> I find that running a code under X instead of in a VT can make a huge
> difference for good or for bad (like tens of percent). This is
> surprising to me.
I only see this on graphics chipsets that are sloppy about how 'scrolling'
is handled. IE I have a trident chipset on my notebook and if I run a
compute bound task on that machine, but it produces a modest amount of
output that causes scrolling, then xwindows eats a significant amount of
cpu time, easily hitting 20% of total, sometimes higher...
>
> I'm no expert, but I've seen various comments over the last year or two
> which support this view (alignment issues). For some reason, Linux (or
> is it the compiler's fault?) doesn't always ensure decent alignment of
> the critical bits, and this may be worsened when variables are on the
> stack. (When you're using someone else's code which puts lots of things
> on the stack you don't have a lot of options.)
>
> (Perhaps in fact this issue is the same as Robert's cache mapping issue
> but the magnitude of the effect I see is much large than he
> describes...)
>
> Is anyone else up to speed on alignment issues?
>
> Neil
>
-
Linux SMP list: FIRST see FAQ at http://www.irisa.fr/prive/mentre/smp-faq/
To Unsubscribe: send "unsubscribe linux-smp" to [EMAIL PROTECTED]