the btl_openib_iwarp.c and btl_openib_iwarp.h files.
This commit was SVN r18410.
The following SVN revision numbers were found above:
r18409 --> open-mpi/ompi@056bbb68c8
The iWARP subnet ID determination should not be in the RDMACM cpc, as
it was in the preversion, as this violates the cpc abstract that is
present throughout the code. Also, this patch uses the opal_list_t
data struct instead of using its own linked lists.
This commit was SVN r18409.
All spawned procs must decode the port of the spawning process so they can communicate in direct routed mode.
This fixes comm_spawn for all routing modes.
This commit was SVN r18395.
This enables subnet differientation for iWARP devices, and rearrange
initilization so that the services are available when they are needed.
This commit was SVN r18393.
If there is no IP Address, have rdmacm log the correct error and let
another cpc have a go at it. This is being done by splitting off the
IP address checking logic for the modex message creation, and having
it log the correct error in the error case.
This commit was SVN r18392.
For iWARP, the TCP connection is tied to the QP once the QP is in RTS.
And destroying the QP is thus tied to connection teardown for iWARP.
This is a key distinction from IB, I think. Anyway, to destroy the
connection in iWARP you must move the QP out of RTS, either into CLOSING
for a nice graceful close, or to ERROR if you want to be rude. In both
cases, all pending non-completed SQ and RQ WRs must be flushed.
This patch ignores all flush errors reaped by the cq and removes an
earlier attempt to work around this in the rdmacm cpc.
This commit was SVN r18388.
http://www.open-mpi.org/community/lists/devel/2008/04/3779.php
{{{
svn merge -r 18276:18380 https://svn.open-mpi.org/svn/ompi/tmp-public/jjh-mca-play .
}}}
Any components not in the trunk, but in one of the effected frameworks *must* be
updated. Contact the list, look at the RFC, or look at the diff for how to do this.
Sorry for the early commit of this, but I wanted to get it in today (per RFC) and
didn't know if I would have a chance later today.
This commit was SVN r18381.
If there are multiple QP's, RDMACM will not send a message if the
qpnum != 0. In doing so, it will log an error unecessarily. This
removes that.
This commit was SVN r18363.
Add the logic to support using port numbers, instead of simply using
the IP address of the sending node to determine which endpoint to
connect. Since each process calls the cpc query function, it will
generate its own port to listen on thus enablign this to work.
This commit was SVN r18362.
Update the rsh tree spawn capability so we spawn the next wave of daemons before launching our own local procs.
Add an ability to encode nodenames for large clusters with contiguous node name numbering schemes - this allows communication of all node names in a few bytes instead of tens-of-bytes/node.
This commit was SVN r18338.
The endpoint may be appended to list during XOOB connection bring up.
This commit was SVN r18328.
The following SVN revision numbers were found above:
r17940 --> open-mpi/ompi@ebfdd133f5
expected one. It doesn't necessarily means the message is duplicated,
it can simply signify the message is out of sequence and the counter
overflowed.
This commit was SVN r18323.
The following SVN revision numbers were found above:
r18274 --> open-mpi/ompi@73c9de3af9
The problem was caused by a bad ordering between the restart of the ORTE level tcp connections (in the OOB - out-of-band communication) and the Open MPI level tcp connections (BTLs). Before this commit ORTE would shutdown and restart the OOB completely before the OMPI level restarted its tcp connections. What would happen is that a socket descriptor used by the OMPI level on checkpoint was assigned to the ORTE level on restart. But the OMPI level had no knowledge that the socket descriptor it was previously using has been recycled so it closed it on restart. This caused the ORTE level to break as the newly created socket descriptor was closed without its knowledge.
The fix is to have the OMPI level shutdown tcp connections, allow the ORTE level to restart, and then allow the OMPi level to restart its connections. This seems obvious, and I'm surprised that this bug has not cropped up sooner. I'm confident that this specific problem has been fixed with this commit.
Thanks to Eric Roman and Tamer El Sayed for their help in identifying this problem, and patience while I was fixing it.
* Add a new state {{{OPAL_CRS_RESTART_PRE}}}. This state identifies when we are on the down slope of the INC (finalize-like) which is useful when you want to close, but not reopen a component set for fear of interfering with a lower level.
* Use this new state in OMPI level coordination. Here we want to make sure to play well with both the OMPI/BTL/TCP and ORTE/OOB/TCP components.
* Update ft_event functions in PML and BML to handle the new restart state.
* Add an additional flag to the error output in OOB/TCP so we can see what the socket descriptor was on failure as this can be helpful in debugging.
This commit was SVN r18276.
{{{
svn merge -r 18218:18240 https://svn.open-mpi.org/svn/ompi/tmp/jjh-scratch .
}}}
Contains:
* Primarily a fix for a user reported problem where a cached file descriptor is causing a SIGPIPE on restart.
* Cleanup some small memory leaks from using mca_base_param_env_var() - Thanks Jeff
* Cleanup ORTE FT tool compilation in non-FT builds - Thanks Tim P.
* Cleanup mpi interface with missplaced {{{OPAL_CR_ENTER_LIBRARY}}} - Thanks Terry
* Some other sundry cleanup items all dealing with C/R functionality in the trunk.
This commit was SVN r18241.
Fix the ompi-server -h cmd line option so it actually tells you something!
Add two new testing codes to the orte/test/mpi area: accept and connect.
This commit was SVN r18176.
Rational (taken from the code):
/* This is PITA. We never know which source address an
* incoming/outgoing packet will have, so even with
* btl_tcp_if_include/exclude on the remote end, we
* might get a different source address.
*
* If this address isn't included in btl_proc->proc_addrs,
* we would erroneously drop the connection
*/
merge -r18165:18167 to the trunk.
This commit was SVN r18169.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r18165
r18167
mca_btl_openib_endpoint_post_rr_nolock is freeing the endpoint lock on
the error case, but most/all of the functions calling this free the lock
regardless of its error case. Thus resulting is a double free of the
lock.
This commit was SVN r18131.
wring directory. The UH copyrights do belong into this file (i.e. because of
the fix which is in the 1.2 branch, the UH copyright notes are in the header
there alreary), but I want to have the proper log for that.
This commit was SVN r18124.
inter-communicator scatter, since the root (root==MPI_ROOT) might very well
have recvcount=0. The same fix has been applied to gather.c just the other way
round.
Fixes the bug reported on the mainling list by Martin Audet. If there is a
1.2.7 this fix might be worthwhile porting it over.
Please note, that while the test works now for basic and for inter, we get a
0byte malloc warning from the inter module, which we still have to fix in a
separate patch.
This commit was SVN r18122.
sender_based.h is now split in two files, to solve cyclic .h files inclusion.
Most macros are now inline functions.
Variable names have been changed from places to places.
Various other small things...
This commit was SVN r17996.
Clarify the setting of send_first in the mpi bindings (trivial, i know, but helpful)
Remove the extra xcast of child contact info to the parent job.
This commit was SVN r17952.
Only one place used the user name field - session_dir, when formulating the name of the top-level directory. Accordingly, the code for getting the user's id has been moved to the session_dir code.
This commit was SVN r17926.
operations. Added to the reduction operations a set of reduction
functions that take 2 input buffers and one output buffer to avoid
some extra memory copies. These can't be used with user defined
operations. The intel c collective suite passes both original, and
new (new, not the user defined operations).
This commit was SVN r17901.
portals btl has ownership and therefor didn't free the frag as it should) this
causes leakage and hangs in MPI_Finalize.
Also added a bit more debugging.
This commit was SVN r17900.
without calling a get or put. So, just keep it here until a better solution is
found.
This commit was SVN r17872.
The following SVN revision numbers were found above:
r17857 --> open-mpi/ompi@d460ccfbf9
Comm_spawn was sticking during spawn_multiple because of a problem in the dpm - the modex there is asking processes to talk to each other in an allgather_list operation, but the procs don't have the required contact info to do so. The solution here was to ensure that all parent procs have full contact info for procs in the child job.
Admittedly, this isn't the long-term answer. We would like to have the contact info given to only the parent procs that were involved in the comm_spawn. There is a way to do that, but this will suffice to keep things working until that can be implemented and tested.
This commit was SVN r17772.
The change also:
- cleans up and simplifies the command line processing code
- adds an error output if more than one hostfile passed for a single app context
- gets rid of the superfluous orte_app_context_map_t type, and instead use a simple argv of -host options
This commit was SVN r17750.
The following Trac tickets were found above:
Ticket 1124 --> https://svn.open-mpi.org/trac/ompi/ticket/1124
* New/improved bootstrapping technique for DLLs
* First cut of the MPI handle debugging interface. It is still
evolving, but the interface is getting more stable.
* Some minor bugs were fixed in the unity topo component (brought to
light because of the new MPI handle debugging stuff).
Fixes trac:1209.
This commit was SVN r17730.
The following Trac tickets were found above:
Ticket 1209 --> https://svn.open-mpi.org/trac/ompi/ticket/1209
* Extension to the ESS framework to support C/R
* Fixed support for {{{snapc_base_establish_global_snapshot_dir}}}
* Fixed FileM support
* Misc. minor code modifications
There are some outstanding visability issues that I want to fix next.
This commit was SVN r17725.
Also, update some properties (source files should not be executeable...), and remove a couple unneeded inclusions of orte_proc_table.h
This commit was SVN r17655.
NOTE: the code provided by PANASAS includes a "switch" that they left incomplete - it doesn't cover all possibilities. Since the value being switched is an enum, this causes problems for the compiler. I added the missing values, but - since Panasas felt they could be ignored - had the switch generate an error if those cases ever occurred.
This commit was SVN r17543.
* Include all the stuff that is necessary for running autogen.sh in a
distribution tarball.
* Remove from config/Makefile.am's EXTRA_DIST that which is
automatically included in the tarball in recent versions of
Automake (i.e., all the m4 files that are acincluded).
* Make ROMIO's configure script look for something that is actually
included in the tarball.
Fixes trac:1025.
This commit was SVN r17505.
The following Trac tickets were found above:
Ticket 1025 --> https://svn.open-mpi.org/trac/ompi/ticket/1025
return OMPI_ERR_UNREACH if the port returns an invalid speed or
width. OMPI_ERR_VALUE_OUT_OF_BOUNDS is reserved for when we exceed
the number of allowable BTLs.
This commit was SVN r17500.
idea at the time, but led to logistical difficulties in importing new
versions of ROMIO:
* We are effectively eliminating the ROMIO file prefix rule hacks in
the ROMIO component, which create symlinks from foo.c to
io_romio_foo.c. In reality, the file name conflict potential will
be small.
* Additionally, we are effectively eliminating the ROMIO function
prefix rule in the ROMIO component. This is another place where
there are generally problems with the merge up new versions of ROMIO
and/or patches from the user community (for their own local builds).
In reality, since other major MPI implementations provides the same
exact symbols, it won't cause any practical problems for users.
In return, we make it ''much'' simpler to apply ROMIO patches to Open
MPI. The problem right now is that any patch will have filenames such
as ad_panfs.c, but Open MPI will only have io_romio_ad_panfs.c, making
things extremely difficult for users. I believe, for example, that
this would make it possible for LANL to have applied their patches
without too much hassle on either their part or our part. It will
also make things easier for OMPI when we/they want to do the next
ROMIO upgrade (this was one of the sources of problems on each
upgrade).
This commit was SVN r17436.
We loop over all peer addresses and accept when one of them matches.
Note that this might break functionality: mca_btl_tcp_proc_insert now
always inserts the same endpoint. (is the lack of endpoints the problem?
should there be one for every remote address?)
Re #1206
This commit was SVN r17307.
- the registration array is now global instead of one by BTL.
- each framework have to declare the entries in the registration array reserved. Then
it have to define the internal way of sharing (or not) these entries between all
components. As an example, the PML will not share as there is only one active PML
at any moment, while the BTLs will have to. The tag is 8 bits long, the first 3
are reserved for the framework while the remaining 5 are use internally by each
framework.
- The registration function is optional. If a BTL do not provide such function,
nothing happens. However, in the case where such function is provided in the BTL
structure, it will be called by the BML, when a tag is registered.
Now, it's time for the second step... Converting OB1 from a switch based PML to an
active message one.
This commit was SVN r17140.
for dynamic selection of cpc methods based on what is available. It
also allows for inclusion/exclusions of methods. It even futher allows
for modifying the priorities of certain cpc methods to better determine
the optimal cpc method.
This patch also contains XRC compile time disablement (per Jeff's
patch).
At a high level, the cpc selections works by walking through each cpc
and allowing it to test to see if it is permissable to run on this
mpirun. It returns a priority if it is permissable or a -1 if not. All
of the cpc names and priorities are rolled into a string. This string
is then encapsulated in a message and passed around all the ompi
processes. Once received and unpacked, the list received is compared
to a local copy of the list. The connection method is chosen by
comparing the lists passed around to all nodes via modex with the list
generated locally. Any non-negative number is a potentially valid
connection method. The method below of determining the optimal
connection method is to take the cross-section of the two lists. The
highest single value (and the other side being non-negative) is selected
as the cpc method.
svn merge -r 16948:17128 https://svn.open-mpi.org/svn/ompi/tmp-public/openib-cpc/ .
This commit was SVN r17138.
header as double-word aligned and prevents bus errors on SPARC
based servers. This is part of fix for #1148.
Refs trac:1148
This commit was SVN r17090.
The following Trac tickets were found above:
Ticket 1148 --> https://svn.open-mpi.org/trac/ompi/ticket/1148