From Fedora Project Wiki
 
(31 intermediate revisions by 2 users not shown)
Line 8: Line 8:


== Summary ==
== Summary ==
With Fedora 11, we moved the base architecture to i586. With Fedora 12, we are changing the base architecture to a specific i686 instruction set level.
With Fedora 11, we moved the base architecture to i586. With Fedora 12, we are changing the base architecture to i686, and optimizing for current 32-bit processors.


== Owner ==
== Owner ==
Line 17: Line 17:
== Current status ==
== Current status ==
* Targeted release: [[Releases/{{FedoraVersion||next}} | {{FedoraVersion|long|next}} ]]  
* Targeted release: [[Releases/{{FedoraVersion||next}} | {{FedoraVersion|long|next}} ]]  
* Last updated: 2009-06-15
* Last updated: 2009-08-20
* Percentage of completion: 0% (work will not proceed until a decision is made; the work itself is not complex)
* Percentage of completion: 100%


== Detailed Description ==
== Detailed Description ==
Fedora 11 has i586 as the base 32-bit x86 architecture.
Fedora 11 has i586 as the base 32-bit x86 architecture.


For Fedora 12, we will switch to i686 + SSE2 as the base architecture.
For Fedora 12, we will switch to i686 as the base architecture (including CMOV), and optimize for Atom processors.


This means we will lose support for the following CPU families:
This means we will lose support for the following CPU families:
* Intel i586 (all)
* Intel i586 (all)
* Intel Pentium Pro
* National Semiconductor Geode processors
* Intel Pentium II
* VIA C3 (Ezra and Samuel Cores)
* Intel Pentium III
* AMD Geode GX
* 32-bit AMD Athlon
 
* AMD Geode
AMD Geode LX (as used in the OLPC XO laptop) and later Geode NX processors should still work.
* VIA C3
Those interested are, of course, welcome to set up a secondary arch for older processors.
* Transmeta Crusoe


== Benefit to Fedora ==
== Benefit to Fedora ==
* Faster binaries on mainstream architectures (Pentium M, Via C7, all 64-bit arches, Atom)
* Faster binaries on mainstream architectures (Pentium M, Via C7, all 64-bit arches, Atom)
* Ability to use GCC's autovectorization to improve performance
* Realistically, we don't support i586 as a practical matter. Enforce that more logically.
* By using SSE2, we provide more consistent and faster floating-point math results
* Fewer kernel builds
* Clarifies our support targets more clearly,


== Scope ==
== Scope ==
* The default 32-bit x86 target in koji would be changed from i386 to i686
* The default 32-bit x86 target in koji would be changed from i586 to i686 - <b>DONE</b>
* The kernel would build a kernel and kernel-PAE package for i686
* The kernel would build a kernel and kernel-PAE package for i686 - <b>DONE</b>
* The default compiler flags for gcc in redhat-rpm-config would be changed as follows:
* The glibc package would be modified such that i686 builds would produce 'normal' package sets - <b>DONE</b>
** i386: -march=i686 -mtune=generic -mfpmath=sse -msse2
* The openssl package would be modified such that i686 builds would produce 'normal' package sets - <b>DONE</b>
* A mass rebuild would need to be done for the RPM architecture changes and the compiler flag changes  
* The default compiler flags for gcc in redhat-rpm-config would be changed as follows: - <b>DONE</b>
** i386: -march=i686 -mtune=atom
* mock would be modified so it defaults to i686 builds for F-12 and later - <i>patch posted</i>
* A mass rebuild would need to be done for the RPM architecture changes and the compiler flag changes - <b>DONE</b>


== How To Test ==
== How To Test ==
Line 73: Line 74:
* See [[Talk:Features/F12X86Support]]
* See [[Talk:Features/F12X86Support]]


[[Category:FeatureReadyForWrangler]]
[[Category:FeatureAcceptedF12]]
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

Latest revision as of 23:19, 23 September 2009


Fedora 12 x86 Support

Summary

With Fedora 11, we moved the base architecture to i586. With Fedora 12, we are changing the base architecture to i686, and optimizing for current 32-bit processors.

Owner

  • email: notting@redhat.com

Current status

  • Targeted release: Fedora 42
  • Last updated: 2009-08-20
  • Percentage of completion: 100%

Detailed Description

Fedora 11 has i586 as the base 32-bit x86 architecture.

For Fedora 12, we will switch to i686 as the base architecture (including CMOV), and optimize for Atom processors.

This means we will lose support for the following CPU families:

  • Intel i586 (all)
  • National Semiconductor Geode processors
  • VIA C3 (Ezra and Samuel Cores)
  • AMD Geode GX

AMD Geode LX (as used in the OLPC XO laptop) and later Geode NX processors should still work. Those interested are, of course, welcome to set up a secondary arch for older processors.

Benefit to Fedora

  • Faster binaries on mainstream architectures (Pentium M, Via C7, all 64-bit arches, Atom)
  • Realistically, we don't support i586 as a practical matter. Enforce that more logically.
  • Fewer kernel builds

Scope

  • The default 32-bit x86 target in koji would be changed from i586 to i686 - DONE
  • The kernel would build a kernel and kernel-PAE package for i686 - DONE
  • The glibc package would be modified such that i686 builds would produce 'normal' package sets - DONE
  • The openssl package would be modified such that i686 builds would produce 'normal' package sets - DONE
  • The default compiler flags for gcc in redhat-rpm-config would be changed as follows: - DONE
    • i386: -march=i686 -mtune=atom
  • mock would be modified so it defaults to i686 builds for F-12 and later - patch posted
  • A mass rebuild would need to be done for the RPM architecture changes and the compiler flag changes - DONE

How To Test

Ensure that all packages are built for i686.

Additional testing could benchmark apps to see any difference in code size and app speed.

User Experience

The 32-bit x86 distro should be faster; basic benchmarks show at least a 1% improvement in generic code, even without autovectorization.

Dependencies

  • gcc and redhat-rpm-config would need changed for the default compiler flags
  • koji configuration would need a tweak for the default architecture
  • the kernel would need to change its package output

Contingency Plan

If necessary, we can revert to providing i586 binaries. However, once we start a mass rebuild, this would require another mass rebuild to undo.

Documentation

There should not be any required.

Release Notes

A restating of the 'detailed description' above should be sufficient.

Comments and Discussion