1
1
Граф коммитов

3538 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
ec57aa1805 usnic: also update btl_usnic_compat.c for versioning 2015-05-26 18:56:29 -07:00
Jeff Squyres
9c19dd4e5b usnic: make v1.10 and v2.0 fit in version checking scheme
v1.10 is now in the same compatibility level as v1.7/v1.8 (there
is/will be no v1.9 series).  v2.0 now takes over for what used to be
called v1.9.
2015-05-26 18:42:33 -07:00
Jeff Squyres
95a2b14543 usnic: avoid some compiler warnings
Followup to open-mpi/ompi@65b66ab: if we're not debugging, then #if
out an entire block so that the compiler doesn't warn about variables
that are assigned and not used.
2015-05-26 14:27:26 -07:00
Nathan Hjelm
a3eb3e2c9c Merge pull request #604 from hjelmn/opal_coverity
opal/crs: clean up parsing code to fix coverity issues
2015-05-26 15:26:01 -06:00
Jeff Squyres
68c33355c6 Merge pull request #595 from goodell/pr/usnic_getname
usnic: use fi_getname in newer libfabric
2015-05-26 17:20:13 -04:00
Nathan Hjelm
9e56ef0da9 opal/crs: clean up parsing code to fix coverity issues
CID 70622 Dereference before null check (REVERSE_INULL)
CID 70459 Logically dead code (DEADCODE)

Cleanup some cludgy code which (among other things) reimplemented
strcat, strdup, and strchr. In the process this resolved two
outstanding coverity issues.

CID 70631 Dereference before null check (REVERSE_INULL)

best_module can not be NULL in this code path. Remove NULL check and
unnecessary goto statements.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-05-26 14:45:35 -06:00
Gilles Gouaillardet
bc105afb10 opal/ddt: add copy functions for complex types
long double internal representation is arch specific,
and no conversion is done (yet), so MPI_LONG_DOUBLE should not
be used (yet) in heterogeneous mode
2015-05-26 16:59:36 +09:00
Ralph Castain
ce915b5757 Fix a typo that incorrectly set the alignment threshold in the openib BTL.
Thanks to Xavier Besseron for pointing it out
2015-05-25 07:12:57 -07:00
Gilles Gouaillardet
e47cb9636d Revert "opal_pack_homogeneous_contig_with_gaps_function: correctly handle contiguous ddt made of more than one basic type"
This reverts commit e4846746f4.
2015-05-22 17:25:33 +09:00
Gilles Gouaillardet
60e4d6c795 btl: add conversion macros for mca_btl_base_segment_t for heterogeneous support 2015-05-22 15:52:32 +09:00
Gilles Gouaillardet
e4846746f4 opal_pack_homogeneous_contig_with_gaps_function: correctly handle contiguous ddt made of more than one basic type
Fix an issue that can only be seen on an heterogeneous cluster when sending MPI_LONG_INT type and friends
2015-05-22 15:44:08 +09:00
Nathan Hjelm
2f93fe63b9 Merge pull request #597 from hjelmn/mca_base_coverity
mca/base: fix coverity issues and enable project name in MCA groups
2015-05-21 15:01:35 -06:00
Nathan Hjelm
cea735b3c3 mca/base: fix coverity issues and enable project name in MCA groups
CID 1047278 Unchecked return value

Updated check for mca_base_var_generate_full_name4 to match other
checks. Logically equivalent to the old check. Not a bug.

CID 1196685 Dereference null return

Added check for NULL when looking up the original variable for a
synonym.

CID 1269705 Logically dead code

Removed code that set the project to NULL. Code was intended to be
removed with an earlier commit that added the project name into the
component structure. Added code to actually support searching for a
group with a wildcard ('*').

CID 1292739 Dereference null return
CID 1269819 Dereference null return

Removed unnecessary string duplication and strchr.

CID 1287030 Logically dead code

Refactored fixup_files code and confirmed that the code in question is
not reachable. Removed the dead code.

CID 1292740 Use of untrusted string

Use strdup to silence coverity warning.

CID 1294413 Free of address-of expression

Reset mitem to NULL after the OPAL_LIST_FOREACH loop to ensure we
never try to free the list sentinel.

CID 1294414 Unchecked return value

Use (void) to indicate we do not care about the return code in this
instance.

CID 1294415 Resource leak

