the dispatch function opal_atomic_cmpset_acq_xx was used to call
opal_atomic_cmpset_acq_32 would cause the compiler / linker to fix up a
jump address to be itself, leading to an infinite loop.
We're still looking into exactly what caused this, but during the
investigation into the hang, we determined that the compiler (both pathcc
and gcc) weren't always inlining both the call to opal_atomic_cmpset_acq_xx
and opal_atomic_cmpset_acq_32, meaning there was a function call in
opal_atomic_lock. The atomic lock will always be 32 bit, so there's no
need for the dispatch function, so might as well remove the dispatch
function that may or may not be inlined.
A bug fix that leads to potentially better performance. Gotta love the
few times that happens...
This commit was SVN r13651.
to flush all writes pending (ie, the data being protected) out of the memory
manager before we write the spinlock unlock. Only need a wmb instead of
full mb, which is at least slightly less intrusive. Also, after much
thought, no need for a memory barrier in init.
This commit was SVN r13649.
- Set ompi-specific autoconf cache-variables
- Implement one function to check for availability of an
attribute with the possibility for a cross-check.
- Do cross-checks for
__attribute__(format)
__attribute__(nonnull)
__attribute__(sentinel)
__attribute__(warn_unused_result)
- Grep the compilers warnings for keywords regarding ignored
attributes.
- Include also the no_instrument_function
This commit was SVN r13556.
Add new function opal_get_num_processors() that will return the number
of processors on the local host. Does the Right thing in POSIX
environments (to include a special case for OS X), and will shortly do
the Right Thing for Windows (this commit includes a change to
configure, so I wanted to get that in before the US workday -- the
Windows code can some shortly because it won't involve configury
changes).
This commit was SVN r13506.
The following Trac tickets were found above:
Ticket 853 --> https://svn.open-mpi.org/trac/ompi/ticket/853
The OMPI_HAVE_ATTRIBUTE flag is always set when the oldest attribute
is supported. But in all cases when the OMPI_HAVE_ATTRIBUTE is set and
one of the attributes is not supported the empty declaration is missing.
This commit was SVN r13390.
most common attributes. Useful attributes may be:
- optimization (pure, const, malloc--restrictness)
- data layout (packed)
- interface definition, API (deprecated, visibility, weak alias)
- compiler hint for code analysis and debugging (nonnull, format)
This commit was SVN r13369.
intended. In truth, any unique value will do, but he's right that
having a regular, recognizeable, repeatable value is probably much
better for debugging purposes.
This commit was SVN r13341.
and George on these refinements):
* Rename the static OBJ initializer macro to be
OPAL_OBJ_STATIC_INIT(class)
* Ensure that all static OBJ initializations get a refcount of 1
(doesn't ''really'' matter, since they're static, it should never
get to the point where the OBJ is DESTRUCTed, but more correct
nonetheless)
* Add a "magic number" to the OBJ when compiling with debug support.
The magic number does some rudimentary support to ensure that
you're operating on a valid OBJ (and fails an assertion if you're
not). Check to ensure that the memory contains the magic number
when performing actions of OBJ's. Also remove the magic number
when DESTRUCTing OBJs, so that if, for example, an OBJ is
DESTRUCTed more than once, we'll fail the magic number assert.
This commit was SVN r13338.
The following SVN revision numbers were found above:
r13227 --> open-mpi/ompi@96030de97b
r13228 --> open-mpi/ompi@c2e9075d29
comment explaining the patch in the patch.
Refs trac:574
This commit was SVN r13276.
The following Trac tickets were found above:
Ticket 574 --> https://svn.open-mpi.org/trac/ompi/ticket/574