|.i586 packages: not a big deal
||[Mar. 9th, 2009|01:58 pm]
Will Woods, Fedora Testing Guy
A note about .i586 packages in Fedora 11, and why you shouldn't worry about them:|
Since we have a new compiler, some RPM checksum improvements, and - for x86 users - changes to the default architecture support, we've done a mass rebuild of every package in Fedora. x86 users will likely notice the following changes:
- All .i386 packages have been rebuilt for i586.
- Instead of building four kernel packages (i386, i586, i686, and i686-PAE) we're now building just two kernels: i586 and i686-PAE.
- Newly-installed x86 systems that have 'pae' and 'nx' in /proc/cpuinfo will get i686-PAE.
- Everything else will use kernel.i586.
Here's the thing: moving to i586 isn't a big deal because we're already optimizing for modern (i.e. Pentium 4 or later) processors. For the past couple years we've been using gcc's -mtune=generic flag, which optimizes for "the processors that were most common when that version of GCC was released" (according to the gcc info page). The only thing that moving to i586 really changes is the instruction set that's used. i586 adds a handful of new instructions over i386 - notably CMPXCHG8B, which is useful for efficient atomic operations - but nothing world-changing. This probably isn't going to give you more FPS in glxgears.
As for the kernel, the only difference between i586 and i686 is the CMOV instruction family, which - as Linus explains here - generally performs worse than the equivalent i586 instructions on modern CPUs. So moving the kernel from i686 to i586 should have no real effect on performance.
I'm sure there will be much discussion on the subject, but I'd like to see some good benchmarks - real data, rather than people reporting that Fedora 11 is "snappier" because it's "Pentium optimized", or "slower" because "the kernel is only i586 now".