On error free all the base pointer.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-05-21 13:33:31 -06:00
Rolf vandeVaart
b3e4ae71d5 Fix finalize code when cuda support is not fully initialized 2015-05-21 13:42:22 -04:00
Nathan Hjelm
c540a9e59a Merge pull request #582 from hjelmn/mca_var_file_fix
mca/base: fix source file name bug for synonyms
2015-05-21 11:34:12 -06:00
Dave Goodell
65b66ab4ae usnic: use fi_getname in newer libfabric
When using an external libfabric (or really any libfabric newer than
libfabric commit 607e863), we must use fi_getname to determine the local
port of our endpoint.  Without this fix, OMPI will hang endlessly
while retransmitting packets to port 0 on the remote host.
2015-05-21 08:51:03 -07:00
Nathan Hjelm
108f55a963 btl/vader: clean up progress of waiting endpoints
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-05-20 16:14:58 -06:00
Nathan Hjelm
69e70776aa btl/vader: fix double unlock
References #594

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-05-20 14:35:22 -06:00
Howard Pritchard
62a278d29c Merge pull request #590 from hppritcha/topic/coverity_133
pmix/base: fix coverity error
2015-05-18 06:52:37 -06:00
Gilles Gouaillardet
69f900ab9d libfabric: check the psm_epconn_t type is available before building the PSM provider
embedded libfabric configury does it its own way, so "backport" ofiwg/libfabric#1031
2015-05-18 14:04:41 +09:00
Howard Pritchard
0980423c5f pmix/base: fix coverity error
Remove some obviously dead code and thus fix a coverity
error - CID #133

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2015-05-16 13:24:03 -06:00
Howard Pritchard
d9f080b0c7 btl/ugni: silence common symbol squawk
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2015-05-16 10:23:06 -05:00
Howard Pritchard
a1d65cfd8b pmix/cray: fix locality setting
Code for setting proc node locality
was absent after the removal of Cray
PMI KVS usage.  This commit puts that
functionality back in place.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2015-05-15 12:17:15 -07:00
George Bosilca
675dccf9d9 Print the port in host byte order. 2015-05-15 00:14:28 -04:00
Nathan Hjelm
427aebbaca Fix cuda support MCA variables
This commit fixes some issues with the cuda support parameters. There
were a couple of duplicate registrations and an incorrect synonym (one
variable was made a synonym of mpi_preconnect_mpi).

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-05-12 09:52:51 -06:00
Nathan Hjelm
9caffa5dd8 mca/base: fix source file name bug for synonyms
This commit fixes synonyms so the source file is correctly printed out
by ompi_info. This commit also adds support for printing out the line
number where the variable is set.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-05-12 09:52:31 -06:00
Jeff Squyres
e95010b095 common verbs: only install fake usnic driver when relevant
Only install the fake usnic libibverbs driver when there are actually
usnic kernel devices present.  This prevents some run-time weirdness
on the Cray verbs emulation environment, where apparently
ibv_register_driver() either is not implemented or does not work
properly.
2015-05-11 12:57:06 -07:00
Todd Kordenbrock
9df163f116 portals4: use a single Memory Descriptor to cover all of memory
In days past, some implementations of Portals4 could not cover all
of memory with a single Memory Descriptor so multiple large
overlapping Memory Descriptors were created.  Because none of the
current implementations have this limitation (and no future
implementations should either), this commit removes the overlapping
Memory Descriptors code.
2015-05-11 11:49:41 -05:00
Howard Pritchard
94576993b0 Merge pull request #574 from hppritcha/topic/ugni_common_symbol
common/ugni: fix common symbol problem
2015-05-08 05:55:15 -06:00
Howard Pritchard
341b773724 common/ugni: fix common symbol problem
Stop nagging of common symbol detection script for ugni
stuff.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2015-05-08 04:27:01 -07:00
Jeff Squyres
7a577c0ed2 libfabric: delete tarball
Oops -- the tarball itself should not have been committed to the repo.
2015-05-08 03:24:09 -07:00
Gilles Gouaillardet
c809aace47 initialize common symbols from opal
A few uninitialized common symbols are remaining:

common symbols generated by flex :
 * opal/util/keyval/keyval_lex.l: opal_util_keyval_yyleng
 * opal/util/keyval/keyval_lex.o: opal_util_keyval_yytext
 * opal/util/show_help_lex.l: opal_show_help_yyleng
 * opal/util/show_help_lex.l: opal_show_help_yytext

common symbol generated by "external" hwloc library:
 * opal/mca/hwloc/hwloc191/hwloc/src/components.o: component_map
