SHA256
1
0
forked from pool/mvapich2

Accepting request 882120 from science:HPC

OBS-URL: https://build.opensuse.org/request/show/882120
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mvapich2?expand=0&rev=26
This commit is contained in:
Richard Brown 2021-04-01 12:17:25 +00:00 committed by Git OBS Bridge
commit ffe2f92f53
7 changed files with 69 additions and 152 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7226a45c7c98333c8e5d2888119cce186199b430c13b7b1dca1769909e68ea7a
size 18473572

3
mvapich2-2.3.5.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f9f467fec5fc981a89a7beee0374347b10c683023c76880f92a1a0ad4b961a8c
size 20779884

View File

@ -1,26 +0,0 @@
commit 29cf7e8f54363de3ad614b3480517f02b84ade5e
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
Date: Thu May 2 09:56:40 2019 +0200
mvapich2 fix double free
Fix double free that causes a SEGV when mvapich2 fails to open
a rdma device
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
diff --git src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
index 89f666c8988b..48454297223c 100644
--- src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
+++ src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
@@ -790,10 +790,6 @@ int rdma_open_hca(struct mv2_MPIDI_CH3I_RDMA_Process_t *proc)
}
if (!ib_dev) {
- /* Clean up before exit */
- if (dev_list) {
- ibv_free_device_list(dev_list);
- }
MPIR_ERR_SETFATALANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**fail",
"**fail %s", "No IB device found");
}

View File

@ -1,3 +1,36 @@
-------------------------------------------------------------------
Wed Mar 24 10:06:26 UTC 2021 - Egbert Eich <eich@suse.com>
- Update mvapich2 to 2.3.5.
* Enhanced performance for MPI_Allreduce and MPI_Barrier
* Support collective offload using Mellanox's SHARP for Barrier
- Enhanced tuning framework for Barrier using SHARP
* Remove dependency on underlying libibverbs, libibmad, libibumad, and
librdmacm libraries using dlopen
* Add support for Broadcom NetXtreme RoCE HCA
- Enhanced inter-node point-to-point support
* Support architecture detection for Fujitsu A64fx processor
* Enhanced point-to-point and collective tuning for Fujitsu A64fx processor
* Enhanced point-to-point and collective tuning for AMD ROME processor
* Add support for process placement aware HCA selection
- Add "MV2_PROCESS_PLACEMENT_AWARE_HCA_MAPPING" environment variable to
enable process placement aware HCA mapping
* Add support to auto-detect RoCE HCAs and auto-detect GID index
* Add support to use RoCE/Ethernet and InfiniBand HCAs at the same time
* Add architecture-specific flags to improve performance of certain CUDA
operations
- Thanks to Chris Chambreau @LLNL for the report
* Read MTU and maximum outstanding RDMA operations from the device
* Improved performance and scalability for UD-based communication
* Update maximum HCAs supported by default from 4 to 10
* Enhanced collective tuning for Frontera@TACC, Expanse@SDSC,
Ookami@StonyBrook, and bb5@EPFL
* Enhanced support for SHARP v2.1.0
* Generalize code for GPU support
- Obsolete: wrapper-revert-ldflag-order-change.patch.
- Replace: mvapich2-fix-double-free.patch by
rdma_find_network_type-return-MV2_NETWORK_CLASS_UNKNOWN-when-dev_list-is-freed.patch
-------------------------------------------------------------------
Thu Feb 18 04:46:04 UTC 2021 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>

View File

@ -1,5 +1,5 @@
#
# spec file for package %{package_name}
# spec file for package mvapich2
#
# Copyright (c) 2021 SUSE LLC
#
@ -19,8 +19,8 @@
%global flavor @BUILD_FLAVOR@%{nil}
%define pname mvapich2
%define vers 2.3.4
%define _vers 2_3_4
%define vers 2.3.5
%define _vers 2_3_5
%if "%{flavor}" == ""
ExclusiveArch: do_not_build
@ -253,9 +253,8 @@ Patch2: mvapich2-arm-support.patch
Patch3: 0001-Drop-GCC-check.patch
Patch4: reproducible.patch
Patch5: fix-missing-return-code.patch
Patch6: wrapper-revert-ldflag-order-change.patch
Patch7: mvapich2-fix-double-free.patch
Patch8: mvapich2-remove-deprecated-sys_siglist.patch
Patch6: mvapich2-remove-deprecated-sys_siglist.patch
Patch7: rdma_find_network_type-return-MV2_NETWORK_CLASS_UNKNOWN-when-dev_list-is-freed.patch
## Armv7 specific patches
# PATCH-FIX-UPSTREAM 0001-Drop-real128.patch (https://github.com/pmodels/mpich/issues/4005)
@ -396,8 +395,7 @@ is based on MPICH2 and MVICH. This package contains the static libraries
%patch4 -p1
%patch5
%patch6
%patch7
%patch8
%patch7 -p1
# Only apply these patches on Armv7
%ifarch armv7hl

View File

