strange CPU speedups with SMP on Athlon 64 X2

From: Nathan Becker
Date: Tue Aug 30 2005 - 14:16:28 EST


Hi,

I'm having a strange problem when I benchmark some of my physics simulation code on my new Athlon 64 X2 4800 machine. It occurs on all current kernels that I have tested including 2.6.12.5 and 2.6.13.

If I run my benchmark single threaded, so that one of the two CPU cores is just idling then the calculation goes pretty fast. But if I load both CPU cores simultaneously but with INDEPENDENT calculations, then each calculation runs about 12-15% faster than when running alone. I have found this to be always reproducible. There is no disk access involved in the calculation and RAM usage is fairly minimal so this is not caused by caching. Also, if I compile the kernel to disable SMP then the machine runs a single calculation at the same speed as when running alone when SMP is enabled.

I am aware of the timing issues on these machines (especially since I reported the bug http://bugzilla.kernel.org/show_bug.cgi?id=5105 ). However, I double-checked my benchmark with a stop-watch, so this is independent of something strange happening in the timer.

I also checked the cpufreq governor and according to the logs, my CPU is holding steady at the maximum setting of 2.4GHz. I set the governor to "performance" mode which should prevent unintended downclocking.

I would be happy to post my exact C source that I use to do the benchmark, but I wanted to get some feedback first in case I'm just doing something stupid. Also, since I'm not subscribed to this list, please cc me directly regarding this topic.

Thanks very much,

Nathan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/