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

1537 Коммитов

Автор SHA1 Сообщение Дата
Ralph Castain
86c7365e8e Clean up a few initialization issues - don't think these are impacting the shared memory situation as it didn't fix the problem.
Setup the event API to support multiple bases in preparation for splitting the OMPI and ORTE events. Holding here pending shared memory resolution.

This commit was SVN r23943.
2010-10-26 02:41:42 +00:00
Ralph Castain
fceabb2498 Update libevent to the 2.0 series, currently at 2.0.7rc. We will update to their final release when it becomes available. Currently known errors exist in unused portions of the libevent code. This revision passes the IBM test suite on a Linux machine and on a standalone Mac.
This is a fairly intrusive change, but outside of the moving of opal/event to opal/mca/event, the only changes involved (a) changing all calls to opal_event functions to reflect the new framework instead, and (b) ensuring that all opal_event_t objects are properly constructed since they are now true opal_objects.

Note: Shiqing has just returned from vacation and has not yet had a chance to complete the Windows integration. Thus, this commit almost certainly breaks Windows support on the trunk. However, I want this to have a chance to soak for as long as possible before I become less available a week from today (going to be at a class for 5 days, and thus will only be sparingly available) so we can find and fix any problems.

Biggest change is moving the libevent code from opal/event to a new opal/mca/event framework. This was done to make it much easier to update libevent in the future. New versions can be inserted as a new component and tested in parallel with the current version until validated, then we can remove the earlier version if we so choose. This is a statically built framework ala installdirs, so only one component will build at a time. There is no selection logic - the sole compiled component simply loads its function pointers into the opal_event struct.

I have gone thru the code base and converted all the libevent calls I could find. However, I cannot compile nor test every environment. It is therefore quite likely that errors remain in the system. Please keep an eye open for two things:

1. compile-time errors: these will be obvious as calls to the old functions (e.g., opal_evtimer_new) must be replaced by the new framework APIs (e.g., opal_event.evtimer_new)

2. run-time errors: these will likely show up as segfaults due to missing constructors on opal_event_t objects. It appears that it became a typical practice for people to "init" an opal_event_t by simply using memset to zero it out. This will no longer work - you must either OBJ_NEW or OBJ_CONSTRUCT an opal_event_t. I tried to catch these cases, but may have missed some. Believe me, you'll know when you hit it.

There is also the issue of the new libevent "no recursion" behavior. As I described on a recent email, we will have to discuss this and figure out what, if anything, we need to do.

This commit was SVN r23925.
2010-10-24 18:35:54 +00:00
Rolf vandeVaart
364fcd8975 Should not overwrite des_context. Leftover from debugging.
This commit was SVN r23912.
2010-10-19 12:40:30 +00:00
Rolf vandeVaart
e9a7fea42d Fix up some of the failover code in the openib BTL.
Need to use MCA_BTL_IB_FAILED state to signel failure,
not MCA_BTL_IB_CLOSED.

This commit was SVN r23883.
2010-10-11 17:38:27 +00:00
Rolf vandeVaart
a91bd44463 Do not hand a function into this macro as the
function will get called twice.

This commit was SVN r23824.
2010-10-01 18:59:15 +00:00
Jeff Squyres
73bcc4a36b Fix mistake that came in via the ompi-agen tree in r23764. The mistake wasn't part of the core autogen upgrade; it was an additional 'bonus' cleanup. Oops. The mistake will always create a set of directories under installdir, even if you do not --with-devel-headers. The set of directories will be empty, but still -- they should not be there at all. This commit fixes that -- the directories are not created at all if you do not --with-devel-headers
This commit was SVN r23801.

The following SVN revision numbers were found above:
  r23764 --> open-mpi/ompi@40a2bfa238
2010-09-24 22:53:28 +00:00
Steve Wise
9862132836 Add T4 device IDs to openib btl params ini file.
This commit was SVN r23791.
2010-09-22 18:16:53 +00:00
Ralph Castain
40a2bfa238 WARNING: Work on the temp branch being merged here encountered problems with bugs in subversion. Considerable effort has gone into validating the branch. However, not all conditions can be checked, so users are cautioned that it may be advisable to not update from the trunk for a few days to allow MTT to identify platform-specific issues.
This merges the branch containing the revamped build system based around converting autogen from a bash script to a Perl program. Jeff has provided emails explaining the features contained in the change.

Please note that configure requirements on components HAVE CHANGED. For example. a configure.params file is no longer required in each component directory. See Jeff's emails for an explanation.

This commit was SVN r23764.
2010-09-17 23:04:06 +00:00
George Bosilca
8e9d9e136d Update the GM bandwidth.
This commit was SVN r23734.
2010-09-08 21:50:56 +00:00
Rolf vandeVaart
c8d6672453 Set default udapl bandwidth to more realistic value.
This commit was SVN r23728.
2010-09-08 14:38:16 +00:00
Nadia Derbey
e265dc51e5 Added Bull vendor id for ConnectX card
This commit was SVN r23715.
2010-09-03 14:13:19 +00:00
Jeff Squyres
b9ac24eadd Based on
http://www.open-mpi.org/community/lists/devel/2010/09/8455.php, rever
this patch.  George, Brice, and Scott can decide what they want to do
here.  

