.i586 packages: not a big deal

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


One thought on “.i586 packages: not a big deal

  1. linus cmov observations are the opposite for the n270 atom cpu
    The N270 Atom processor uses “in order” processing, if you run linus’ test code for cmov then the opposite result is observed, ie cmov is nearly twice as fast.
    So Atom Netbooks need i686, but nx flag is not present in /proc/cpuinfo (pae is there)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s