Introduction

Dothan is something that both perplexes and intrigues us at the same time. Not quite a Pentium 3, not quite a Pentium 4, and not quite something that is entirely different either. Meanwhile, the NetBurst architecture has come under serious strain over the last few years, particularly since Intel's Prescott launch. Is Intel still capable of killer products? And more importantly, do they still dominate on Linux?

As many who follow our Windows reviews know, Pentium M on the desktop is something a few years in the making. Even when the original 130nm Banias processor showed up in 2003, reviewers and customers alike were astonished with the technology. Intel received even more praise when their 90nm Dothan chips of the same product line showed up - utilizing less than 30W during peak operation and less than 5W on idle. Most of these advancements were due to Intel's controversial strategy to rethink the P6 architecture and refining a particularly interesting technology called Enhanced Speed Step. Enhanced Speed Step, also known as EIST, gives the operating system the ability to dynamically clock the processor. Typically, Windows will dedicate the full 100% of the Dothan's clock during intensive operation, but throttle the processor as far down as 10% of its capable speed when the computer is just idling. Thus, Pentium M has achieved incredible status among overclockers and HTPC enthusiasts - on Windows. Today, we will briefly explore the versatility of Pentium M on the Linux desktop. Lessons learned should also apply to the notebook market as well.

That being said, there are already a few fundamental flaws with the Pentium M architecture on Linux, the largest of these being compiler optimizations. While Opteron/Athlon 64 and Pentium M share substantial optimizations from every corner of the OSS universe, Pentium M receives very little regular attention. Dothan/Banias are slightly cursed, since most Linux OSes are built on the - mtune=i686 flag, which specifically tunes compilation to the P6 core (Pentium Pro), from which the Pentium M is derived. Why is that a curse and not a blessing? Although Dothan and Banias certainly share some key elements with the P6 architecture, they are far from it. Pentium M's Micro Ops Fusion, local branch prediction and general optimizations across integer division and register access are completely ignored by the compiler, even when setting - march=pentium-m, since most compilers (particularly anything before GCC 3.4.2) tend to just categorize Pentium M as a P6 processor with a higher clock.

Of course, the Intel C compiler, ICC, behaves very differently, but unfortunately, isn't very free either. We have a few tests today that include the non-commercial ICC as well and we see how they stack up against GCC 3.4.1. So, if it doesn't bother you that the majority of Linux sees your new Pentium M as a glorified Pentium Pro, without further ado, let's check out how it actually performs against other processors that we have looked at in the past.

The Test
Comments Locked

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.1

    Hope that helps,

    Kristopher
  • vaystrem - Monday, December 27, 2004 - link

    From

    http://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.

Log in

Don't have an account? Sign up now