Linux and the Desktop Pentium M: Uncommon Performance
by Kristopher Kubicki on December 24, 2004 12:00 PM EST- Posted in
- Linux
A bit about Speed Step, Thermals, Power and Noise
Although this is not the first time that we have looked at Dothan, the exciting bit about the technology is that it requires so little power and thus, so little cooling. The only active cooling required in our Pentium M setup was a 40mm fan on the processor heatsink; the Northbridge is cooled passively.Another reason why we selected the DFI motherboard for this roundup was the fact that it uses such elegant cooling. The HSF combo is proprietary to this motherboard, but it will fit easily in a 1U or SFF case with plenty of clearance and low noise. When we had our test rig setup in an aluminum Hornet Pro SFF chassis from Monarch Computers, we only needed a single, low RPM 80mm fan and the 40mm CPU HSF to cool the rig. At full operation, the Dothan desktop system ran at less than 30 dBA, too low for our Extech devices to even get a measurement at 12".
After a full hour of operation, our BIOS reported the Dothan at a "cool" 98 degrees Fahrenheit. The 40mm fan above is clearly ample enough for our purposes, but we did a little overclocking up to 2.4GHz and the same HSF combo held up fine. More importantly, the combo came free with the motherboard. What interests us even more is that this configuration is not even running Enhanced Speed Step! The 2.6 Linux kernel provides us with an excellent method of adjusting the CPU clock, dubbed "CPU Frequency Scaling". Unfortunately, this option is not enabled by default in most kernel configurations and requires a recompile.
In the .config file of a 2.6.x kernel build directory, we have to change the following lines:
CONFIG_X86_ACPI_CPUFREQ=y CONFIG_CPU_FREQ_GOV_USERSPACE=yBoth lines should now read "y" for yes. After restarting the computer, setting the processor clock speed is as easy as this:
echo 600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeedThe sys daemons now will read the scaling file and dynamically clock the processor to 600,000 KHz. Although this amount of control is great for us right now, running a real time daemon to monitor CPU usage would probably be a little more beneficial to us. "cpufreqd" and "speedfreqd" both take control of the CPU scaling and work the same, if not arguably better than the Windows driver that does the same thing. For the tests in this analysis, both daemons were disabled; although, if you plan on getting the most out of your laptop or Dothan desktop, you should run a daemon for the best thermals and power usage.
47 Comments
View All Comments
- Saturday, October 24, 2009 - link
http://www.goph3r.com/mh">http://www.goph3r.com/mh(air jordan, air max, shox tn, rift, puma, dunk sb, adidas) nike jordan shoes 1-24 $32
lv, coach, chane bag $35
COOGI(jeans, tshirts, hoody, jacket) $30
christian audigier(jeans, tshirts, hoody) $13
edhardy(shoes, tshirts, jeans, caps, watche, handbag) $25
Armani(jeans, tshirts,) $24
AF(jeans, coat, hoody, sweater, tshirts)Abercrombie & Fitch $31
http://www.goph3r.com/mh">http://www.goph3r.com/mh
BullCreek - Thursday, January 13, 2005 - link
Does anyone know where I can buy socket479 dothan core pentium Ms online? Newegg and various other places stock the socket 478 variety, but I haven't found anyone that has the socket 479 type.vl - Thursday, December 30, 2004 - link
If you are using an IDE drive make sure DMA was enabled. To check you can use the hdparm command.Lynx516 - Tuesday, December 28, 2004 - link
Something is disasterously wrong with your setup. Have you tried using a live CD and try compiling with that?What command are you using to compile the kernel? Are you sure you have GCC installed correctly? What do you get if you type gcc-config -l?
Are you sure nothing else is running (well major tasks)?
Have you tried running it as root?
KristopherKubicki - Tuesday, December 28, 2004 - link
Correct they are "user". Here are the results with GCC 3.4.3 on the same system on the second run.real 20m42.192s
user 16m39.148s
sys 1m21.287s
dave:~/bench/gcc/linux-2.6.4 # cat /proc/cpuinfo | grep MHz
cpu MHz : 2105.068
... Not sure what is the problem here. The CPU clock is correct. If anyone else has any ideas as to why only the GCC benchmark would be affected I am all ears.
Kristopher
Yozza - Tuesday, December 28, 2004 - link
Results with gcc version 3.4.3 20041125 on the Banias 1.7GHz (DDR266/400FSB).run 1:
real 4m40.758s
user 3m58.039s
sys 0m20.060s
run 2: (after "make clean")
real 4m24.759s
user 3m58.409s
sys 0m19.978s
run 3: (again, after "make clean")
real 4m27.728s
user 3m58.233s
sys 0m20.161s
Of course, this is with gcc 3.4.3. I'd rather not install 3.4.1 on this system only to rollback to 3.4.3 straight after.
I assume the kernel compile times you showed in the article were from "user" (or user + sys), rather than "real", as the latter is affected by other things happening on the system whereas the former gives the actual CPU time taken by the process.
The results are impressive to say the least. It's certainly extremely puzzling that your results with Dothan were so disparate. One would expect it to do very well indeed based on my results with 1.7GHz Banias + DDR266.
For comparison, my 3GHz NW P4:
run 1:
real 4m50.687s
user 4m19.365s
sys 0m25.261s
run 2:
real 4m46.675s
user 4m23.775s
sys 0m24.567s
KristopherKubicki - Tuesday, December 28, 2004 - link
Yozzo, Can you please do kernel 2.6.4 like we did in the benchmark?Kristopher
Yozza - Tuesday, December 28, 2004 - link
Development on the 3.4 gcc branch has only recently stabilised, and the pentium-m cflag was indeed quite buggy/broken in earlier releases, hence why I stated that gcc 3.4.1 is "pretty old". Not in the absolute sense, but rather in terms of the amount of development work that has gone into the 3.4 branch since.Some quick benchmarks with gcc version 3.3.4 20040623:
System was P-M Banias 1.7GHz, 768MB DDR266, i855PM; on a Dell D600.
# time make
...
real 9m36.940s
user 8m40.395s
sys 0m39.643s
2nd run:
real 9m35.056s
user 8m40.515s
sys 0m39.664s
For comparison, my 3GHz NW P4, 1.5GB DDR400, i875P:
1st run:
real 10m0.508s
user 9m0.929s
sys 0m46.210s
2nd run:
real 9m58.564s
user 9m3.107s
sys 0m45.658s
Kernel was 2.6.10-ck1-nitro1, with custom .config (http://homepage.ntlworld.com/yaoyaoliu/.config).
I didn't have gcc 3.4.3 available on my laptop to test, but gcc 3.3.4 clearly shows the expected performance and hence that there is nothing inherently wrong with the P-M architecture that makes it slow at compiling -- indeed, the 1.7GHz Banias P-M (DDR266, 400FSB) is slightly faster than my 3GHz Northwood P4 (dual DDR400, 800FSB).
I was also interested to see how much faster gcc 3.4.3 was compared to 3.3.4, and so decided to do a compile on my 3GHz P4 desktop machine (same kernel):
real 6m34.443s
user 5m52.910s
sys 0m33.019s
Interesting results indeed.
KristopherKubicki - Monday, December 27, 2004 - link
The GCC we used is the same GCC bundled with SUSE 9.1, our test platform. I don't think 6 months is too old for a processor architecture that has been available for close to 2 years. However, we will get a chance to revist these numbers in the very near future, and i will redo the tests with GCC 3.4.3 and GCC 3.4.1Hope that helps,
Kristopher
vaystrem - Monday, December 27, 2004 - link
Fromhttp://gcc.gnu.org
The GCC Homepage:
3.4.1 released July 2004
3.4.3 released November 2004
If you look at the changelist there have been a lot of improvements even between these few releases.