Re: [Lse-tech] [patch] sched-domain cleanups, sched-2.6.5-rc2-mm2-A3

From: Nick Piggin
Date: Mon Mar 29 2004 - 06:22:52 EST


Andi Kleen wrote:
On Thu, Mar 25, 2004 at 09:30:32PM +0100, Ingo Molnar wrote:

* Andi Kleen <ak@xxxxxxx> wrote:


That won't help for threaded programs that use clone(). OpenMP is such
a case.

this patch:

redhat.com/~mingo/scheduler-patches/sched-2.6.5-rc2-mm3-A4

does balancing at wake_up_forked_process()-time.

but it's a hard issue. Especially after fork() we do have a fair amount
of cache context, and migrating at this point can be bad for
performance.


I ported it by hand to the -mm4 scheduler now and tested it. While
it works marginally better than the standard -mm scheduler (you get 1 1/2 the bandwidth of one CPU instead of one) it's still
still much worse than the optimum of nearly 4 CPUs archived by
2.4 or the standard scheduler.


OK there must be some pretty simple reason why this is happening.
I guess being OpenMP it is probably a bit complicated for you to
try your own scheduling in userspace using CPU affinities?
Otherwise could you trace what gets scheduled where for both
good and bad kernels? It should help us work out what is going
on.

I wonder if using one CPU from each quad of the NUMAQ would be
give at all comparable behaviour...

If it isn't a big problem, could you test with -mm5 with the
generic sched domain? STREAM doesn't take long, does it?
I don't expect much difference, but the code is in flux while
Ingo and I try to sort things out.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/