This commit was SVN r23714.
2010-09-03 13:48:36 +00:00
Jeff Squyres
2b2b29a6d4 For some reason, the MX btl sets btl_bandwidth in megabits/s instead
of megabytes/s. So we get crazy btl_weights in case of heterogeneous
multirail. And --mca btl_mx_bandwidth <width> cannot work around the
problem (it probably doesn't help because it's overriden by the
runtime link width detection anyway?).

Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr>

This commit was SVN r23712.
2010-09-03 12:03:06 +00:00
Jeff Squyres
ce91a8572d Twice the code for half the price! :-)
Somehow, there's an entire 2nd (identical) copy of the sm btl
configure.m4 in here -- this commit removes the duplicate copy,
leaving only 1 copy of each relevant m4 macro.

Thanks to Ralph for spotting it!

This commit was SVN r23675.
2010-08-27 01:24:55 +00:00
Rainer Keller
7c85144ac6 - Hmm, these mca parameters indeeed are registered twice ,-]
Thanks, Jeff!

   This should be added to CMR:v1.5:#2527

This commit was SVN r23589.
2010-08-10 21:11:59 +00:00
Josh Hursey
e12ca48cd9 A number of C/R enhancements per RFC below:
http://www.open-mpi.org/community/lists/devel/2010/07/8240.php

Documentation:
  http://osl.iu.edu/research/ft/

Major Changes: 
-------------- 
 * Added C/R-enabled Debugging support. 
   Enabled with the --enable-crdebug flag. See the following website for more information: 
   http://osl.iu.edu/research/ft/crdebug/ 
 * Added Stable Storage (SStore) framework for checkpoint storage 
   * 'central' component does a direct to central storage save 
   * 'stage' component stages checkpoints to central storage while the application continues execution. 
     * 'stage' supports offline compression of checkpoints before moving (sstore_stage_compress) 
     * 'stage' supports local caching of checkpoints to improve automatic recovery (sstore_stage_caching) 
 * Added Compression (compress) framework to support 
 * Add two new ErrMgr recovery policies 
   * {{{crmig}}} C/R Process Migration 
   * {{{autor}}} C/R Automatic Recovery 
 * Added the {{{ompi-migrate}}} command line tool to support the {{{crmig}}} ErrMgr component 
 * Added CR MPI Ext functions (enable them with {{{--enable-mpi-ext=cr}}} configure option) 
   * {{{OMPI_CR_Checkpoint}}} (Fixes trac:2342) 
   * {{{OMPI_CR_Restart}}} 
   * {{{OMPI_CR_Migrate}}} (may need some more work for mapping rules) 
   * {{{OMPI_CR_INC_register_callback}}} (Fixes trac:2192) 
   * {{{OMPI_CR_Quiesce_start}}} 
   * {{{OMPI_CR_Quiesce_checkpoint}}} 
   * {{{OMPI_CR_Quiesce_end}}} 
   * {{{OMPI_CR_self_register_checkpoint_callback}}} 
   * {{{OMPI_CR_self_register_restart_callback}}} 
   * {{{OMPI_CR_self_register_continue_callback}}} 
 * The ErrMgr predicted_fault() interface has been changed to take an opal_list_t of ErrMgr defined types. This will allow us to better support a wider range of fault prediction services in the future. 
 * Add a progress meter to: 
   * FileM rsh (filem_rsh_process_meter) 
   * SnapC full (snapc_full_progress_meter) 
   * SStore stage (sstore_stage_progress_meter) 
 * Added 2 new command line options to ompi-restart 
   * --showme : Display the full command line that would have been exec'ed. 
   * --mpirun_opts : Command line options to pass directly to mpirun. (Fixes trac:2413) 
 * Deprecated some MCA params: 
   * crs_base_snapshot_dir deprecated, use sstore_stage_local_snapshot_dir 
   * snapc_base_global_snapshot_dir deprecated, use sstore_base_global_snapshot_dir 
   * snapc_base_global_shared deprecated, use sstore_stage_global_is_shared 
   * snapc_base_store_in_place deprecated, replaced with different components of SStore 
   * snapc_base_global_snapshot_ref deprecated, use sstore_base_global_snapshot_ref 
   * snapc_base_establish_global_snapshot_dir deprecated, never well supported 
   * snapc_full_skip_filem deprecated, use sstore_stage_skip_filem 