2015-05-08 09:48:51 +09:00
Jeff Squyres
a1770950c6 libfabric: update to 1.0.0
This is likely short-lived: now that libfabric has a 1.0.0 release
available, the embedded libfabric may disappear from the OMPI tree
sometime soon.  However, we still need it for the time being...
2015-05-07 11:14:13 -07:00
Ralph Castain
9cb2fcfa5c Cleanup the qos code when --enable-timings is given 2015-05-06 20:24:27 -07:00
Ralph Castain
1f8de276de Consolidate all the QOS changes into one clean commit 2015-05-06 19:48:42 -07:00
Ralph Castain
554c7c3551 Per request from Nathan, let the user provide a NULL return list for dstore.fetch to indicate they just want to know if the key is present (but don't care about the actual value). Saves dealing with the list and copying data when not needed. 2015-05-06 08:20:19 -07:00
Jeff Squyres
676673189b Merge pull request #565 from jsquyres/pr/fake-usnic-ibv-driver
Squelch libibverbs complaints about lack of usnic userspace plugin
2015-05-05 10:27:33 -04:00
Jeff Squyres
f79e137247 Merge pull request #555 from jsquyres/pr/openib-delay-cpc-init
btl openib: only initialize CPCs if there are devices to use
2015-05-05 10:26:55 -04:00
Howard Pritchard
b5fc5404c6 libfabric/embedded: add missing psmx_eq.c
The ompi libfabric/Makefile.am to build the libmca_component_libfabric
lib was missing a recently added psmx_eq.c in the list of source
files for the psm provider.

Fixes #569

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2015-05-04 14:54:59 -06:00
George Bosilca
459e15479f Remove double ; 2015-04-30 14:43:19 -04:00
Jeff Squyres
76222f462e btl openib: if ibv_open_device() returns NULL, it's not supported
When a libibverbs driver returns NULL for its context, it's the Open
MPI libibverbs fake driver.  Hence, this device is simply not
supported -- ignore it.
2015-04-29 18:07:12 -07:00
Jeff Squyres
a2b55e12f2 common verbs: insert fake usnic_verbs libibverbs driver
libibverbs will complain to stderr if it sees device entries in
/sys/class/infiniband for which it has no userspace plugins.

The Cisco usNIC device no longer exports a verbs interface, thereby
causing libibverbs to emit this annoying stderr warning.

To avoid this, use the public ibv API to register a "fake" libibverbs
driver at run-time (right after we call ibv_fork_init(), but --
critically -- *before* we call ibv_get_device_list()).  The purpose of
this driver is solely to convince libibverbs that there *is* a driver
for /sys/class/infininband/usnic_verbs devices.  ...although this
driver will never return a valid ibv context (and therefore will never
be used).
2015-04-29 18:07:12 -07:00
Jeff Squyres
202f64868c btl openib: only initialize CPCs if there are devices to use
Defer initializing the CPCs until we know that we have devices/ports
to use.  This both prevents some useless work at startup when there
are no devices/ports to use, and also prevents librdmacm complaining
that there are no verbs-capable RDMA devices available (e.g., if a
Cisco usNIC device is present, but does not present a verbs RDMA
interface).
2015-04-29 17:54:11 -07:00
Jeff Squyres
df6f7597a4 btl openib: only initialize CPCs if there are devices to use
Defer initializing the CPCs until we know that we have devices/ports
to use.  This both prevents some useless work at startup when there
are no devices/ports to use, and also prevents librdmacm complaining
that there are no verbs-capable RDMA devices available (e.g., if a
Cisco usNIC device is present, but does not present a verbs RDMA
interface).
2015-04-29 17:52:41 -07:00
Jeff Squyres
4cc5c5261d libfabric: disable all semblance of verbs
Including the usnic fake ibv verbs driver.

This fix was mistakenly not included in open-mpi/ompi@d0937c6.
2015-04-29 17:46:12 -07:00
Jeff Squyres
d0937c6f42 libfabric: update to upstream c01338a53abf969799ac0722de152ca0bd96fa3c
Fixes a usnic bug with respect to porting to v1.8
2015-04-29 17:38:19 -07:00
Jeff Squyres
faf3324b0e libfabric: update to upstream d4ab6e56e23124e565ada939054a159737e52102
Fix a critical usnic bug, and other misc updates.
2015-04-29 16:02:08 -07:00
Jeff Squyres
a50ad505e7 There were corner cases that allowed max_reg to be uninitialized. Set
a default value so that those corner cases would still have an
initialized value in max_reg.
2015-04-28 14:34:17 -07:00
Rolf vandeVaart
b260dc4228 Cleanup interface that handles events. No functional changes 2015-04-28 15:15:24 -04:00
Rolf vandeVaart
2b99b44a16 Fix error only seen when running with CUDA 5.5 or less. Introduced with BTL 3.0 2015-04-27 17:09:53 -04:00
Jeff Squyres
df5043bc3f usnic: adjust for libfabric API return value change 2015-04-27 10:18:49 -07:00
Jeff Squyres
84f5c2bfb6 libfabric: update to upstream libfabric 1.0rc6 2015-04-27 10:18:49 -07:00
Ralph Castain
5003be5c5c If the user specifies a --map-by <foo> option, then default to bind-to <foo> unless they specify a bind-to option. If they map-by slot/node, then use the default policy based on num_procs. 2015-04-23 13:30:21 -07:00
Jeff Squyres
46aa20a919 timer_linux_component.c: fix the operator precedence
Paul Hargrove noted in
http://www.open-mpi.org/community/lists/devel/2015/04/17312.php that
we need () to ensure that we get the correct mathemtical result.
2015-04-22 13:40:09 -07:00
Nathan Hjelm
b06b8584f7 btl/openib/udcm: OBJ_CONSTUCT UDCM module member before attempting to initialize
This commit fixes an assert when trying to cleanup a module we failed
to initialize. There is no protection around the OBJ_DESTRUCT calls so
they will always be called so similarly we should always call
OBJ_CONSTRUCT at init.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-22 13:25:12 -06:00
Ryan Grant
9ccb932880 Merge pull request #546 from tkordenbrock/topic/btl.logical.mode.init.patch
btl-portals4: delay interface initialization until add_procs()
2015-04-22 11:22:46 -06:00
Rolf vandeVaart
030dddde23 Remove unneeded copy and minor clean up 2015-04-22 13:17:16 -04:00
Ryan Grant
0e528be2ac Merge pull request #545 from tkordenbrock/topic/btl30.large.message.patch
btl-portals4: fix bugs in the Portals4 BTL after the port to BTL3 interface
2015-04-22 11:05:35 -06:00
Nathan Hjelm
7c95ecf859 mca/base: provide functions to determine if a framework is registered/open
This commit also fixes a problem with the lazy opening of topo
components. The topo framework incorrectly: 1) checked if the topo
framework was open by checking the length of the components list, and
2) called the framework open directly instead of using
mca_base_framework_open.

