#79 Advancing CPU base requirements for x86_64 by adding SSE3 or {CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3}
Opened 5 months ago by Svyatko. Modified 3 months ago

Consider using one of this option as addition to x86_64 architecture for compiling packages:
1. SSE3
2. this part of x86_64-v2: CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3.

Pros: acceleration and compatibility.
Chrome browser already requires SSE3: https://support.google.com/chrome/a/answer/7100626?hl=en
Mesa 3D developers are discussing requiring SSE3: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9868
No need to update glibc. To use hwcaps we need update for glibc in Leap 15.4 from v. 2.31 to 2.33 or newer.

Requirement of a full x86-64-v2 feature level {(close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3} is incompatible with AMD K10 architecture. And AMD K10-based Phenom II X6 CPU is rather fast even today.

Incompatible systems may utilise Tumbleweed i586 (32-bit): https://forums.opensuse.org/showthread.php/570815-Who-needs-i586-TW-for-CPUs-without-SSE2-support

My feature request about SSE3: https://bugzilla.opensuse.org/show_bug.cgi?id=1182220

Info about feature levels: https://www.phoronix.com/scan.php?page=news_item&px=GCC-11-x86-64-Feature-Levels

Connected issue: "#12 x86_64-v2 hwcaps" https://code.opensuse.org/leap/features/issue/12

Pentium 4 and Athlon 64 CPUs support lahf_lm (LAHF-SAHF) with newer steppings.
So, here is 3rd variant, which is compatible with such old hardware: {SSE3, LAHF-SAHF}.

Support for LAHF and SAHF instructions appeared shortly after NX/XD was introduced. AMD introduced support for the instructions with their Athlon 64, Opteron and Turion 64 revision D processors in March 2005 and Intel introduced support for the instructions with the Pentium 4 G1 stepping in December 2005. So again most most servers built after 2006 should have CPUs that support LAHF/SAHF. Similar to NX/XD which can be enabled or disabled in the server BIOS, support for LAHF/SAHF is typically tied into the Virtualization Technology (VT) option in a server BIOS which is often referred to Intel VT or AMD-V which is their respective support for virtualization CPU technology.

Lubos to talk to our Intel TAM. Last time when we just requested x86_64-v2 nothing really happened. And it was suggested that ALP will be x86_64v3 only. Let's make sure that this is properly driven from the SUSE partner side.

Metadata Update from @lkocman:
- Issue assigned to lkocman

5 months ago

I just received confirmation that ALP Proof of Concept in Sept/Oct 2022 will have x86_64-v3 enabled.

Metadata Update from @lkocman:
- Custom field SUSE Jira - SUSE Linux Enterprise adjusted to https://jira.suse.com/browse/PM-1791

4 months ago

Metadata Update from @lkocman:
- Issue set to the milestone: ALP
- Issue tagged with: SLE-Accepted

4 months ago

The x86_64-v2 feature was rejected for SLES 15 by Product Management.
(For reference https://jira.suse.com/browse/SLE-19243)

Metadata Update from @lkocman:
- Custom field SUSE Jira - SUSE Linux Enterprise adjusted to https://jira.suse.com/browse/PED-252 (was: https://jira.suse.com/browse/PM-1791)

4 months ago

Related discussion is happening on factory@

The openSUSE ALP is still discutable, as we can decide re-build binaries or re-use ones from SUSE (that would be the Closing the Leap Gap way).

My preference would be to go for -v2 in "openSUSE ALP" if we decide to rebuild. We've basically discussed the same on the previous Community WG meeting

Users can check what instruction set does their cpu support by running:
/lib64/ld-linux-x86-64.so.2 --help

Metadata Update from @Pharaoh_Atem:
- Issue tagged with: SLE

3 months ago

Login to comment on this ticket.