#12 x86_64-v2 hwcaps
Closed: Completed 3 months ago by lkocman. Opened 2 years ago by lkocman.

We need additional information from Dirk Mueller

We need to provide x86_64-v2 enabled libraries of important base system gcc/glibc/many

Nice description about how this is done in RHEL could be find here https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level

Metadata Update from @lkocman:
- Issue assigned to lkocman

2 years ago

Metadata Update from @Pharaoh_Atem:
- Custom field SUSE Jira adjusted to https://jira.suse.com/browse/OPENSUSE-36
- Issue tagged with: SLE, SLE-Accept-Pending

2 years ago

To use hwcaps we need update for glibc from v. 2.31 to 2.33 or newer. I created this bug for feature request: https://bugzilla.opensuse.org/show_bug.cgi?id=1194122

ILL Leap 15.4 will use glibc 2.31 without upgrade. So, feature can go for Leap 15.5.

Please use x86-64-v3 level for software (close to Haswell: AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE).
With x86-64-v3 we can get about 20% speed-up (and about 0% - 5% with x86-64-v2 (close to Nehalem: CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3) according to this research: https://openbenchmarking.org/result/2103142-HA-UARCHLEVE55

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

Another option is in adding SSE3 or {CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3}: https://code.opensuse.org/leap/features/issue/79

My not yet 6 years old (14nm Q1'17) Kaby Lake Pentium IDs as only v2 as of TW 20220919:
-# /lib64/ld-linux-x86-64.so.2 --help | tail -n17
This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2

Shared library search path:
(libraries located via /etc/ld.so.cache)
/lib64 (system search path)
/usr/lib64 (system search path)

Subdirectories of glibc-hwcaps directories, in priority order:
x86-64-v2 (supported, searched)

Legacy HWCAP subdirectories under library search path directories:
x86_64 (AT_PLATFORM; supported, searched)
tls (supported, searched)
a v x 512_1
x86_64 (supported, searched)
-# lscpu # trimmed
Architecture: x86_64
On-line CPU(s) list: 0-3
Model name: Intel(R) Pentium(R) CPU G4600 @ 3.60GHz CPU family: 6
Model: 158
Stepping: 9
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl est tm2 ssse3 sdbg cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust smep erms invpcid mpx rdseed smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d

Leap 16.0 is built on top of SUSE ALP, which has x86_64-v2 macros + v3 over hwcaps. Leap 16.0 is already using it as well https://build.opensuse.org/project/show/openSUSE:Leap:16.0

Metadata Update from @lkocman:
- Issue close_status updated to: Completed
- Issue status updated to: Closed (was: Open)

3 months ago

Metadata Update from @lkocman:
- Issue set to the milestone: 16.0

3 months ago

Login to comment on this ticket.