fixes #544

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-21 13:54:25 -06:00
Todd Kordenbrock
5a0581a761 btl-portals4: delay interface initialization until add_procs()
The Portals4 spec requires that PtlSetMap() be called before any
Portals4 call other than PtlNIInit(), PtlGetMap() and
PtlGetPhysId().  To satisfy this requirement, this commit delays
interface initialization until the end add_procs() at which time
PtlSetMap() has been called.
2015-04-21 11:29:07 -05:00
Todd Kordenbrock
b1cef6c3ea btl-portals4: remove unused code path
The Portals4 BTL is registered with the PML as an RDMA BTL, so
prepare_src() is only used in limited cases.  This commit removes
the code path from prepare_src() for unbuffered contiguous buffers
with no PML reserve.  This is now handled in register_mem().
2015-04-21 11:27:35 -05:00
Todd Kordenbrock
bca2522d8b btl-portals4: fix send failure for messages larger than eager_size
In the large message case, the sender issues a PtlMEAppend() in
order to generate events when the receiver issues a PtlGet().  This
commit moves the PtlMEAppend() from mca_btl_portals4_prepare_src()
to mca_btl_portals4_register_mem() which is the way it's done in
BTL 3.0.
2015-04-21 11:27:28 -05:00
Nathan Hjelm
5ea1f1c12b mca/base: set string values to NULL after they are freed
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-21 09:45:10 -06:00
Nathan Hjelm
8287e1d28f Merge pull request #528 from hjelmn/add_destructor
Add opal destructor/fini function
2015-04-20 11:30:15 -06:00
Jeff Squyres
58c9a45d91 Merge pull request #527 from jsquyres/topic/ompi-info-parsable-value-quoting
ompi_info: quote parsable values if they contain colons
2015-04-20 13:21:15 -04:00
Jeff Squyres
1e6a558993 opal_info_support.c: whitespace cleanup
No code changes
2015-04-20 08:56:42 -07:00
Jeff Squyres
14afe14b6a mca_base_var.c: whitespace cleanup
No code changes
2015-04-20 08:56:42 -07:00
Jeff Squyres
1f237b78d1 *_info tools: quote parsable values if they contain colons
Thanks to Lev Givon for the suggestion.
2015-04-20 08:56:42 -07:00
Nathan Hjelm
662460b06b Modify destructor function configury
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-20 09:51:06 -06:00
Nathan Hjelm
33181b2543 opal: use C99 subobject naming for component initialization
This commit helps future-proof opal components by initializing each
component member by name.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-18 10:29:58 -06:00
Mike Dubman
45396451cc Merge pull request #537 from nkogteva/timings_fixes
opal timing: added ability to choose the timer type
2015-04-17 18:27:46 +03:00
Nathan Hjelm
bfacb5dd73 common/ugni: update for MCA 2.1 2015-04-17 08:09:18 -06:00
Nadezhda Kogteva
116169c38a opal timing: added ability to choose the timer type 2015-04-17 11:15:55 +03:00
Nathan Hjelm
38589c46c0 opal: add a destructor/fini function to opal
This commit is related to an RFC from June 2014. Disscussion can be
found at:

http://www.open-mpi.org/community/lists/devel/2014/07/15140.php

The finalize function is set using either the linker option -fini or
__attribute__((destructor)) depending on compiler support. I have
confirmed that this hybrid approach works with all the major
compilers. The attribute is supported by gcc, clang, llvm, xlc, and
icc. The fini function will support pgi. If a compiler/linker
combination does not support either the destructor or fini function a
message will be printed on re-init indicating it is not supported (an
improvement over the current behavior-- SEGV).

I moved the following to the destructor function:

 - Class system finalize. This solves a bug when MPI_T_finalize is
   called before MPI_Init. The only downside to this change is we will
   leave the footprint of the opal class system after
   MPI_Finalize. This footprint should be relatively small.

This is an alternative to #517 but the two PRs are not
mutually-exclusive (with some modifications). This commit should also
be safe for 1.8.x as it does not change internal or external ABI (#517
changes internal ABI).

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-16 19:53:52 -06:00
Nathan Hjelm
51fec14ac7 mca/base: silence some clang/coverity warnings
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-16 12:07:34 -06:00
Nathan Hjelm
3436f2917d Merge pull request #449 from hjelmn/mca_base_update
mca/base update
2015-04-16 08:41:48 -06:00
Nathan Hjelm
ef01e130aa mca/base: protect mca_base_component_repository_release if dlopen support is disabled 2015-04-15 10:06:43 -06:00
Nathan Hjelm
e794658f2d Merge pull request #516 from hjelmn/repository_update
RFC: Repository update
2015-04-15 10:03:08 -06:00
Nathan Hjelm
81502fafa8 Merge pull request #379 from hjelmn/remove_enable_smp_locks
Per-RFC: remove the --disable-smp-locks configure option
2015-04-15 10:02:23 -06:00
Elena
96bdf595c2 fix for -am -tune options issue came from PR 520 2015-04-15 15:51:49 +03:00
Nathan Hjelm
c954f457d9 mca/base: update the way dynamic components are handled
This commit is a rework of the component repository. The changes
included in this commit are:

 - Remove the component dependency code based off .ompi_info
   files. This code is legacy code dating back 10 years that and is no
   longer used.

 - Move the plugin scanning code to the component repository. New
   calls have been added to add new scanning paths, query available
   components, and dlopen/load components.

 - Pass the framework down to mca_base_component_find/filter. Eventually
   the framework structure will be used to further validate components
   before they are used.

 - Add support to the MCA framework system to disable scanning for
   dlopened components on open (support already existed in
   register). This is really only relevant to installdirs as it has no
   register function and no DSO components.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-14 15:55:33 -06:00