Minor Changes: 
-------------- 
 * Fixes trac:1924 : {{{ompi-restart}}} now recognizes path prefixed checkpoint handles and does the right thing. 
 * Fixes trac:2097 : {{{ompi-info}}} should now report all available CRS components 
 * Fixes trac:2161 : Manual checkpoint movement. A user can 'mv' a checkpoint directory from the original location to another and still restart from it. 
 * Fixes trac:2208 : Honor various TMPDIR varaibles instead of forcing {{{/tmp}}} 
 * Move {{{ompi_cr_continue_like_restart}}} to {{{orte_cr_continue_like_restart}}} to be more flexible in where this should be set. 
 * opal_crs_base_metadata_write* functions have been moved to SStore to support a wider range of metadata handling functionality. 
 * Cleanup the CRS framework and components to work with the SStore framework. 
 * Cleanup the SnapC framework and components to work with the SStore framework (cleans up these code paths considerably). 
 * Add 'quiesce' hook to CRCP for a future enhancement. 
 * We now require a BLCR version that supports {{{cr_request_file()}}} or {{{cr_request_checkpoint()}}} in order to make the code more maintainable. Note that {{{cr_request_file}}} has been deprecated since 0.7.0, so we prefer to use {{{cr_request_checkpoint()}}}. 
 * Add optional application level INC callbacks (registered through the CR MPI Ext interface). 
 * Increase the {{{opal_cr_thread_sleep_wait}}} parameter to 1000 microseconds to make the C/R thread less aggressive. 
 * {{{opal-restart}}} now looks for cache directories before falling back on stable storage when asked. 
 * {{{opal-restart}}} also support local decompression before restarting 
 * {{{orte-checkpoint}}} now uses the SStore framework to work with the metadata 
 * {{{orte-restart}}} now uses the SStore framework to work with the metadata 
 * Remove the {{{orte-restart}}} preload option. This was removed since the user only needs to select the 'stage' component in order to support this functionality. 
 * Since the '-am' parameter is saved in the metadata, {{{ompi-restart}}} no longer hard codes {{{-am ft-enable-cr}}}. 
 * Fix {{{hnp}}} ErrMgr so that if a previous component in the stack has 'fixed' the problem, then it should be skipped. 
 * Make sure to decrement the number of 'num_local_procs' in the orted when one goes away. 
 * odls now checks the SStore framework to see if it needs to load any checkpoint files before launching (to support 'stage'). This separates the SStore logic from the --preload-[binary|files] options. 
 * Add unique IDs to the named pipes established between the orted and the app in SnapC. This is to better support migration and automatic recovery activities. 
 * Improve the checks for 'already checkpointing' error path. 
 * A a recovery output timer, to show how long it takes to restart a job 
 * Do a better job of cleaning up the old session directory on restart. 
 * Add a local module to the autor and crmig ErrMgr components. These small modules prevent the 'orted' component from attempting a local recovery (Which does not work for MPI apps at the moment) 
 * Add a fix for bounding the checkpointable region between MPI_Init and MPI_Finalize. 

This commit was SVN r23587.

The following Trac tickets were found above:
  Ticket 1924 --> https://svn.open-mpi.org/trac/ompi/ticket/1924
  Ticket 2097 --> https://svn.open-mpi.org/trac/ompi/ticket/2097
  Ticket 2161 --> https://svn.open-mpi.org/trac/ompi/ticket/2161
  Ticket 2192 --> https://svn.open-mpi.org/trac/ompi/ticket/2192
  Ticket 2208 --> https://svn.open-mpi.org/trac/ompi/ticket/2208
  Ticket 2342 --> https://svn.open-mpi.org/trac/ompi/ticket/2342
  Ticket 2413 --> https://svn.open-mpi.org/trac/ompi/ticket/2413
2010-08-10 20:51:11 +00:00
Rainer Keller
2ee01042c9 - Spelling fixes and line breaks in the parameter descriptions.
Please cmr:v1.5

This commit was SVN r23578.
2010-08-09 16:10:31 +00:00
Ralph Castain
586f5b8bf5 Add missing includes per Greg Koenig
This commit was SVN r23546.
2010-08-03 17:30:59 +00:00
Jeff Squyres
3031b59cfe Change to use the new opal_fd_*() functions.
This commit was SVN r23451.
2010-07-20 19:54:17 +00:00
Jeff Squyres
e736281adf Add an extra pair of (), just for defensive programming.
This commit was SVN r23444.
2010-07-20 12:23:00 +00:00
Nadia Derbey
837fb29fab Wrong event_type value passed in to show_help when getting xrc async events
This commit was SVN r23442.
2010-07-20 06:37:17 +00:00
Christopher Yeoh
cfea0db3a2 removes spurious compilation warning
This commit was SVN r23441.
2010-07-20 06:32:36 +00:00
Donald Kerr
f79c89e0e9 help maintain order established, and defined, during mca_btl_openib_add_procs()
This commit was SVN r23425.
2010-07-16 13:13:37 +00:00
Shiqing Fan
30c9f9c097 A few more files need to be excluded from windows build source.
This commit was SVN r23413.
2010-07-14 11:25:30 +00:00
Rolf vandeVaart
b7a27ab36a Add support for openib BTL failover to be used with bfo PML.
By default, feature is configured out so no effect on 
normal operation.

