Should we build i386 or i686 rpms?

James Wilkinson james at westexe.demon.co.uk
Tue Mar 22 13:23:35 UTC 2005


Didier Casse wrote:
>                     I have question that's on my mind for some time now:
> Does i686-optimized packages really give us improved performance over
> some of our i386-optimized cousins?
> 
> Nowadays most people are using pentiums: Now if I have a pentium and I
> build i686 rpms, would it make a significant difference in performance
> in my box?

I believe that Fedora Core 3 (on x86) is optimised for a Pentium 4, but
most packages are compiled to use i386 instructions.

For most purposes, the extra instructions since the i386 either aren't
used enough to make any performance difference, or need custom assembler
to use them.

Where this isn't true, i586 and/or i686 packages are provided. If you
can find an i386 package that would benefit from i686 packages, and can
provide real-life benchmarks to prove it, please take it to
fedora-devel and/or bugzilla.

Apparently, Athlons don't mind the Pentium optimisations: see
http://diary.codemonkey.org.uk/index.php?month=12&year=2004#20041204

Custom assembler is the responsibility of the package, not Fedora.
There will usually need to be an alternative C (or whatever)
implementation for non-x86 processors. Often, a package that goes as far
as providing (say) its own assembler for SSE instructions will provide
binaries that can detect the processor type at runtime, and choose
whether to use them or not. So you get an i386 package that uses SSE
instructions if they're available.

A related issue that you didn't mention is gcc optimizations. Most
Fedora packages, I understand, are compiled with -O2 optimisations. This
is supposed to make things faster at the expense of slightly larger
binaries. The larger binaries mean that cache is used less efficiently,
and on some packages -Os, compile for (minimal) size, produces binaries 
that will run faster (since the cache is used more efficiently).

This effect can vary depending on CPU design, cache size, background
tasks, etc. (but is rarely very large). See
http://people.redhat.com/wcohen/ncsu2004/Space%20Optimizations.pdf for
how this affects Mozilla on FC3t1.

Again, if you could find a package where it made a serious difference,
then I'm sure fedora-devel would be interested.

James.

-- 
E-mail address: james | "Land Rover say it is permanent, I say I have a
@westexe.demon.co.uk  | large selection of spanners and a big hammer..."
                      |     -- Derry Hamilton




More information about the fedora-list mailing list