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. Fabtests provides a set of examples that uses libfabric, a fabric software library.
%prep %prep
%autosetup -p1 -n libfabric-%{version}%{git_ver} %autosetup -p0 -n libfabric-%{version}%{git_ver}
%build %build
cd fabtests cd fabtests

View File

@ -1,8 +1,18 @@
diff --git a/configure.ac b/configure.ac commit 81de541fdd4abc77167f955f8ddd85f195888e5c
index d137250..4e67035 100644 Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
--- a/configure.ac Date: Fri Sep 30 13:49:16 2022 +0200
+++ b/configure.ac
@@ -89,7 +89,7 @@ AC_HEADER_STDC 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 dnl Check for compiler features
AC_C_TYPEOF 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> 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 Source: %{name}-%{version}%{git_ver}.tar.bz2
Source1: baselibs.conf Source1: baselibs.conf
Patch0: libfabric-libtool.patch Patch0: libfabric-libtool.patch
Patch1: psm3-fix-SIGILL-on-system-not-supporting-AVX.patch
URL: http://www.github.com/ofiwg/libfabric URL: http://www.github.com/ofiwg/libfabric
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: automake 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. services, such as RDMA. This package contains the development files.
%prep %prep
%autosetup -p1 -n %{name}-%{version}%{git_ver} %autosetup -p0 -n %{name}-%{version}%{git_ver}
%build %build
export CFLAGS=-Wno-incompatible-pointer-types 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, "