This commit was SVN r23412.
2010-07-14 10:08:19 +00:00
Shiqing Fan
5b37e2922c Use semicolon as the separator for Windows, as colon is normally part of the windows path.
This commit was SVN r23411.
2010-07-14 09:12:10 +00:00
Shiqing Fan
b904d4826f Get rid of a warning of using void pointer in arithmetic.
This commit was SVN r23393.
2010-07-13 21:43:38 +00:00
Rolf vandeVaart
fb19872806 Two new flag definitions needed by the new PML.
This commit was SVN r23386.
2010-07-13 11:30:43 +00:00
Rolf vandeVaart
b4af9c0efc Fix casts so trunk compiles
This commit was SVN r23381.
2010-07-13 01:52:22 +00:00
Shiqing Fan
8de5654bf9 Add new files into the tarball.
This commit was SVN r23377.
2010-07-12 16:21:46 +00:00
Shiqing Fan
cdc7e0bec9 Mainly type casts.
Get rid of pthread and other unnecessary stuffs for Windows.

This commit was SVN r23376.
2010-07-12 16:17:56 +00:00
Shiqing Fan
e3be90ff22 Update CMake modules, adding initial support for openib.
This commit was SVN r23373.
2010-07-12 15:28:37 +00:00
Jeff Squyres
c8bb7537e7 Remove include/opal/sys/cache.h -- its only purpose in life was to
#define CACHE_LINE_SIZE to 128.  This name has a conflict on NetBSD,
and it seems kinda odd to have a header file that ''only'' defines a
single value.  Also, we'll soon be raising hwloc to be a first-class
item, so having this file around seemed kinda weird.

Therefore, I replaced CACHE_LINE_SIZE with opal_cache_line_size, an
int (in opal/runtime/opal_init.c and opal/runtime/opal.h) on the
rationale that we can fill this in at runtime with hwloc info (trunk
and v1.5/beyond, only).  The only place we ''needed'' a compile-time
CACHE_LINE_SIZE was in the BTL SM (for struct padding), so I made a
new BTL_SM_ preprocessor macro with the old CACHE_LINE_SIZE value
(128).  That use isn't suitable for run-time hwloc information,
anyway.

This commit was SVN r23349.
2010-07-06 14:33:36 +00:00
Jeff Squyres
6d77118254 Fixes for FT code that came from recent shared memory updates.
This commit was SVN r23348.
2010-07-06 12:58:48 +00:00
Jeff Squyres
e82e7f896e These compile warnings have been forever; I finally got inspired to
fix them.

This commit was SVN r23316.
2010-06-28 17:26:38 +00:00
Nadia Derbey
c22e6b3613 openib btl unsafe in case of extremely low srq settings
This commit was SVN r23301.
2010-06-24 09:59:45 +00:00
Samuel Gutierrez
2fb7c344fc Added a new System V (sysv) shared memory component for Open MPI.
Configure Option:
--enable-sysv

MCA Parameter:
mpi_common_sm

mpi_common_sm accepts a comma delimited list of: [sysv],mmap (order
dependent).  The first component that is successfully selected is used. For
example, -mca mpi_common_sm sysv,mmap will first try sysv. If sysv is not
successfully selected, then mmap will be used.  mmap will be used if 
mpi_common_sm is not provided.

Notes:
Please make certain that your system's shmmax limit, or equivalent, is larger
than mpool_sm_min_size.  Otherwise, shmget may fail.