Nathan Hjelm
f8158a5ec1 btl/vader: fix deadlock in mca_btl_vader_progress_endpoints
This commit fixes a typo in mca_btl_vader_progress_endpoints where
OPAL_THREAD_LOCK was used when OPAL_THREAD_UNLOCK was intended.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-14 09:34:45 -06:00
Jeff Squyres
fadc3ad01a hwloc/external/configure.m4: no need to unset
Instead, use a safe environment variable name (that is SCOPE_PUSHed and
SCOPE_POPed).
2015-04-14 07:04:01 -07:00
Nathan Hjelm
113c890ccf Merge pull request #520 from hjelmn/valgrind_cleanness
fix memory leaks and valgrind errors
2015-04-13 10:09:34 -06:00
Nathan Hjelm
a7b0c00ab6 fix memory leaks and valgrind errors
This commit fixes several vagrind errors. Included:

 - installdirs did not correctly reinitialize all pointers to NULL
   at close. This causes valgrind errors on a subsequent call to
   opal_init_tool.

 - several opal strings were leaked by opal_deregister_params which
   was setting them to NULL instead of letting them be freed by the
   MCA variable system.

 - move opal_net_init to AFTER the variable system is initialized and
   opal's MCA variables have been registered. opal_net_init uses a
   variable registered by opal_register_params!

 - do not leak ompi_mpi_main_thread when it is allocated by
   MPI_T_init_thread.

 - do not overwrite ompi_mpi_main_thread if it is already set (by
   MPI_T_init_thread).

 - mca_base_var: read_files was overwritting mca_base_var_file_list
   even if it was non-NULL.

 - mca_base_var: set all file global variables to initial states on
   finalize.

 - btl/vader: decrement enumerator reference count to ensure that it
   is freed.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-11 09:28:35 -06:00
Ralph Castain
033418f62a Correct a typo that reversed the default binding pattern. Ensure we default bind to hwthread if user specified --use-hwthread-cpus if nprocs <= 2, and bind to hwthread if told to do so. 2015-04-10 15:58:35 -07:00
Nathan Hjelm
75f210fdb9 opal/util/error: check for existing convertor for error range
This commit fixes a bug when opal_error_init is called with the same
values multiple times. If opal_error_init is called too many times it
will start failing with OPAL_ERR_OUT_OF_RESOURCE. To fix the problem
check if an existing convertor matching the requested one and return
that one instead.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-09 11:51:36 -06:00
Rolf vandeVaart
b7913836fc Initialize variables for safety 2015-04-09 12:58:55 -04:00
Rolf vandeVaart
d6d7184703 Enhance verbose message 2015-04-09 12:29:09 -04:00
Ralph Castain
acc2c7937c Thanks Nathan - decrement the counter to ensure singleton's startup correctly 2015-04-08 11:23:35 -07:00
Nathan Hjelm
9cd955badf opal: fix multiple bugs in MCA and opal
This commit fixes the following bugs:

 - opal_output_finalize did not properly set internal state. This
   caused problems when calling the sequence opal_output_init (),
   opal_output_finalize (), opal_output_init ().

 - opal_info support called mca_base_open () but never called the
   matching mca_base_close (). mca_base_open () and mca_base_close ()
   have been updated to use a open count instead of an open flag to
   allow mca_base_open to be called through multiple paths (as may be
   the case when MPI_T is in use).

 - orte_info support did not register opal variables. This can cause
   orte-info to not return opal variables.

 - opal_info, orte_info, and ompi_info support have been updated to
   use a register count.

 - When opening the dl framework the reference count was added to
   ensure the framework stuck around. The framework being closed
   prematurely was a bug in the MCA base that has since been
   corrected. The increment (and associated decrement) have been
   removed.

 - dl/dlopen did not set the value of
   mca_dl_dlopen_component.filename_suffixes_mca_storage on each call
   to register. Instead the value was set in the component
   structure. This caused the value to be lost when re-loading the
   component. Fixed by setting the default value in register.

 - Reset shmem framework state on close to avoid returning a stale
   component after reloading opal/shmem.

 - MCA base parameters were not properly deregistered when the MCA
   base was closed.

This commit may fix #374.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-04-07 19:13:20 -06:00
Ralph Castain
c32609b1c7 Bring over open-mpi/hwloc@f714f8d
linux: only use the device-tree on Power machines

