summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/openmpi/btl_vader.patch24
-rw-r--r--var/spack/repos/builtin/packages/openmpi/package.py9
2 files changed, 33 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/openmpi/btl_vader.patch b/var/spack/repos/builtin/packages/openmpi/btl_vader.patch
new file mode 100644
index 0000000000..005537d732
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openmpi/btl_vader.patch
@@ -0,0 +1,24 @@
+diff --git a/opal/mca/btl/vader/btl_vader_fbox.h b/opal/mca/btl/vader/btl_vader_fbox.h
+index 17239ce8ef..ee5c913551 100644
+--- a/opal/mca/btl/vader/btl_vader_fbox.h
++++ b/opal/mca/btl/vader/btl_vader_fbox.h
+@@ -138,9 +138,6 @@ static inline bool mca_btl_vader_fbox_sendi (mca_btl_base_endpoint_t *ep, unsign
+ memcpy (data + header_size, payload, payload_size);
+ }
+
+- /* write out part of the header now. the tag will be written when the data is available */
+- mca_btl_vader_fbox_set_header (MCA_BTL_VADER_FBOX_HDR(dst), tag, ep->fbox_out.seq++, data_size);
+-
+ end += size;
+
+ if (OPAL_UNLIKELY(fbox_size == end)) {
+@@ -152,6 +149,9 @@ static inline bool mca_btl_vader_fbox_sendi (mca_btl_base_endpoint_t *ep, unsign
+ MCA_BTL_VADER_FBOX_HDR(ep->fbox_out.buffer + end)->ival = 0;
+ }
+
++ /* write out part of the header now. the tag will be written when the data is available */
++ mca_btl_vader_fbox_set_header (MCA_BTL_VADER_FBOX_HDR(dst), tag, ep->fbox_out.seq++, data_size);
++
+ /* align the buffer */
+ ep->fbox_out.end = ((uint32_t) hbs << 31) | end;
+ opal_atomic_wmb ();
diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py
index 0367c887a6..40ac79a2e8 100644
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -64,6 +64,7 @@ class Openmpi(AutotoolsPackage):
list_url = "http://www.open-mpi.org/software/ompi/"
# Current
+ version('3.1.3', sha256='8be04307c00f51401d3fb9d837321781ea7c79f2a5a4a2e5d4eaedc874087ab6')
version('3.1.2', '210df69fafd964158527e7f37e333239') # libmpi.so.40.10.2
version('3.1.1', '493f1db2f75afaab1c8ecba78d2f5aab') # libmpi.so.40.10.1
version('3.1.0', '0895e268ca27735d7654bf64cee6c256') # libmpi.so.40.10.0
@@ -166,6 +167,14 @@ class Openmpi(AutotoolsPackage):
patch('configure.patch', when="@1.10.1")
patch('fix_multidef_pmi_class.patch', when="@2.0.0:2.0.1")
+ # Vader Bug: https://github.com/open-mpi/ompi/issues/5375
+ # Haven't release fix for 2.1.x
+ patch('btl_vader.patch', when='@2.1.3:2.1.5')
+
+ # Fixed in 3.0.3 and 3.1.3
+ patch('btl_vader.patch', when='@3.0.1:3.0.2')
+ patch('btl_vader.patch', when='@3.1.0:3.1.2')
+
fabrics = ('psm', 'psm2', 'verbs', 'mxm', 'ucx', 'libfabric')
variant(