This commit was SVN r23260.
2010-06-09 16:58:52 +00:00
Jeff Squyres
e45be29f0d This function shouldn't have an ibv_ prefix -- it's not part of
verbs (it's just a static convenience function here in this file).  

This commit was SVN r23237.
2010-06-02 12:54:56 +00:00
Jeff Squyres
464bd8c56e Fix typo
This commit was SVN r23212.
2010-05-27 21:19:38 +00:00
Rolf vandeVaart
27f070a575 Start setting a flag when a port error is detected on the openib BTL.
At this point, it is just cleared (and ignored) so default behavior has not changed.
However, future failover support can take advantage of this flag.
Reviewed by Pasha Shamis.

This commit was SVN r23204.
2010-05-24 18:57:55 +00:00
Shiqing Fan
857f1669e2 Solve a few compilation problems on Windows.
This commit was SVN r23193.
2010-05-21 14:30:15 +00:00
George Bosilca
b56ab33ff6 Indent and fix some uninitialized variables.
This commit was SVN r23179.
2010-05-19 21:20:33 +00:00
Rolf vandeVaart
03b3e75f86 Add two arguments to the PML error callback function. This
allows the BTL to specify a specific ompi_proc_t that had an
error.  Also add an optional descriptive string.  Currently, arguments
are not used but will be by future failover PML. 
Changes based on RFC.  Reviewed by George Bosilca.

This commit was SVN r23174.
2010-05-19 11:55:45 +00:00
Josh Hursey
f57e73d4e5 add a few more missing SOS includes
This commit was SVN r23168.
2010-05-18 15:00:07 +00:00
Abhishek Kulkarni
afbe3e99c6 * Wrap all the direct error-code checks of the form (OMPI_ERR_* == ret) with
(OMPI_ERR_* = OPAL_SOS_GET_ERR_CODE(ret)), since the return value could be a
 SOS-encoded error. The OPAL_SOS_GET_ERR_CODE() takes in a SOS error and returns
 back the native error code.

* Since OPAL_SUCCESS is preserved by SOS, also change all calls of the form
  (OPAL_ERROR == ret) to (OPAL_SUCCESS != ret). We thus avoid having to
  decode 'ret' to get the native error code.

This commit was SVN r23162.
2010-05-17 23:08:56 +00:00
Rolf vandeVaart
9e300703ec Add reference to trac ticket as requested by code review.
This commit was SVN r23123.
2010-05-13 13:55:54 +00:00
Jeff Squyres
c7c3de87f5 Add ummunotify support to Open MPI. See
http://marc.info/?l=linux-mm-commits&m=127352503417787&w=2 for more
details.

 * Remove the ptmalloc memory component; replace it with a new "linux"
   memory component.
 * The linux memory component will conditionally compile in support
   for ummunotify.  At run-time, if it has ummunotify support and
   finds run-time support for ummunotify (i.e., /dev/ummunotify), it
   uses it.  If not, it tries to use ptmalloc via the glibc memory
   hooks. 
 * Add some more API functions to the memory framework to accomodate
   the ummunotify model (i.e., poll to see if memory has "changed").
 * Add appropriate calls in the rcache to the new memory APIs to see
   if memory has changed, and to react accordingly.
 * Add a few comments in the openib BTL to indicate why we don't need
   to notify the OPAL memory framework about specific instances of
   registered memory.
 * Add dummy API calls in the solaris malloc component (since it
   doesn't have polling/"did memory change" support).

This commit was SVN r23113.
2010-05-11 21:43:19 +00:00
Jeff Squyres
b6e401a512 Fix minor typo.
This commit was SVN r23067.
2010-04-29 11:45:25 +00:00
Rolf vandeVaart
892091c77d After fix 22669 was applied which allowed for more than 8 interfaces, it was discovered that the connection algorithm did not scale. Therefore, switch to a simpler algorithm in the extremely rare case when one has more than 8 interfaces. This commit fixes trac:2301.
This commit was SVN r22976.

The following Trac tickets were found above:
  Ticket 2301 --> https://svn.open-mpi.org/trac/ompi/ticket/2301
2010-04-14 14:18:35 +00:00
Pavel Shamis
fc077a2102 Fix a minor bug in the error flow of check_if_device_support_modify_srq
Signed-off-by: Ishai Rabinovitz <ishai@mellanox.co.il> 

This commit was SVN r22953.
2010-04-12 11:28:44 +00:00
Christopher Yeoh
0b93c87c2c Correct year for copyright notices
This commit was SVN r22877.
2010-03-25 03:14:21 +00:00
Ralph Castain
b400b84162 Merge in the modified thread configure option branch per today's telecon.
Remove the --enable-progress-threads option as this is no longer functional, and hardcode OPAL_ENABLE_PROGRESS_THREADS to 0.

Replace the --enable-mpi-threads option with --enable-mpi-thread-multiple as this is clearer as to meaning. This option automatically turns "on" opal thread support if it wasn't already so specified. If the user specifies --disable-opal-multi-threads --enable-mpi-thread-multiple, we will error out with a message

Add a new --enable-opal-multi-threads option that turns "on" opal thread support without doing anything wrt mpi-thread-multiple

This commit was SVN r22841.
2010-03-16 23:10:50 +00:00
Josh Hursey
e9b5162d79 Fix the configure logic for --with-ft so that it properly takes a comma separated list.
Many of the OPAL_ENABLE_FT should be OPAL_ENABLE_FT_CR, so fix those.

The OPAL Layer INC should call opal_output on restart so that it can refresh the string it prints to reflect the current pid/hostname which may have changed.

This commit was SVN r22824.
2010-03-12 23:57:50 +00:00
Samuel Gutierrez
15f9f35a49 Another small typo fix.
This commit was SVN r22802.
2010-03-09 21:23:21 +00:00
Jeff Squyres
95d7e08a66 More more discussion and testing has occurred off-ticket.
Short version: there is a bug in OS X/Snow Leopard, but there is also
a bug in Open MPI.  Fixing the bug in Open MPI is both trivial (a
1-line change) and avoids the bug in OS X.  We'll file an OS X bug
report upstream with Apple, but it should no longer affect us here in
OMPI.

Fixes trac:2039.

More details:

Some background first: 

 1. IPv4 sockets can only accept incoming IPv4 connections.  However,
    IPv6 sockets can be configured to accept ''only'' incoming IPv6
    connection, or ''both'' incoming IPv4 and IPv6 connections.  An
    IPv6 socket attribute sets which listening behavior is used.
 1. IPv4 and IPv6 have different port namespaces.  Hence, it is
    permissable to bind a v4 socket to port X ''and'' also bind a v6
    socket to that same port X on the same interface (assuming that
    the v6 socket is only accepting incoming v6 connections).
    Incoming v4 connections to port X on the interface should get
    matched to the listening v4 socket; incoming v6 connections should
    get matched to the listening v6 socket.
 1. When v6 sockets accept ''both'' incoming v4 and v6 connections, it
    should claim port X in both namespaces.
 1. Linux's default behavior is to only allow one listening socket to
    be bound to a given port (i.e., ''either'' a v6 or v4 socket to be
    bound to a single port X -- not both).  A v6 socket can listen for
    both v4 and v6 incoming connections on that port, but still --
    only one socket will be bound to that port.
 1. Snow Leopard's default behavior is to share ports -- i.e., let
    both a v4 and a v6 listening socket to be bound to port X
    (assuming that the v6 socket is only accepting incoming v6
    connections).

The TCP BTL creates a listening socket for each address family.
Hence, it creates a v4 listening socket on INADDR_ANY and a v6
listening socket on the v6 equivalent of INADDR_ANY.  OMPI then
iteratively tries to find ports to listen on within the range of
[mca_btl_tcp_port_min, mca_btl_tcp_port_min + mca_btl_tcp_port_range).

On Linux, the v4 socket will be bound to port X and the v6 socket will
likely be bound to port Y (where X != Y).  On Snow Leopard, the v4
socket will be bound to port X and the v6 socket may ''also'' be bound
to port X.  Since the namespaces are separate, this shouldn't be a
problem.

However, Open MPI was accidentally setting the v6 listening behavior
to accept ''both'' v4 and v6 incoming connections.  This is a trivial
thing to fix -- change a 0 to a 1 in the code.  On Linux, this issue
didn't matter because the v4 and v6 sockets were on different ports.
So even though the v6 socket ''would'' have accepted incoming v4
connections, that never happened because OMPI would direct v4
connections to the v4 port.

But on Snow Leopard, the v4 and v6 listening ports could end up
sharing the same port number.  As mentioned above, this ''shouldn't''
have been a problem, but it looks like Snow Leopard has the following
bugs:

 * If a v4 socket is already bound to port X, we're pretty sure that a
   v6 socket with the "accept both v4 and v6 incoming connections"
   listening behavior should not be able to claim port X (because
   there's already a v4 socket listening on X).  However, Snow Leopard
   would allow binding a v4 socket to port X, and then allow a v6
   socket configured to allow incoming v4 and v6 connections to
   ''also'' be bound to port X.
 * After binding the v6 socket to port X, Snow Leopard then lets
   ''another'' v4 socket ''also'' get bound to port X.  Hence, there's
   now '''three''' sockets all listening on port X.

This obviously led to mis-matched TCP connections, and things went
downhill from there.

That being said, Snow Leopard doesn't exhibit this behavior if v6
sockets only allow incoming v6 connections.  And technically, that is
exactly the behavior we want (we want v6 sockets to only accept
incoming v6 connections).  So if we just change the flag to make our
v6 listening socket us this behavior, the problem on OS X goes away.

That's what this commit does -- it changes a 0 to a 1, indicating
"only let this v6 socket allow incoming v6 connections."

That was simple, wasn't it?

This commit was SVN r22788.

The following Trac tickets were found above:
  Ticket 2039 --> https://svn.open-mpi.org/trac/ompi/ticket/2039
2010-03-05 17:37:57 +00:00
Iain Bason
18d9e96301 Fixed two problems:
1. The code that looks at btl_tcp_if_exclude before doing a
   modex_send uses strcmp rather than strncmp. That means that
   "lo0" gets sent even though "lo" is excluded.

2. The code that determines whether a particular local TCP
   interface can connect to a particular remote interface doesn't
   check for loopback interfaces. With this fix, users can now
   enable "lo" and be assured that it will only be used for intra-
   node communication.

This commit was SVN r22762.
2010-03-03 15:51:15 +00:00
Ralph Castain
c88fe1ea54 Create a new mca parameter to control creation of session directories. Defaults to true so that the current behavior of always creating them is preserved. If set to false (0), then don't create session directories. Helps in those environments where session directories are a problem.
Tell the sm btl that it cannot run if no session directories were created.

This commit was SVN r22756.
2010-03-02 15:18:33 +00:00
Jeff Squyres
b0eaebf46f Add Intel's OUI.
This commit was SVN r22723.
2010-02-26 19:54:16 +00:00
Rolf vandeVaart
2715141f6d Fix minor bug in the way we handle btl_tcp_if_include list.
This commit was SVN r22722.
2010-02-26 18:08:04 +00:00
Jeff Squyres
2e91de0bdd This has bugged me for a long, long time: rename btl_openib_iwarp.* ->
btl_openib_ip.*.  The routines in these files are not specific to
iwarp -- they are specific to IP interfaces used with IBV devices
(even IB or IBoE/RoCEE/whatever devices).

This commit was SVN r22718.
2010-02-25 21:04:09 +00:00
Jeff Squyres
a4a81698c2 Mostly a patch from Vasily/Mellanox to fix multi-port and 32/64 bit
issues with iwarp.c.  These fixes are needed for IBoE / ROCEE /
whateveritscalledtoday.  I added a few minor changes to his base
patch.

This commit was SVN r22717.
2010-02-25 20:57:05 +00:00
Pavel Shamis
9fbfe6b1c0 The fix resolves the bug #2307. QP creation may fail, since the calculation for _reserved_ does not check for QP type. As result the max_recv_wr may get wrong value . Needs to go to both cmr:v1.4.2 and cmr:v1.5.0
This commit was SVN r22713.
2010-02-25 11:15:20 +00:00
Jeff Squyres
dd4945c194 New part ID's from Chelsio and Intel. May still get more from
Chelsio. 

This commit was SVN r22708.
2010-02-24 20:39:40 +00:00
Pavel Shamis
99ee62771d The fix resolves bug #2292. We may to call for prepare_device_for_use() only after adding the btl to mca_btl_openib_component.openib_btls. Needs to go to both cmr:v1.4.2 and cmr:v1.5.0
This commit was SVN r22702.
2010-02-24 10:13:06 +00:00
Christopher Yeoh
f79263550c This fixes trac:2265 removing a race in the openib btl endpoint when
increasing sequence numbers. cmr:v1.4

This commit was SVN r22684.

The following Trac tickets were found above:
  Ticket 2265 --> https://svn.open-mpi.org/trac/ompi/ticket/2265
2010-02-23 12:46:06 +00:00
Christopher Yeoh
322e73d8c4 The ib_procs list in the openib btl is accessed without the ib lock in some cases. This causes races when running multithreaded. This patch adds protection of the ib_procs list with the ib_lock.
fixes trac:2149 cmr:v1.4

This commit was SVN r22682.

The following Trac tickets were found above:
  Ticket 2149 --> https://svn.open-mpi.org/trac/ompi/ticket/2149
2010-02-23 05:19:03 +00:00
Christopher Yeoh
11500e3267 Fixes bug where the wrong lock is taken in mca_btl_openib_alloc
when protecting the no_wqe_pending_frags list.

fixes trac:2118 add cmr:v1.4

This commit was SVN r22678.

The following Trac tickets were found above:
  Ticket 2118 --> https://svn.open-mpi.org/trac/ompi/ticket/2118
2010-02-22 08:14:45 +00:00
Christopher Yeoh
a14a5dc3c6 This fixes a bug where sometimes the rcache lock would be dropped when it wasn't actually held.
Also includes some minor copytight header additions that were missed in previous checkins
fixes trac:2101 added cmr:v1.4

This commit was SVN r22676.

The following Trac tickets were found above:
  Ticket 2101 --> https://svn.open-mpi.org/trac/ompi/ticket/2101
2010-02-22 07:40:42 +00:00
George Bosilca
7eff2cdf85 Unrestricted number of interfaces.
This commit was SVN r22669.
2010-02-19 07:10:32 +00:00
Pavel Shamis
a124f6b10b Adding a hash table for management dependences between SRQs and their BTL modules.
This commit was SVN r22653.
2010-02-18 09:48:16 +00:00
Pavel Shamis
9d0ae097c1 Updating vendor part ids for some mellanox devices
This commit was SVN r22617.
2010-02-15 09:45:34 +00:00
Jeff Squyres
6c5f666890 Add a comment to the loopback check to explain why it is there. Also
slightly correct one other comment.

This commit was SVN r22606.
2010-02-11 14:59:04 +00:00
Jeff Squyres
8f7edf6e3e After a '''lot''' of discussion and testing, this commit fixes some
long-standing bugs (see trac ticket list below).  They're currently
somewhat obscure bugs, but are becoming much more relevant in a world
where OpenFabrics devices fail and you replace them with a newer model
(i.e., the cluster is homogeneous... ''except'' for where you had to
replace one or two OpenFabrics devices, and the same model is no
longer available).

This commit includes a '''lengthy''' comment (that we spent a lot of
time writing!) about what exactly it does and does not do.  The
previous code was rather short and '''incredibly''' subtle.  The new
code is slightly longer, but is both much more explicit and much more
painstakingly documented.

This commit fixes multiple trac tickets.  The real one that we fix is
#1707; the others are fixed as a side-effect.  In short: fixing #1707
prevents Bad Things from happening later in the startup sequence.

Fixes trac:1707, #2164, #1574.

cmr:v1.4.2:reviewer=pasha
cmr:v1.5:reviewer=pasha

This commit was SVN r22592.

The following Trac tickets were found above:
  Ticket 1707 --> https://svn.open-mpi.org/trac/ompi/ticket/1707
2010-02-10 16:53:26 +00:00
Steve Wise
d40d2165c0 Never advertise a loopback address (127/8) to your peers.
This commit was SVN r22589.
2010-02-09 19:07:33 +00:00
Ralph Castain
b3dd63fd81 Remove a stale pcie btl that never got completed
This commit was SVN r22498.
2010-01-27 01:16:01 +00:00
Jeff Squyres
1a7b7f7180 Make PCIE BTL compile/distribute .l files like everywhere else in the tree.
This commit was SVN r22467.
2010-01-22 15:39:42 +00:00
Jeff Squyres
fa38b97249 Generated files should not be in SVN.
cmr:v1.5

This commit was SVN r22465.
2010-01-22 14:01:02 +00:00
Shiqing Fan
ad763c327d Restore several linked libraries that were deleted by mistake in r22405.
This commit was SVN r22415.

The following SVN revision numbers were found above:
  r22405 --> open-mpi/ompi@872a4047ba
2010-01-14 21:50:42 +00:00
Shiqing Fan
872a4047ba Fix the bug that caused by ADD_DEPENDENCIES() from different version of CMake.
In CMake 2.6 and earlier, this function add dependencies for targets and also link the target libraries automatically, but in CMake 2.8,this behavior has been changed, i.e. it will only add the dependencies but no link, which will cause linking errors at compilation time.

This commit was SVN r22405.
2010-01-14 18:10:20 +00:00
Vasily Filipov
370b1c75c4 Added addition condition for create_srq
This commit was SVN r22403.
2010-01-14 16:09:10 +00:00
Jeff Squyres
b46628bf8d Reformat for 80-char width.
This commit was SVN r22402.
2010-01-14 13:31:11 +00:00
Jeff Squyres
e96032dec9 Fix a type (otherwise we get a compiler warning).
This commit was SVN r22380.
2010-01-07 17:39:18 +00:00
Shiqing Fan
b8555448b5 Remove the unnecessary/duplicated unistd.h.
This commit was SVN r22346.
2009-12-28 16:22:16 +00:00
Shiqing Fan
d0f85beaf3 Correctly include those header files.
This commit was SVN r22344.
2009-12-28 16:13:06 +00:00
Shiqing Fan
90e3092ce5 Fix a type cast.
This commit was SVN r22343.
2009-12-28 16:12:46 +00:00
George Bosilca
e127b20038 Correct a type in the name of the help string.
This commit was SVN r22336.
2009-12-21 19:13:25 +00:00
Vasily Filipov
897b7c0aa8 Fix orte_show_help message type error.
This commit was SVN r22321.
2009-12-16 14:11:43 +00:00
Vasily Filipov
e73274f9a9 Disabling SRQ limit event for devices that doesn't support this feature.
This commit was SVN r22320.
2009-12-16 14:05:35 +00:00
Vasily Filipov
87e71b26fe Jeff Squyres fixes
This commit was SVN r22319.
2009-12-16 10:23:58 +00:00
George Bosilca
b3d3a8e7b3 Remove useless lines.
This commit was SVN r22316.
2009-12-15 23:55:14 +00:00
George Bosilca
b85c3ca081 Enable support for the INRIA
knem (http://runtime.bordeaux.inria.fr/knem/) kernel device. This
is part of Ma Teng's work on Open MPI.

This commit was SVN r22315.
2009-12-15 23:34:09 +00:00
Vasily Filipov
c036c6ef95 Adding support for on-demand SRQ pre-post (receive wqe allocation)
This commit was SVN r22313.
2009-12-15 15:52:10 +00:00
Vasily Filipov
354bfe527f Improving support for non homogeneous OpenFabrics network configurations
This commit was SVN r22312.
2009-12-15 14:25:07 +00:00
Pavel Shamis
4d02aea54c Enabling, by default, RDMACM connection manager for RDMAoE devices
This commit was SVN r22311.
2009-12-15 13:52:19 +00:00
Christopher Yeoh
d5253aa0f1 Fixes multithread race which causes corruption of no_credits_pending_frags
list in the ib btl. See #2128 for details 

This commit was SVN r22298.
2009-12-14 01:41:45 +00:00
Eugene Loh
8177d91835 Minor change so that if the number of shared-memory FIFOs is greater
than can be used (e.g., number of on-node peers), that no additional
room is set aside for those FIFOs that will never be created.  This
makes it easier to have dedicated FIFOs:  just set btl_sm_num_fifos
to be very large rather than setting it to be the local number of
procs.  In practice, we ask for extra headroom anyhow, so this change
generally won't matter.

This commit was SVN r22291.
2009-12-10 19:28:39 +00:00
Pavel Shamis
b024aee10c Removing unused lists from mca_btl_openib_qp_info_t. The lists were moved to device.
This commit was SVN r22271.
2009-12-07 17:42:09 +00:00
Pavel Shamis
7d46985096 Removing unneeded spaces
This commit was SVN r22246.
2009-12-01 11:15:40 +00:00
Pavel Shamis
75a48f4b3c Bugfix for possible race in rdmacm_destroy_dummy_qp
This commit was SVN r22245.
2009-12-01 08:09:43 +00:00
Shiqing Fan
7cf427c39b Include the missing thread header, which is needed when build with --enable-progress-thread.
This commit was SVN r22239.
2009-11-27 14:49:24 +00:00