Accepting request 1227352 from science:HPC

OBS-URL: https://build.opensuse.org/request/show/1227352
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libfabric?expand=0&rev=49
This commit is contained in:
Ana Guerrero 2024-11-30 12:27:31 +00:00 committed by Git OBS Bridge
commit 11d2f8ecbe
5 changed files with 85 additions and 7 deletions

View File

@ -38,7 +38,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
Fabtests provides a set of examples that uses libfabric, a fabric software library.
%prep
%autosetup -p1 -n libfabric-%{version}%{git_ver}
%autosetup -p0 -n libfabric-%{version}%{git_ver}
%build
cd fabtests

View File

@ -1,8 +1,18 @@
diff --git a/configure.ac b/configure.ac
index d137250..4e67035 100644
--- a/configure.ac
+++ b/configure.ac
@@ -89,7 +89,7 @@ AC_HEADER_STDC
commit 81de541fdd4abc77167f955f8ddd85f195888e5c
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
Date: Fri Sep 30 13:49:16 2022 +0200
libfabric libtool
Disable static libs
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
diff --git configure.ac configure.ac
index 7dacf69c9a69..90fcdc610754 100644
--- configure.ac
+++ configure.ac
@@ -193,7 +193,7 @@ m4_version_prereq([2.70],
dnl Check for compiler features
AC_C_TYPEOF

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Thu Nov 28 15:47:54 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Add psm3-fix-SIGILL-on-system-not-supporting-AVX.patch to fix
SIGILL hapening during init on older CPU (bsc#1213538, bsc#1233356).
- Refresh libfabric-libtool.patch tu support patch -p0
-------------------------------------------------------------------
Mon Aug 5 11:20:55 UTC 2024 - Filip Kastl <filip.kastl@suse.com>

View File

@ -35,6 +35,7 @@ Group: Development/Libraries/C and C++
Source: %{name}-%{version}%{git_ver}.tar.bz2
Source1: baselibs.conf
Patch0: libfabric-libtool.patch
Patch1: psm3-fix-SIGILL-on-system-not-supporting-AVX.patch
URL: http://www.github.com/ofiwg/libfabric
BuildRequires: autoconf
BuildRequires: automake
@ -79,7 +80,7 @@ libfabric provides a user-space API to access high-performance fabric
services, such as RDMA. This package contains the development files.
%prep
%autosetup -p1 -n %{name}-%{version}%{git_ver}
%autosetup -p0 -n %{name}-%{version}%{git_ver}
%build
export CFLAGS=-Wno-incompatible-pointer-types

View File

@ -0,0 +1,60 @@
commit fd049a0a053502a85b839a715fc6f9fdbfc4439a
Author: Nicolas Morey <nmorey@suse.com>
Date: Thu Nov 28 16:44:12 2024 +0100
psm3: fix SIGILL on system not supporting AVX
Even though code was added to not use the PSM3 provider on system
without AVX/AVX2 support, logs triggered by the detection code can
be using AVX instructions causing psmx3_getinfo to SIGILL
Move the detection even earlier in the provider init and use OFI
standard print functions to avoid using any code that might have
been compiled with AVX instructions.
Fixes: 3ef633408edf ("prov/psm3: update provider to sync with IEFS 11.5.1.0.3")
Signed-off-by: Nicolas Morey <nmorey@suse.com>
diff --git prov/psm3/src/psmx3_init.c prov/psm3/src/psmx3_init.c
index 29359d3ea348..cc259a1b6301 100644
--- prov/psm3/src/psmx3_init.c
+++ prov/psm3/src/psmx3_init.c
@@ -680,18 +680,6 @@ static int psmx3_getinfo(uint32_t api_version, const char *node,
PSMX3_INFO(&psmx3_prov, FI_LOG_CORE,"\n");
- __builtin_cpu_init();
- if (!__builtin_cpu_supports(PSM3_MARCH)) {
- 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");
- goto err_out;
- }
-
if (psmx3_init_prov_info(hints, &prov_info))
goto err_out;
@@ -895,6 +883,19 @@ struct fi_provider psmx3_prov = {
PROVIDER_INI
{
+ __builtin_cpu_init();
+ if (!__builtin_cpu_supports(PSM3_MARCH)) {
+ FI_INFO(&core_prov, FI_LOG_CORE,
+ "PSM3: CPU does not support '%s'.\n", PSM3_MARCH);
+ OFI_INFO_STR(&core_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");
+ return NULL;
+ }
+
+
psmx3_prov.version = get_psm3_provider_version();
PSMX3_INFO(&psmx3_prov, FI_LOG_CORE, "build options: VERSION=%u.%u=%u.%u.%u.%u, "