CPU utilization problem on 2.6.10 kernel

Hello group!

When we migrate from the kernel version 2.4.20 to the version 2.6.10 we encountered the following problem:

Our HW platform is Intel server blade with two Xeon processor with HT (top shows 4 processors). When we run our multi processes benchmark on the 2.4.20 kernel we were able, according to top, to utilize all 4 processors 100% (0 % idle time).

But when we run the same binary on the 2.6.10 kernel the benchmark was unable to utilize all 4 CPUs more than 35% (65 % of idle time on every processor is still available).

Simple single threaded benchmarks gave us same results on both kernel versions.

I presume that something must be wrong with the scheduling and SMP. Will applying of the scheduling patches or migration to the newer kernel helps? Why? Did someone encounter similar problem? Can you point me to any useful link on the net?

Any comments are more than welcome.

Regards,

Sani snipped-for-privacy@SPAMNOiskratel.si

Reply to
Sani Rus
Loading thread data ...

Did you just check the idle time value provided by the Kernel, or did you also measure how much work the application threads get done ?

By this you might be able to decide if the problem in fact is the scheduling or just the reading of the idle time value.

-Michael

Reply to
Michael Schnell

snip

I think the difference is in the way that 2.6 determines active and idle time for Hyper Threading. I notice that 2.4 kernels will report

100% on each hyperthread, whereas with 2.6 kernels, the sum of the two will never exceed 100%. 2.4 kernel are not too smart about HT and seem to think that each hypterthread is an independent processor. 2.6 seems to understand that this is one processor with two hyperthreads. So, really, the difference is in the way that CPU utilitization is being reported on hyperthreaded processors, rather than any scheduling problem.

By the way, the 2.6 information is accurate and the 2.4 info is false (A hyperthreaded CPU does not have 200% CPU real-time available to it, maybe at the outside 130%.)

--brian

Reply to
bidulock

With modern CPUs, determining the idle percentage does not seem to make much sense. A hyperthreaded CPU can do some 120% of the performance if the second thread is enabled, but this depends greatly on the task to be done. If both threads do a lot memory actions that use data outside of the cache, the memory interface is the limiting factor and the performance will be not more that 100% of the single threadded setup. Supposedly even only some 80% because of the task switching overhead.

-Michael

Reply to
Michael Schnell

This is not for sure :).

Each thread _could_ be calculated as 100% (which is some 60% of the performance of a single "CPU" in a non hyperthreaded setup with the same chip).

-Michael

Reply to
Michael Schnell

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.