On Wednesday, July 13, 2011 09:00:13 AM m.roth at 5-cent.us
wrote:> Coming in late, here, but 64 bit should run as fast or faster, since the
> registers are larger, and 64-bit hardware is optimized for by 64-bit
> compilers. In addition, you get twice as much data per fetch. The upshot
> is that there is no good reason for it to run slower.
This is not true in the general 64-bit architecture case. It may be mostly true
in the specific x86_64 case, but there is a reason a 32-bit userland is used on
64-bit SPARC linux, and that reason is code bloat (which makes it take longer to
load from disk, it takes up more cache, etc). Version 9 SPARC64 has no
performance benefit over 32-bit SPARCv9 code; the only benefit is increased
memory capability per-process. But that's due to the SPARC architecture;
Alpha, MIPS64, Power, IA64, and 64-bit S/390 are all different (among the more
popular non-x86_64 64-bit architectures).
And while the ideas and theory of x86_64 version ia32 code can be argued as long
as we want to, it really boils down to measurements and benchmarks of your
actual code. If it actually runs faster compiled ia32, then run it ia32; if
x86_64 is faster, then run it there. Whether somebody thinks it should run
faster always in x86_64 mode is totally irrelevant if measurements prove
otherwise.
And, once again, this is an upstream thing; upstream EL ships multilib-enabled
x86_64 and so that's what CentOS ships.