On 11.03.2015, stan wrote:
I don't see why this is necessary. The system is showing 470% idle. So the kernel cpu scheduler shouldn't need to limit the job to a single core maximum usage.
I just tried a simple "make" on an 8-core machine. There was exactly one compile process, and it's 100% load was distributed over 3 cores. So nothing wrong with that one. If you run 100% on one core or 100% distributed over multiple cores is, in terms of efficacy, the same.
Even if it leaves some margin for error, it should still be using more than a single core equivalent. The kernel programmers are smart folks. Not to mention that they do large compilations on multi-core machines often. I doubt that they hard coded this kind of behavior into the kernel.
It's the limiting to one process which causes what you observe. 1 process can not get more resources that 100%. The CPU scheduler handles how they are distributed.
So there must be a setting that is limiting the kernel scheduler in some way. Maybe it's the scheduler that is being used. I'm using 'on demand' rather than 'performance'.
Ondemand and performance affect the cpufreq, not the load balancing or the involvement of different cores.
'Performance' sounds like it keeps everything at full rev all the time.
No. It keeps every core running at full speed all the way, which has nothing to do with how the load is balanced between different cores.
I'll keep plugging away, reading and experimenting, until I get it or give up.
Use "make -j" when compiling and be happy :-)