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