I experience quite low performance on a dual processor sparc32 system, running kernel 2.4.29. Upon closer examination it seems to be a scheduler problem.
The two cpu's are never really exploited. When launching two processes they don't allocate evenly distributed. WHile I suspected this under normal usage and when running multiple CC instances during compilation, the proof came from running 2 instances of setiathome (conveniently renamed seti1 and seti2).
The two processes are equal and the rest of the system is idle except for TOP. The two processes do not distribute one for each cpu, giving a system load of about 2 like it happens on other operating systems (eg. Solaris). Instead they run both on one cpu. Not only, they migrate at interval of about less than a second to the other cpu, thus trashing the caches of the cpu too. Needless to say, the performance is meager.
Running emerge shows hardly an improvement when using 2 cpus !
Also adding "other" processes in the background yielded no better results. Process tend tobe distributed unevenly on the cpus and I see the setiathome processes migrate from cpu 0 to 1.
Starting a third, big process like "emerge" which then takes a long while during the ache update shows all 3 processes running on one cpu, then migrating one after the other to the other cpu and back....
anyone experiences this problem?
Gathering from chat with other peoples that use both x86 and sparc32 tell me it is a peculiarity of the latter. Supposedly 2.6 shows improvments in SMP on x86, but on sparc32 it is still unstable.
Comments? Suggestions?

