Here's a phoronix benchmarking article I came across that I thought would interest people here. Using an Intel Core 2 Duo T9300 machine with 4 gigs RAM, they benchmark a normal 32-bit kernel (which limits to 3 gig accessible due to the PCI device I/O window just below the 32-bit 4-gig barrier), a 32-bit PAE kernel, and a 64-bit kernel. The distribution was Ubuntu 9.10.
One thing I did NOT see them specify, is whether on the 64-bit kernel, they were using a 32-bit userland, or 64-bit. That could make some difference. Apparently, Linus has claimed a 25% performance penalty using PAE. However, they don't link that claim and I didn't google it, so I don't know the context. In particular, I don't know whether he was claiming the penalty as compared to 32-bit standard, with its memory limitations, or as compared to 64-bit. If the latter, certainly, these benchmarks demonstrate he was being conservative, if anything, in some areas. One other point to note. As we're talking binary based Ubuntu here, the 32-bit versions will be much more generically optimized, since they cater to a much broader hardware base, than the 64-bit, which by virtue of its being a much newer standard, can and does define as available some SSE and etc extensions that 32-bit, compiled as generically as Ubuntu does, will not be able to take advantage of. I really do wish I knew whether the 64- bit benchmarks were done using the 64-bit Ubuntu userspace or the 32-bit user-space, but if they say, I didn't see it. But if it's the 64-bit userspace, the extra optimizations possible with 64-bit will make some difference as well. Of course, also coming into play is likely the CFLAGS, etc, the phoronix test suite itself was built with. But regardless of those details, the benchmarks speak for themselves. Gaming/OpenGL, not much difference (so little they included only one graph, "to avoid repetition"), but WOW, check out some of the other benchmarks! Certainly as memory capacities reach and exceed 4 GB, the article's conclusion is valid, basically, don't bother monkeying around with 32-bit PAE and CONFIG_HIGHMEM64G, just do it right and go full 64- bit. Or as they put it: > Unless you have technical or business reasons for not migrating to > 64-bit Linux with compatible hardware, there is no reason to stick > around with a 32-bit kernel and worrying about physical address > extension. That said, one /does/ wonder what the results would have been like, had they been comparing 32-bit compiled with -O2 -march=native against 64-bit compiled similarly, basically, the Gentoo recommended defaults. I expect that would have increased 32-bit performance somewhat, possibly even narrowly beating out 64-bit where the differences aren't that great in the benchmarks as-is. -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman
