Well, round-robin startup would at least be better than always using
one process to start all processes. That would go some of the way
towards improving asymmetric heating. (Says me, whose knowledge of
kernel scheduling could be written on the face of a chip and still
leave room for footnotes...)
In the spirit of small amounts of scheduling knowledge, are load
averages kept on individual processors? Or can they be determined fast
enough to not increase the process creation time significantly (or at
least to be offset by the speed gained), in order to put a process or
thread on the least encumbered processor? top(1) lists the assigned
CPU, so it seems like it would be simple enough to determine
on-the-fly, but if it's not kept somewhere, I wouldn't want to iterate
every process to get its assigned CPU every time I create a new one.
Is there a "scheduling-for-dummies" feasibly (even if not easily) read
by non-kernel hackers? :)
On 6/1/05, Erich Dollansky <ocea...@pacific.net.sg> wrote:
The last, but hardly used parameter, is the CPU temperature. I
that FreeBSD tends to use always the same CPU to start a task. This
makes one CPU real hot while the other stays cool. Taking the CPU
temperature into account for starting at least new threads would also
have an advantage of systems with an less then ideal cooling system.
Spreading tasks all over the system with the coolest CPU being the
to be started next will make systems a bit cooler.