It's available on ARM but the assumption that cpus' "reg" start at 0
is invalid.
We could make that work but the device-tree doesn't currently
bring anything better than sysfs on ARM, so don't bother for now.
2015-04-04 09:30:21 -07:00
Jeff Squyres
d825ec7cc7 usnic: fix the CQ-reading logic for -FI_EAGAIN 2015-04-02 15:56:50 -07:00
Jeff Squyres
5aabee2644 libfabric: a few fixes since 1.0rc3
Including a critical atomic initialization fix for the usnic provider.
2015-04-02 15:54:01 -07:00
Jeff Squyres
d6d8ab01e5 libfabric: the fi_log.h file moved 2015-04-01 14:43:07 -07:00
Jeff Squyres
26b3c48ccb usnic: update to API change in libfabric 2015-04-01 06:43:08 -07:00
Jeff Squyres
5e47eb81bf libfabric: update component configury for new libfabric test 2015-04-01 06:43:08 -07:00
Jeff Squyres
a89a5872c2 libfabric: update to official 1.0.0rc3 release
One change was made to the 1.0.0rc3 tarball: remove an errand
debugging printf that accidentally made its way into the tarball (but
isn't in git).
2015-04-01 06:43:08 -07:00
Mike Dubman
58d002098b Merge pull request #474 from elenash/master
Introduce -tune command line option to set env vars and mca params from ...
2015-04-01 08:23:34 +03:00
Nathan Hjelm
b6043ec459 Merge pull request #503 from hjelmn/vader_32bit_fix
btl/vader: fix fast box support for 32-bit architectures
2015-03-31 09:12:22 -06:00
Nathan Hjelm
17b80a987e btl/vader: fix fast box support for 32-bit architectures
On 32-bit architectures loads/stores of fast box headers may take
multiple instructions. This can lead to a data race between the
sender/receiver when reading/writing the sequence number. This can
lead to a situation where the receiver could process incomplete
data. To fix the issue this commit re-orders the fast box header to
put the sequence number and the tag in the same 32-bits to ensure they
are always loaded/stored together.

Fixes #473

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-03-30 16:28:16 -06:00
rhc54
bc016617a0 Merge pull request #501 from rhc54/topic/sec2
Support authentication across security domains
2015-03-30 09:59:43 -07:00
Ralph Castain
79b90a54b6 Remove stale and unused component 2015-03-30 09:56:06 -07:00
Ralph Castain
d07dc362d5 Ensure we can authenticate when crossing security domains by including all available credentials, and letting the receiver use the highest priority one they have in common. 2015-03-28 20:34:26 -07:00
Ralph Castain
b67b3619fc If we are using the default bindings, and one or more nodes are not setup to support binding, then don't error out - just don't bind.
Thanks to Annu Desari for pointing out the problem.
2015-03-28 08:20:24 -07:00
Ralph Castain
d2d02a1642 ckpt 2015-03-28 07:59:20 -07:00
Jeff Squyres
89e14f5ad6 usnic: fix comment typos 2015-03-27 17:21:53 -07:00
Jeff Squyres
2672d8d26b usnic: update comments explaining fi_av_insert() reaping
Asynchronous fi_av_insert()s are somewhat tricky; update the comments
explaining what is going on (and fix some old/stale comments).
2015-03-27 12:01:59 -07:00
Jeff Squyres
6da77ee940 usnic: only warn about each unreachable endpoint once
fi_av_insert() is invoked with a context containing each endpoint
USNIC_NUM_CHANNELS times.  If the address on that endpoint fails to
resolve / is unreachable / has some error, we'll therefore get
USNIC_NUM_CHANNELS error completions with that same endpoint.  We
therefore only want to warn about the unreachability of (and
OBJ_RELEASE) that endpoint the *first* time.

Fixes CSCut46822.
2015-03-27 12:01:59 -07:00
Jeff Squyres
506431d1b6 usnic: count fi_av_insert() completions properly
num_left represents the number of times we called fi_av_insert(), and
therefore it indicates the number of non-error completions that we
will receive.
2015-03-27 12:01:59 -07:00
Nathan Hjelm
6d1a41611f MCA/base: Detect overlapping variable names.
Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2015-03-27 10:59:05 -06:00
Nathan Hjelm
de1e7d58e1 Add support setting variables from project_name environment variables
Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2015-03-27 10:59:05 -06:00
Nathan Hjelm
b68d66bb9b MCA: Add the project/project version to the MCA base component
This commit adds support for project_framework_component_* parameter
matching. This is the first step in allowing the same framework name
in multiple projects. This change also bumps the MCA component version
to 2.1.0.

All master frameworks have been updated to use the new component
versioning macro. An mca.h has been added to each project to add a
project specific versioning macro of the form
PROJECT_MCA_VERSION_2_1_0.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2015-03-27 10:59:04 -06:00
Jeff Squyres
0c502d90cd hwloc README-ompi.txt: update for what we pulled from hwloc
Document what we pulled from the hwloc tree.
2015-03-27 06:49:42 -07:00
Brice Goglin
29ccbfd590 hwloc pci: fix bridge depth
It was setup in the PCI backend before filtering,
and partially updated after filtering in the core.
Only setup once correctly after filtering in the core.

(cherry picked from commit open-mpi/hwloc@9659653d24)

Conflicts:
	tests/hwloc/linux/40intel64-2g2n4c+pci.output
	tests/hwloc/xml/192em64t-12gr2n8c2t-distancegroups.xml
	tests/hwloc/xml/192em64t-24n8c2t-distancegroups.xml
	tests/hwloc/xml/192em64t-24n8c2t-nodistancegroups.xml
	tests/hwloc/xml/24em64t-2n6c2t-pci.xml
	tests/hwloc/xml/32em64t-2n8c2t-pci-normalio.xml
	tests/hwloc/xml/96em64t-4n4d3ca2co-pci.xml
	utils/hwloc/test-hwloc-compress-dir.input.tar.gz
	utils/hwloc/test-hwloc-compress-dir.output.tar.gz

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 06:49:39 -07:00
Brice Goglin
1905f35a1e hwloc: bitmap: fix a corner case in hwloc_bitmap_isincluded() with infinite sets
If super_set contains more allocated ulongs than sub_set,
we did not check the last ulongs.
We would return true instead of false when sub_set is
infinite while the last ulongs in super_set are not full.

This fixes tests/hwloc_bitmap_compare_inclusion on some platforms.

(cherry picked from commit open-mpi/hwloc@299e6e846f)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:44 -07:00
Brice Goglin
5c9157c547 hwloc: core: only update root->complete sets if insert succeeds
Otherwise we get spurious bits for crazy topologies such as 8em64t-2s2ca2c-buggynuma.output

Will make debug asserts easier.

(cherry picked from commit open-mpi/hwloc@546cd9330a)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:44 -07:00
Brice Goglin
dec01097f8 hwloc: groups: add complete sets when inserting distance/pci groups
Make sure we define complete cpuset/nodeset when we define groups' main cpuset/nodeset
during later insert of groups (for PCI hostbridges or distances).
Otherwise they may end up clearing child/parent complete sets which
suddenly become incoherent while they were fixed earlier.

Needed to fix allowed_nodeset meaning.

(cherry picked from commit open-mpi/hwloc@7c88d17add)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:33 -07:00
Brice Goglin
d6e415cd41 hwloc: AIX: Fix PU os_index
When looking for PUs inside R_MAXSDL rads, some AIX 6.1 releases
return one first rad without any PU.
AIX 6.1 00F63F144C00 does (on quad-power7).
AIX 6.1 00CBAAC24C00 doesn't (on 16x power6).

So we can't assume rad #x contains PU #x. But we already have the right
code to fill the cpuset from the rad, so use that to obtain the PU os_index
as well.

Cannot be used to obtain NUMA node os_index since there's no way to directly
retrieve NUMA nodes from rads (mempools seem unrelated). Just keep using #rad
for NUMA nodes os_index and document that convention when converting back in
set_membind().

Thanks to Hendryk Bockelmann and Erik Schnetter for helping debugging.

(cherry picked from commit open-mpi/hwloc@60006c7b88)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:33 -07:00
Brice Goglin
80140bbe7b hwloc: distances: when we fail to insert an intermediate group, don't try to group further above
Otherwise we'll have some NULL objects above, would be annoying.
No need to dig further, the distance matrix is likely buggy.

We still keep the inserted groups at this level (incomplete level)
because removing them is hard.

(cherry picked from commit open-mpi/hwloc@312a971ec9)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:33 -07:00
Brice Goglin
29c99156cf hwloc: pci: fix SR-IOV VF vendor/device names
Commit 626129d2818693e62b83c1cfa2ba6e058e5bed66 fixed the hwloc
device/vendor numbers obtained from libpciaccess.
But the corresponding names are still retrieved from pciaccess numbers,
so fix these numbers inside pciaccess structures before retrieving the names.

(cherry picked from commit open-mpi/hwloc@85ea6e4acc)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:32 -07:00
Brice Goglin
da164be0ef hwloc: error: point to the FAQ when displaying the big OS error message
(cherry picked from commit open-mpi/hwloc@b191f816f6)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:32 -07:00
Brice Goglin
3f96e7a271 hwloc: synthetic: Misc levels are not allowed in the synthetic description
Misc objects were used between system and machine in the past
but quickly got replaced with groups.

(cherry picked from commit open-mpi/hwloc@6c2aa6d1ea)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:16 -07:00
Brice Goglin
050bb35feb hwloc: x86: use Group instead of Misc for unknown x2apic levels
Misc are reserved for annotating the topology, the core
doesn't like merging them. Group is more appropriate.

(cherry picked from commit open-mpi/hwloc@3c47649591)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:16 -07:00
Brice Goglin
379c7b0d8b hwloc: x86: use ulong for cache sizes, uint won't be enough in the near future
(cherry picked from commit open-mpi/hwloc@ae82597773)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:16 -07:00
Brice Goglin
6caf9edbea hwloc: hpux: improve hwloc_hpux_find_ldom() looking for NUMA node
hwloc_get_first_largest_obj_inside_cpuset() returns the largest/highest object,
but it could still have a child with the same cpuset.
So check children as well in case there's a matching NUMA node there.

(cherry picked from commit open-mpi/hwloc@57a1c4fbe4)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:16 -07:00
Brice Goglin
fff1bb5dcd hwloc: core: reorder children in merge_useless_child() as well
When ignore_keep_structure is enabled, intermediate level can disappear
between parent and child, making the new child complete_cpuset smaller,
causing the child list to require a reorder just like in remove_ignored().

(cherry picked from commit open-mpi/hwloc@88afbe6b62)

Embed this related commit:
core: abstract out reorder_children(), needed when merging modifies the list of children
(cherry picked from commit open-mpi/hwloc@14db82d391)

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:16 -07:00
Brice Goglin
77978a846e hwloc: core: fix the merging of identical objects in presence of Misc objects
If object A contains B + I/O as children, we can "ignore" I/Os and still
try to merge A and B. We now do the same for Misc objects without cpusets
instead of I/Os.

This fixes a corner case when export/reimport to XML creates a slightly
different topology (making hwloc_insert_misc fail inside a Linux cgroup).

Thanks to Dave Love for reporting the problem.

Fixes #118

(cherry picked from commit open-mpi/hwloc@650371e115)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:15 -07:00
Brice Goglin
5427b33caf hwloc: debug: fix an overzealous assertion about the parent cpuset vs its children
When I/O are attached under a PU, removing the children's cpusets from
the parent cpuset doesn't give 0, it gives the PU cpuset.
The assertion fails on single-pu machines with I/O when --merge is given,
only one PU remains with I/O under it.

But if we insert Misc by cpuset under PU, it gives 0 as expected.

Fix the assertion accordingly.

Thanks to Thomas Van Doren for reporting the issue.

(cherry picked from commit open-mpi/hwloc@45c94c336d)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:15 -07:00
Brice Goglin
9b59d532fc hwloc: cpuid-x86: Fix duplicate asm labels in case of heavy inlining on x86-32
hwloc_x86_discover() calls hwloc_look_x86() twice, which calls hwloc_have_x86_cpuid().
If everything gets inlined, the asm label inside hwloc_have_x86_cpuid()
is duplicated.
Use a local label with f annotation in jumps to avoid the problem.

Thanks to Thomas Van Doren for reporting the issue (found with gcc -m32).

(cherry picked from commit open-mpi/hwloc@50e447f5bc)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:15 -07:00
Brice Goglin
86a536ca58 hwloc: x86 and OSF: Don't forget to set NUMA node nodeset
x86: Not critical since BSDs that use this backend have no membind support,
but better fix it for uniformization.
(cherry picked from commit open-mpi/hwloc@a431361c7d)

OSF: Looks like nobody ever tried to play with memory binding on OSF/Tru64.
(cherry picked from commit open-mpi/hwloc@2d6c73356d)

Conflicts:
	NEWS

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:15 -07:00
Brice Goglin
db5bc72496 hwloc: API: clearly state that os_index isn't unique while logical_index is
(cherry picked from commit open-mpi/hwloc@6c75302ab2)

Conflicts:
	opal/mca/hwloc/hwloc191/hwloc/include/hwloc.h

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:14:15 -07:00
Brice Goglin
a636790604 hwloc: opal/mca/hwloc/hwloc191/hwloc/NEWS update
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:13:41 -07:00
Brice Goglin
7c96aecfaf hwloc: errors: improve the advice to send hwloc-gather-topology files in the OS error message
(cherry picked from commit open-mpi/hwloc@f77aa01b3c)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:13:41 -07:00
Brice Goglin
d5f8c89527 hwloc: configure: fix the check for X11/Xutil.h
At least some solaris enforce the need to #include X11/Xlib.h first.

Thanks to Siegmar Gross for reporting the issue.

(cherry picked from commit open-mpi/hwloc@005a7e89b6)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:13:01 -07:00
Brice Goglin
50b035dddb hwloc: misc.h: Fix hwloc_strncasecmp() with some icc
tolower needs <ctype.h>

Thanks to Ralph Castain for reporting the failure.

(cherry picked from commit open-mpi/hwloc@038c372a58)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:10:57 -07:00
Brice Goglin
6764413aa3 hwloc: misc.h: Fix hwloc_strncasecmp() build under strict flags on BSD
strncasecmp() needs <strings.h>

Thanks to Pavan Balaji for reporting the failure.

(cherry picked from commit open-mpi/hwloc@37439c4801)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:10:46 -07:00
Brice Goglin
6b0011f138 hwloc: v1.9.1 released, doing 1.9.2rc1 now
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2015-03-27 05:06:15 -07:00
Jeff Squyres
a85edb8ad4 libfabric: update to Github libfabric 0d7daf720f04 2015-03-26 14:40:46 -07:00
Elena
90f5b2bb84 Introduce -tune command line option to set env vars and mca params from file 2015-03-26 18:33:53 +02:00
rhc54
2ff7575dde Merge pull request #497 from rhc54/topic/sec
Allow for different security domains.
2015-03-25 21:01:29 -07:00
Ralph Castain
1b24536941 Allow for different security domains. Let the initiator of the connection determine the method to be used - if the receiver cannot support it, then that's an error that will cause the connection attempt to fail. 2015-03-25 13:22:01 -07:00
Nathan Hjelm
26f96c0049 asm/ia32: do not use the = constraint modifier for input/output
operands

Also added support for the xchg instruction. The instruction is
supported by ia32 and may benefit vader.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-03-25 13:42:27 -06:00
Ralph Castain
9dbc69df0f Stop an ugly infinite loop caused by continual re-opening of the opal if framework. 2015-03-24 17:50:14 -07:00
Rolf vandeVaart
dfb7e00ef5 Make sure context is still around when doing some other cleanup 2015-03-24 16:47:40 -04:00
Ralph Castain
ed5d10b816 Somehow slipped by - ensure we correctly count the cores 2015-03-19 17:56:18 -07:00
Ralph Castain
43a3baad5e Ensure we use the first compute node's topology for mapping
Don't filter the topology by cpuset if you are mpirun until you know that no other compute nodes are involved. This deals with the corner case where mpirun is executing on a node of different topology from the compute nodes.

Simplify - don't mandate that all cpus in the given cpuset be present on every node. We can then run everything thru the filter as before, which ensures that any procs run on mpirun are also contained within the specified cpuset.

Correctly count the number of available PUs under each object when given a cpuset

Fix the default binding settings, and correctly count PUs when no cpuset is given

Ensure the binding policy gets set in all cases
2015-03-19 16:30:36 -07:00
Nathan Hjelm
ccba8ce856 Merge pull request #457 from hjelmn/mpit_fixes
mca/base: fix bugs in framework deregistration/re-registration
2015-03-18 08:37:49 -06:00
Ralph Castain
d7d8ae46ed We no longer pass the RML URI for procs launched via mpirun as the daemon has no need for that info. 2015-03-17 06:10:20 -07:00
Mike Dubman
7640507438 Merge pull request #472 from miked-mellanox/topic/fix_compile_warn
btl/openib: fix compiler warning, by HalR
2015-03-13 14:06:07 +02:00