Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libfabric for openSUSE:Factory checked in at 2024-12-03 20:45:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libfabric (Old) and /work/SRC/openSUSE:Factory/.libfabric.new.28523 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libfabric" Tue Dec 3 20:45:37 2024 rev:50 rq:1227698 version:1.22.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libfabric/libfabric.changes 2024-11-30 13:27:48.293603091 +0100 +++ /work/SRC/openSUSE:Factory/.libfabric.new.28523/libfabric.changes 2024-12-03 20:46:06.112246242 +0100 @@ -1,0 +2,12 @@ +Mon Dec 2 08:47:15 UTC 2024 - Nicolas Morey <[email protected]> + +- Completely remove building for AVX/AVX2 in PSM3 (bsc#1213538, bsc#1233356, bsc#1234014) + Runtime detection before initializing the provider is not enough as + PSM3 uses constructors which may include AVX insctruction. + Only requires SSE4.2 as it does make a large performance impact + in calculatin packet hashes. + - Remove psm3-fix-SIGILL-on-system-not-supporting-AVX.patch + - Add psm3-prevent-code-from-building-using-AVX-AVX2.patch +- Add _constraints to mark SSE4.2 as required + +------------------------------------------------------------------- Old: ---- psm3-fix-SIGILL-on-system-not-supporting-AVX.patch New: ---- _constraints psm3-prevent-code-from-building-using-AVX-AVX2.patch BETA DEBUG BEGIN: Old: in calculatin packet hashes. - Remove psm3-fix-SIGILL-on-system-not-supporting-AVX.patch - Add psm3-prevent-code-from-building-using-AVX-AVX2.patch BETA DEBUG END: BETA DEBUG BEGIN: New: - Remove psm3-fix-SIGILL-on-system-not-supporting-AVX.patch - Add psm3-prevent-code-from-building-using-AVX-AVX2.patch - Add _constraints to mark SSE4.2 as required BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fabtests.spec ++++++ --- /var/tmp/diff_new_pack.kO6yZ3/_old 2024-12-03 20:46:08.148332351 +0100 +++ /var/tmp/diff_new_pack.kO6yZ3/_new 2024-12-03 20:46:08.160332859 +0100 @@ -28,6 +28,7 @@ Source: libfabric-%{version}%{git_ver}.tar.bz2 Source1: fabtests-rpmlintrc Patch0: libfabric-libtool.patch +Patch1: psm3-prevent-code-from-building-using-AVX-AVX2.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: libfabric-devel = %{version} ++++++ libfabric.spec ++++++ --- /var/tmp/diff_new_pack.kO6yZ3/_old 2024-12-03 20:46:08.400343009 +0100 +++ /var/tmp/diff_new_pack.kO6yZ3/_new 2024-12-03 20:46:08.416343686 +0100 @@ -35,7 +35,7 @@ Source: %{name}-%{version}%{git_ver}.tar.bz2 Source1: baselibs.conf Patch0: libfabric-libtool.patch -Patch1: psm3-fix-SIGILL-on-system-not-supporting-AVX.patch +Patch1: psm3-prevent-code-from-building-using-AVX-AVX2.patch URL: http://www.github.com/ofiwg/libfabric BuildRequires: autoconf BuildRequires: automake ++++++ _constraints ++++++ <?xml version="1.0"?> <constraints> <overwrite> <conditions> <arch>i586</arch> <arch>x86_64</arch> </conditions> <hardware> <cpu> <flag>sse4_2</flag> </cpu> </hardware> </overwrite> </constraints> (No newline at EOF) ++++++ psm3-prevent-code-from-building-using-AVX-AVX2.patch ++++++ commit fdb3ddfe4e372022adcc1093f7f28d49021662ce Author: Nicolas Morey <[email protected]> Date: Mon Dec 2 09:44:02 2024 +0100 psm3: prevent code from building using AVX/AVX2 Even with a snippet detecting if the CPU is compatible, PSM3 uses multiple constructors which may trigger a SIGILL when the library gets loaded Signed-off-by: Nicolas Morey <[email protected]> diff --git prov/psm3/configure.m4 prov/psm3/configure.m4 index 5c8c083f7dc0..88e6871c1a9e 100644 --- prov/psm3/configure.m4 +++ prov/psm3/configure.m4 @@ -125,49 +125,7 @@ AC_DEFUN([FI_PSM3_CONFIGURE],[ ],[ psm3_happy=0 AC_MSG_RESULT([no]) - AC_MSG_NOTICE([psm3 requires minimum of avx instruction set to build]) - ]) - CFLAGS=$save_CFLAGS - - AC_MSG_CHECKING([for -mavx support]) - save_CFLAGS=$CFLAGS - CFLAGS="$PSM3_STRIP_OPTFLAGS -mavx -O0" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include <immintrin.h>]], - [[unsigned long long _a[4] = {1ULL,2ULL,3ULL,4ULL}; - __m256i vA = _mm256_loadu_si256((__m256i *)_a); - __m256i vB; - _mm256_store_si256(&vB, vA); - return 0;]]) - ],[ - AC_MSG_RESULT([yes]) - PSM3_ARCH_CFLAGS="-mavx" - PSM3_MARCH="avx" - ],[ - psm3_happy=0 - AC_MSG_RESULT([no]) - AC_MSG_NOTICE([psm3 requires minimum of avx instruction set to build]) - ]) - CFLAGS=$save_CFLAGS - - AC_MSG_CHECKING([for -mavx2 support]) - save_CFLAGS=$CFLAGS - CFLAGS="$PSM3_STRIP_OPTFLAGS -mavx2 -O0" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include <immintrin.h>]], - [[unsigned long long _a[4] = {1ULL,2ULL,3ULL,4ULL}; - __m256i vA = _mm256_loadu_si256((__m256i *)_a); - __m256i vB = _mm256_add_epi64(vA, vA); - (void)vB; - return 0;]]) - ],[ - AC_MSG_RESULT([yes]) - PSM3_ARCH_CFLAGS="-mavx2" - PSM3_MARCH="avx2" - ],[ - AC_MSG_RESULT([no]) + AC_MSG_NOTICE([psm3 requires minimum of SSE4.2 instruction set to build]) ]) CFLAGS=$save_CFLAGS diff --git prov/psm3/src/psmx3_init.c prov/psm3/src/psmx3_init.c index 29359d3ea348..a02c1ff8698b 100644 --- prov/psm3/src/psmx3_init.c +++ prov/psm3/src/psmx3_init.c @@ -685,10 +685,8 @@ static int psmx3_getinfo(uint32_t api_version, const char *node, PSMX3_INFO(&psmx3_prov, FI_LOG_CORE, "CPU does not support '%s'.\n", PSM3_MARCH); OFI_INFO_STR(&psmx3_prov, - (__builtin_cpu_supports("avx2") ? "AVX2" : - (__builtin_cpu_supports("avx") ? "AVX" : - (__builtin_cpu_supports("sse4.2") ? "SSE4.2" : "unknown"))), - PSM3_MARCH, "CPU Supports", "PSM3 Built With"); + __builtin_cpu_supports("sse4.2") ? "SSE4.2" : "unknown", + PSM3_MARCH, "CPU Supports", "PSM3 Built With"); goto err_out; }
