oob/tcp: fix a race condition

Mimick the btl/tcp protocol to solve the race condition that happens
when two peers try to connect to each other at the same time

cmr=v1.8.4:reviewer=rhc

This commit was SVN r32799.
(cherry picked from commit 9661e4537fc6d932c63e4680b23cfd86a3f64035)
Bring over master:

open-mpi/ompi@8ded59ce
OSHMEM: spml ikrit: hardware rdma endpoint

Create additional endpoint that is capable of true
one sided RDMA transfers.

MXM atomics component now uses this endpoint
(cherry picked from commit 1bcc88cfb1a0868e733802d343ddf16ffd2b93a0)
OSHMEM: spml ikrit: improve mxm transport sanity check

Do not allow combination of transports that is not compliant with
shmem spec. Especially do not allow mix of hw and software atomic
ops

(cherry picked from commit 74ab30b73855fdb4559ccdcdd4cae6545ac75236)
OSHMEM: spml ikrit: hw rdma channel is disabled by default
(cherry picked from commit 643e64497d531830111ed7a1ddf5bebceea9d4a3)
Don't open PSM context when run on single node

When running many ranks on a single node using PSM, it's possible to
exhaust the network hardware contexts (there are 16).  This patch checks
if only a single node is being used. If so, the 'ipath' component of PSM
is disabled and no hardware contexts are opened.
(cherry picked from commit 75f66605e568b87b4ca988ed1bfa939cd1574773)
VERSION: Remove "JMS" shared lib version notes from last release
opal_check_ident.m4: make the test match what we do in the code base

Per open-mpi/ompi#257, the configure test used to check:

```c
 #pragma ident "foo"
```

But out in the code base, we actually do this:

```c
 #define IDENT_MSG "foo"
// ...
 #pragma ident IDENT_MSG
```

This commit updates the configure test to ```#define``` a string and
then use that with the various ident strategies.
Merge pull request #68 from rhc54/cmr/alps-fix

Update ALPS plm module
Merge pull request #69 from afriedle-intel/topic/afriedle-psm-singlenode-v1.8

Don't open PSM context when run on single node
Merge pull request #70 from jsquyres/pr/fix-ident-configury

opal_check_ident.m4: make the test match what we do in the code base
Merge pull request #11 from ggouaillardet/topic/oob_tcp_race_condition

oob/tcp: fix a race condition
Trivial change to valgrind suppression file, taken from master:

open-mpi/ompi@8c3fb41
fix ompi_request_wait vs ompi_request_wait_all and
MPI_STATUS_IGNORE vs MPI_STATUSES_IGNORE

This is a back-port of commit open-mpi/ompi@64c18686b7b20503519042fe0edbe0ca5f2e904a
Require -D_REENTRANT flag for both CFLAGS and CPPFLAGS if building under Solaris

Port of open-mpi/ompi@64c1868
coll/basic: fix segmentation fault in neighborhood collectives if the degree
of the topology is higher than the communicator size

It is possible to have a topology degree higher than the size of the communicator.
For example, a periodic cartesian communicator on MPI_COMM_SELF. This will leave
the neighborhood collectives with a request buffer that is too small. This commit
adds a call that will dynamically increase the size of the request buffer if it
is too small.

A better fix would be to create the topology *before* calling the coll_select
routine on a communicator. This will take some discussion and the solution will
not likely be ready anytime soon.

Thanks to Lisandro Dalcin for reporting this.

Original thread: http://www.open-mpi.org/community/lists/devel/2014/08/15713.php

cmr=v1.8.3:reviewer=jsquyres

This commit was SVN r32796.
(cherry picked from commit open-mpi/ompi@9c788ff9400960823637dc0eebb3a8640414fa05)
Adding a new OPAL hash table routine. Please read the algorithm description in opal/class/opal_hash_table.c for more precise details on the design and implementation. This algorithm was contributed by David Linden of H.P. in partnership with Mellanox Technologies. This contribution achieves two objectives:

1. It's actually hashing now, whereas the old OPAL hash table was not. Thus, it is a bug fix for and, as such, should be included in the 1.8 series.

2. It is dynamic and can grow and shrink the number of buckets in accordance with job size, whereas the old OPAL hash table had a fixed number of buckets which resulted in poor retrieval performance at large scale.

This scheme has been deployed in the field on very large H.P./Mellanox systems and has been demonstrated to significantly decrease job startup time (~ 20% improvement) when launching applications directly with srun in SLURM environments. However, neither SLURM nor direct launch are prerequisites to take advanatge of this change as any entity that utilizes OPAL hash table objects can benefit (at least partically) from this contribution.

On Nov. 3 2014 I amended this commit to include a missing prototype.

On Nov. 4 2014 I amended this commit in my local topic branch to include @rhc54 cleanup of the ompi debugger symbols in the OPAL hash table code.
OSHMEM: spml ikrit: remove empty lines in helpfile
(cherry picked from commit 1f2ab43ba90734b99ffc9acf85a49ec9cf17b621)
OSHMEM: fixes 'improve mxm transport sanity check'

The code that actually checks for valid transport combos
somehow did not make it to the original commit:

74ab30b73855fdb4559ccdcdd4cae6545ac75236
(cherry picked from commit d06fb853500c3d3de4ba6521df34dcfa60bfa33c)
OSHMEM: spml ikrit: code style fixes

added missing {} around one line blocks in if()