diff --git a/.gitignore b/.gitignore index 8f3a668..118a20f 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-1.8.4.tar.bz2 /openmpi-v1.8.4-99-gd83fb30.tar.gz /openmpi-v1.8.4-134-g9ad2aa8.tar.bz2 +/openmpi-1.8.5rc1.tar.bz2 diff --git a/openmpi-vader.patch b/openmpi-vader.patch deleted file mode 100644 index ea5510e..0000000 --- a/openmpi-vader.patch +++ /dev/null @@ -1,103 +0,0 @@ -diff -up openmpi-v1.8.4-134-g9ad2aa8/ompi/mca/btl/vader/btl_vader_endpoint.h.vader openmpi-v1.8.4-134-g9ad2aa8/ompi/mca/btl/vader/btl_vader_endpoint.h ---- openmpi-v1.8.4-134-g9ad2aa8/ompi/mca/btl/vader/btl_vader_endpoint.h.vader 2015-03-24 19:21:54.000000000 -0600 -+++ openmpi-v1.8.4-134-g9ad2aa8/ompi/mca/btl/vader/btl_vader_endpoint.h 2015-03-30 16:35:41.411110838 -0600 -@@ -11,7 +11,7 @@ - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2006-2007 Voltaire. All rights reserved. -- * Copyright (c) 2012-2014 Los Alamos National Security, LLC. All rights -+ * Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights - * reserved. - * $COPYRIGHT$ - * -@@ -48,14 +48,16 @@ typedef struct mca_btl_base_endpoint_t { - /* per peer buffers */ - struct { - unsigned char *buffer; /**< starting address of peer's fast box out */ -- unsigned int start, seq; - uint32_t *startp; -+ unsigned int start; -+ uint16_t seq; - } fbox_in; - - struct { - unsigned char *buffer; /**< starting address of peer's fast box in */ -- unsigned int start, end, seq; - uint32_t *startp; /**< pointer to location storing start offset */ -+ unsigned int start, end; -+ uint16_t seq; - } fbox_out; - - int32_t peer_smp_rank; /**< my peer's SMP process rank. Used for accessing -diff -up openmpi-v1.8.4-134-g9ad2aa8/ompi/mca/btl/vader/btl_vader_fbox.h.vader openmpi-v1.8.4-134-g9ad2aa8/ompi/mca/btl/vader/btl_vader_fbox.h ---- openmpi-v1.8.4-134-g9ad2aa8/ompi/mca/btl/vader/btl_vader_fbox.h.vader 2015-03-24 19:21:54.000000000 -0600 -+++ openmpi-v1.8.4-134-g9ad2aa8/ompi/mca/btl/vader/btl_vader_fbox.h 2015-03-30 16:35:41.412110833 -0600 -@@ -1,6 +1,6 @@ - /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ - /* -- * Copyright (c) 2011-2014 Los Alamos National Security, LLC. All rights -+ * Copyright (c) 2011-2015 Los Alamos National Security, LLC. All rights - * reserved. - * $COPYRIGHT$ - * -@@ -18,9 +18,16 @@ - - typedef union mca_btl_vader_fbox_hdr_t { - struct { -+ /* NTH: on 32-bit platforms loading/unloading the header may be completed -+ * in multiple instructions. To ensure that seq is never loaded before tag -+ * and the tag is never read before seq put them in the same 32-bits of the -+ * header. */ -+ /** message tag */ - uint16_t tag; -- uint16_t size; -- uint32_t seq; -+ /** sequence number */ -+ uint16_t seq; -+ /** message size */ -+ uint32_t size; - } data; - uint64_t ival; - } mca_btl_vader_fbox_hdr_t; -@@ -40,6 +47,13 @@ typedef union mca_btl_vader_fbox_hdr_t { - - void mca_btl_vader_poll_handle_frag (mca_btl_vader_hdr_t *hdr, mca_btl_base_endpoint_t *ep); - -+static inline void mca_btl_vader_fbox_set_header (mca_btl_vader_fbox_hdr_t *hdr, uint16_t tag, -+ uint16_t seq, uint32_t size) -+{ -+ mca_btl_vader_fbox_hdr_t tmp = {.data = {.tag = tag, .seq = seq, .size = size}}; -+ hdr->ival = tmp.ival; -+} -+ - /* attempt to reserve a contiguous segment from the remote ep */ - static inline unsigned char *mca_btl_vader_reserve_fbox (mca_btl_base_endpoint_t *ep, size_t size) - { -@@ -88,12 +102,10 @@ static inline unsigned char *mca_btl_vad - /* if this is the end of the buffer and the fragment doesn't fit then mark the remaining buffer space to - * be skipped and check if the fragment can be written at the beginning of the buffer. */ - if (OPAL_UNLIKELY(buffer_free > 0 && buffer_free < size && start <= end)) { -- mca_btl_vader_fbox_hdr_t tmp = {.data = {.size = buffer_free - sizeof (mca_btl_vader_fbox_hdr_t), -- .seq = ep->fbox_out.seq++, .tag = 0xff}}; -- - BTL_VERBOSE(("message will not fit in remaining buffer space. skipping to beginning")); - -- MCA_BTL_VADER_FBOX_HDR(dst)->ival = tmp.ival; -+ mca_btl_vader_fbox_set_header (MCA_BTL_VADER_FBOX_HDR(dst), 0xff, ep->fbox_out.seq++, -+ buffer_free - sizeof (mca_btl_vader_fbox_hdr_t)); - - end = MCA_BTL_VADER_FBOX_ALIGNMENT; - /* toggle the high bit */ -@@ -114,11 +126,7 @@ static inline unsigned char *mca_btl_vad - (unsigned int) size, end, start, end, hbs, buffer_free)); - - /* write out part of the header now. the tag will be written when the data is available */ -- { -- mca_btl_vader_fbox_hdr_t tmp = {.data = {.size = data_size, .tag = 0, .seq = ep->fbox_out.seq++}}; -- -- MCA_BTL_VADER_FBOX_HDR(dst)->ival = tmp.ival; -- } -+ mca_btl_vader_fbox_set_header (MCA_BTL_VADER_FBOX_HDR(dst), 0, ep->fbox_out.seq++, data_size); - - end += size; - diff --git a/openmpi.spec b/openmpi.spec index d057136..78cb1e8 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -21,16 +21,15 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) Name: openmpi%{?_cc_name_suffix} -Version: 1.8.4 -Release: 7.20150324gitg9ad2aa8%{?dist} +Version: 1.8.5 +Release: 0.1.rc1%{?dist} Summary: Open Message Passing Interface Group: Development/Libraries License: BSD, MIT and Romio URL: http://www.open-mpi.org/ # We can't use %{name} here because of _cc_name_suffix -#Source0: http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-%{version}.tar.bz2 -Source0: http://www.open-mpi.org/nightly/v1.8/openmpi-v1.8.4-134-g9ad2aa8.tar.bz2 +Source0: http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-%{version}rc1.tar.bz2 Source1: openmpi.module.in Source2: macros.openmpi # Upstream patch to fix atomics on 32bit @@ -40,9 +39,6 @@ Patch1: openmpi-ltdl.patch # Fix typo in liboshmem name # https://github.com/open-mpi/ompi/pull/221 Patch2: openmpi-oshmem.patch -# Upstream patch to fix race/hang on 32-bit -# https://github.com/open-mpi/ompi/pull/503 -Patch3: openmpi-vader.patch BuildRequires: gcc-gfortran #sparc64 don't have valgrind @@ -119,11 +115,10 @@ Contains development wrapper for compiling Java with openmpi. %global namearch openmpi-%{_arch}%{?_cc_name_suffix} %prep -%setup -q -n openmpi-v%{version}-134-g9ad2aa8 +%setup -q -n openmpi-%{version}rc1 %patch0 -p1 -b .atomic %patch1 -p1 -b .ltdl %patch2 -p1 -b .oshmem -%patch3 -p1 -b .vader # Make sure we don't use the local libltdl library rm -r opal/libltdl @@ -248,6 +243,9 @@ make check %changelog +* Sun Apr 5 2015 Orion Poplawski 1.8.5-0.1.rc1 +- Update to 1.8.5rc1 + * Mon Mar 30 2015 Orion Poplawski 1.8.4-7.20150324gitg9ad2aa8 - Add upstream patch to fix race/hang on 32bit machines diff --git a/sources b/sources index 489b5f5..3c444e0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fa1ebef6c4659c8eb48f7188de3797a8 openmpi-v1.8.4-134-g9ad2aa8.tar.bz2 +49dfc95644b0740a23a1fcdea2ddd413 openmpi-1.8.5rc1.tar.bz2