@ -0,0 +1,27 @@
From: Egbert Eich <eich@suse.com>
Date: Wed Mar 24 17:59:11 2021 +0100
Subject: rdma_find_network_type(): return MV2_NETWORK_CLASS_UNKNOWN when dev_list is freed
Patch-mainline: Not yet
Git-commit: 53c0c41fbd3728afb32cce7f23f596877e270911
References:
This makes rdma_open_hca() bail early, so it doesn't reach the
code which tries to free dev_list and avoids a double free.
Signed-off-by: Egbert Eich <eich@suse.com>
---
src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c b/src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
index 9eb565e..4795035 100644
--- a/src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
+++ b/src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c
@@ -507,7 +507,7 @@ int rdma_find_network_type(struct ibv_device **dev_list, int num_devices,
if (dev_list[i]) {
ibv_ops.free_device_list(dev_list);
}
- return 0;
+ return network_type;
}
if (ERROR == rdma_find_active_port(nic_context[i], NULL, &hca_rate)) {
/* No active port, skip HCA */

View File

@ -1,115 +0,0 @@
commit 5818871a4afed52944ece7688f5ad316407be482
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
Date: Tue Jun 9 22:46:54 2020 +0200
wrapper revert ldflag order change
For some reason v2.3.4 changed flag order in mpi** wrappers which
causes legacy stuff to not link unless a -lmpi is added
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
diff --git src/env/mpicc.bash.in src/env/mpicc.bash.in
index aa65f27a4e5e..21517c0abfef 100644
--- src/env/mpicc.bash.in
+++ src/env/mpicc.bash.in
@@ -268,7 +268,7 @@ if [ "$linking" = yes ] ; then
$Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} "${allargs[@]}" -I$includedir
rc=$?
else
- $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
+ $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
rc=$?
fi
else
diff --git src/env/mpicc.sh.in src/env/mpicc.sh.in
index dceab90cc3f2..f6e433d2f0f5 100644
--- src/env/mpicc.sh.in
+++ src/env/mpicc.sh.in
@@ -277,7 +277,7 @@ if [ "$linking" = yes ] ; then
$Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} $allargs -I$includedir
rc=$?
else
- $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} -l@MPILIBNAME@ ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
+ $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
rc=$?
fi
else
diff --git src/env/mpicxx.bash.in src/env/mpicxx.bash.in
index 5d4e1639e02f..35a581bd3515 100644
--- src/env/mpicxx.bash.in
+++ src/env/mpicxx.bash.in
@@ -266,7 +266,7 @@ if [ "$linking" = yes ] ; then
$Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} "${allargs[@]}" -I$includedir
rc=$?
else
- $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} $cxxlibs -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
+ $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $cxxlibs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
rc=$?
fi
else
diff --git src/env/mpicxx.sh.in src/env/mpicxx.sh.in
index 0186905368e1..e2eed50f0660 100644
--- src/env/mpicxx.sh.in
+++ src/env/mpicxx.sh.in
@@ -275,7 +275,7 @@ if [ "$linking" = yes ] ; then
$Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} $allargs -I$includedir
rc=$?
else
- $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} $cxxlibs -l@MPILIBNAME@ ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
+ $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $cxxlibs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs}
rc=$?
fi
else
diff --git src/env/mpif77.bash.in src/env/mpif77.bash.in
index 05b3e540de78..4d357a502d94 100644
--- src/env/mpif77.bash.in
+++ src/env/mpif77.bash.in
@@ -318,7 +318,7 @@ if [ "$linking" = yes ] ; then
$Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} "${allargs[@]}" -I$includedir
rc=$?
else
- $Show $F77 $PROFILE_INCPATHS ${final_fflags} -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@
+ $Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@
rc=$?
fi
else
diff --git src/env/mpif77.sh.in src/env/mpif77.sh.in
index 070b0be24722..0ec77e627b53 100644
--- src/env/mpif77.sh.in
+++ src/env/mpif77.sh.in
@@ -340,7 +340,7 @@ if [ "$linking" = yes ] ; then
$Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} $allargs -I$includedir
rc=$?
else
- $Show $F77 $PROFILE_INCPATHS ${final_fflags} -l@MPILIBNAME@ ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@
+ $Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@
rc=$?
fi
else
diff --git src/env/mpifort.bash.in src/env/mpifort.bash.in
index 73da0e866e48..c36dddf78553 100644
--- src/env/mpifort.bash.in
+++ src/env/mpifort.bash.in
@@ -359,7 +359,7 @@ if [ "$linking" = yes ] ; then
$Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} "${allargs[@]}"
rc=$?
else
- $Show $FC $PROFILE_INCPATHS ${final_fcflags} -l@MPIFCLIBNAME@ -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@
+ $Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} "${allargs[@]}" $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir -l@MPIFCLIBNAME@ $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@
rc=$?
fi
else
diff --git src/env/mpifort.sh.in src/env/mpifort.sh.in
index 5ee8a148f8ff..c5620c4b61a2 100644
--- src/env/mpifort.sh.in
+++ src/env/mpifort.sh.in
@@ -375,7 +375,7 @@ if [ "$linking" = yes ] ; then
$Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} $allargs
rc=$?
else
- $Show $FC $PROFILE_INCPATHS ${final_fcflags} -l@MPIFCLIBNAME@ -l@MPILIBNAME@ ${final_ldflags} $allargs $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@
+ $Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} $allargs $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir -l@MPIFCLIBNAME@ $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@
rc=$?
fi
else