On Wednesday 13 August 2003 15:49, Bill Davidsen wrote: > On Mon, 28 Jul 2003, Andrew Theurer wrote: > > Personally, I'd like to see all systems use NUMA sched, non NUMA systems > > being a single node (no policy difference from non-numa sched), allowing > > us to remove all NUMA ifdefs. I think the code would be much more > > readable. > > That sounds like a great idea, but I'm not sure it could be realized short > of a major rewrite. Look how hard Ingo and Con are working just to get a > single node doing a good job with interactive and throughput tradeoffs. Actually it's not too bad. Attached is a patch to do it. It also does multi-level node support and makes all the load balance routines runqueue-centric instead of cpu-centric, so adding something like shared runqueues (for HT) should be really easy. Hmm, other things: inter-node balance intervals are now arch specific (AMD is "1"). The default busy/idle balance timers of 200/1 are not arch specific, but I'm thinking they should be. And for non-numa, the scheduling policy is the same as it was with vanilla O(1). > Once they get a good handle on identifying process behaviour, and I > believe they will, that information could be used in improving NUMA > performance, by sending not just 'a job" but "the right job" if it exists. > I'm sure there are still a few graduate theses possible on the topic! I do agree, but I think _what_ we pick is definitely 2.7 work. All I'd like to see for 2.6 is a very nice, unified framework to build on. As for 1cpu/node case I think this second patch (on top of first) will take care of it; however I have not had a chance to test on AMD yet. -Andrew Theurer