1
1

289 Коммитов

Автор SHA1 Сообщение Дата
George Bosilca
778ba0317e Revert "Minor cleanups."
This reverts commit 3b4da0bda4c3a29e4b20639825ce1642df157b2a.
2015-02-26 17:53:58 -05:00
George Bosilca
5c3ce3a737 Merge branch 'master' of github.com:open-mpi/ompi 2015-02-26 17:10:18 -05:00
Nathan Hjelm
855d422e62 Merge pull request #408 from hjelmn/btl_3_0_mod
btl: expose local registration thresholds
2015-02-26 12:57:43 -07:00
Mike Dubman
dbc15009b6 Merge pull request #415 from alinask/topic/fix_fork_support_flow
Fix the calls to ibv_fork_init and remove btl_openib_want_fork_support.
2015-02-26 21:50:11 +02:00
Rolf vandeVaart
bbdcf9ff33 Fix missing cast change from opal_free_list_changes. Fixes warning 2015-02-26 11:24:49 -05:00
Gilles Gouaillardet
b888768ca3 btl/scif: fix a typo
this is likely a typo introduced by open-mpi/ompi@5f1254d710
@hjelmn could you please double check this ?
2015-02-26 13:45:51 +09:00
Nathan Hjelm
8a17e69067 btl/ugni: fix typos introduced by free list update 2015-02-25 12:43:05 -07:00
George Bosilca
f3b58006c8 Merge branch 'master' of github.com:open-mpi/ompi 2015-02-25 12:01:35 -05:00
Jeff Squyres
f3c9354d4b usnic: restore compatibility with the v1.8 branch
Also include two other minor changes:

1. More C99-style member initialization in the component struct
1. Fix the BTL module member initialization to not be redundant
2015-02-25 05:37:51 -08:00
Alina Sklarevich
e4c4e7df5e Fix the calls to ibv_fork_init and remove btl_openib_want_fork_support.
In order to have an effect, ibv_fork_init should be called in the
beginning of the verbs initialization flow - before the calls to the
ibv_create_qp and ibv_create_cq verbs.
These functions are called from the oob/ud code and by the time the
other verbs components (btl openib, pml yalla, ...) call ibv_fork_init,
it's too late. This commit forces the call to ibv_fork_init (if it's
requested) right at the beginning of all the components that are using
verbs.
(ibv_fork_init() can be safely called multiple times)

This commit also removes the btl_openib_want_fork_support mca parameter
and adds a new mca parameter instead - opal_verbs_want_fork_support.
Through this new parameter, fork support may be requested for ALL
components.
The default value for this parameter is set to 1.

Before this commit the btl_openib_want_fork_support parameter didn't
provide fork support for the openib btl if its value was set to 1.
(because when openib called ibv_fork_init, it was already after the
calls to ibv_create_* in oob/ud and thereofre it failed).
2015-02-25 10:58:50 +02:00
Jeff Squyres
a85a392896 Merge pull request #422 from jsquyres/topic/coverity-fixes
Some Coverity fixes
2015-02-24 17:00:10 -05:00
Jeff Squyres
3cd36ab12a openib: fix double free
This was CID 1269989
2015-02-24 15:24:10 -05:00
Jeff Squyres
5894f0c1f2 usnic: update to new mpool API
NOTE: Have not added cross-compatibility with v1.8 branch yet
2015-02-24 10:05:45 -07:00
Nathan Hjelm
5f1254d710 Update code base to use the new opal_free_list_t
Use of the old ompi_free_list_t and ompi_free_list_item_t is
deprecated. These classes will be removed in a future commit.

This commit updates the entire code base to use opal_free_list_t and
opal_free_list_item_t.

Notes:

OMPI_FREE_LIST_*_MT -> opal_free_list_* (uses opal_using_threads ())

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-24 10:05:45 -07:00
Nathan Hjelm
ed78553512 Update opal_free_list_t usage to reflect new class interface.
Please verify your components have been updated correctly. Keep in
mind that in terms of threading:

OPAL_FREE_LIST_GET -> opal_free_list_get_st
OPAL_FREE_LIST_RETURN -> opal_free_list_return_st

I used the opal_using_threads() variant anytime it appeared multiple
threads could be operating on the free list. If this is not the case
update to _st. If multiple threads are always in use change to _mt.
2015-02-24 10:05:44 -07:00
Howard Pritchard
bf89131f9e add owner files to opa/ompi/orte mca directories
This commit adds an owner file in each of the component directories
for each framework.  This allows for a simple script to parse
the contents of the files and generate, among other things, tables
to be used on the project's wiki page.  Currently there are two
"fields" in the file, an owner and a status.  A tool to parse
the files and generate tables for the wiki page will be added
in a subsequent commit.
2015-02-22 15:10:23 -07:00
George Bosilca
3b4da0bda4 Minor cleanups. 2015-02-21 16:36:29 -05:00
Nathan Hjelm
cc750b00a6 btl: export local registration thresholds
Some BTLs do not require local registration for some rdma
transactions. For example: inline put on openib, fma put on ugni. This
commit adds code to expose the local registration thresholds to BTL
users. Optimized code can take advantage of this information to
improve rdma performance.
2015-02-19 16:13:37 -07:00
Jeff Squyres
6098b84294 libfabric: pass the appropriate LDFLAGS to libfabric components
When compiling against an external libfabric, ensure to also pass the
appropriate -L flags so that the compiler/linker can find it.
2015-02-19 05:35:38 -08:00
Gilles Gouaillardet
28714b60cb btl/sm: fix misc errors
as reported by Coverity as CIDs 711636 and 1269847
2015-02-18 17:05:19 +09:00
Gilles Gouaillardet
da7ffb6448 btl/vader: fix memory leak
as reported by Coverity with CID 1269904
2015-02-16 13:51:05 +09:00
George Bosilca
a7a4d6335e Various cleanups. 2015-02-15 11:39:09 -05:00
George Bosilca
a4aa74d4b9 Fix the SM BTL. 2015-02-15 11:38:45 -05:00
George Bosilca
84994c7438 This comment seems to contradict with the compilers opportunities to
optimize the unused data out.
2015-02-15 11:37:22 -05:00
Jeff Squyres
955d8b7525 usnic: adapt for new libfabric API 2015-02-13 14:44:23 -08:00
Nathan Hjelm
1162093d34 btl/scif: fix debug build
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:39 -07:00
Jeff Squyres
67ee1e6cf8 usnic: restore compatibilty between master and v1.8
Add the functions that changed between BTL 2.0 and 3.0 into compat.h
and compat.c:

* module.btl_prepare_src: the signature and body of this method
  changed between 2.0 and 3.0.  However, the functions that this
  method calls did *not* need to change, so they are copied over
  wholesale (with the exception that they no longer accept the unused
  `registration` parameter).
* module.btl_prepare_dst: this method does not exist in BTL 3.0.
* module.btl_put: the signature and body of this method changed
  between 2.0 and 3.0.
2015-02-13 11:46:38 -07:00
Jeff Squyres
ad841d7ba3 usnic: update to BTL 3.0 2015-02-13 11:46:38 -07:00
Jeff Squyres
0a5fd8e36a usnic: update README for new BTL 3.0 scheme details 2015-02-13 11:46:38 -07:00
Jeff Squyres
cf99f0c905 usnic: just add comments/explanations -- no code changes 2015-02-13 11:46:38 -07:00
Jeff Squyres
af61065b87 usnic: minor update of member field names 2015-02-13 11:46:38 -07:00
Jeff Squyres
8311428602 btl.h: whitespace cleanup
No code changes
2015-02-13 11:46:38 -07:00
Jeff Squyres
7971fd57f0 btl.h: add more description for reg/dereg functions 2015-02-13 11:46:38 -07:00
Nathan Hjelm
a3b739d117 btl/ugni: use pthread_join to wait on progress thread completion
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:38 -07:00
Nathan Hjelm
953efc3eb2 btl/openib: fix compilation issues with XRC
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:38 -07:00
Nathan Hjelm
a9763e123d add btl comment
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:38 -07:00
Nathan Hjelm
1e518504e4 btl/smcuda: update for BTL 3.0 interface 2015-02-13 11:46:37 -07:00
Nathan Hjelm
aba0675fe7 btl/vader: update for BTL 3.0 interface
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:37 -07:00
Nathan Hjelm
f8ac3fb1e8 btl/ugni: add support for atomic operations
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:37 -07:00
Nathan Hjelm
655604f509 btl/ugni: update for BTL 3.0 interface
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:37 -07:00
Nathan Hjelm
4972d97b8b btl/template: update for BTL 3.0 interface
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:37 -07:00
Nathan Hjelm
f241b6e0a7 btl/tcp: update for BTL 3.0 interface
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:36 -07:00
Nathan Hjelm
25176cad27 btl/sm: update for BTL 3.0 interface
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:36 -07:00
Nathan Hjelm
19abc19ad9 btl/self: update for BTL 3.0 interface
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:36 -07:00
Nathan Hjelm
f96d48a2e1 btl/scif: update for BTL 3.0 interface
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:36 -07:00
Nathan Hjelm
cf91156105 btl/openib: add atomic operation support
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:36 -07:00
Nathan Hjelm
74f1af4548 btl/openib: update for BTL 3.0 interface
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:36 -07:00
Nathan Hjelm
fc7397949c btl: require that btls handle descriptor = NULL in the btl_sendi function
The send inline optimization uses the btl_sendi function to achieve lower
latency and higher message rates. Before this commit BTLs were allowed to
assume the descriptor was non-NULL and were expected to return a valid
descriptor if the send could not be completed using btl_sendi. This
behavior was fine until the usage of btl_sendi was changed in ob1. This
commit allows the caller to specify NULL for the descriptor. The affected
btls have been updated to handle this case.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:36 -07:00
Nathan Hjelm
593f97ae92 btl: add support for 64-bit atomic operations
This commit adds an interface for btl's to export support for 64-bit atomic
operations on integers. BTL's that can support atomic operations should
implement these functions and set the appropriate btl_flags and btl_atomic_flags.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:36 -07:00
Nathan Hjelm
f8e15ca83d Update the interface to provide a cleaner interface for RDMA operations.
The old BTL interface provided support for RDMA through the use of
the btl_prepare_src and btl_prepare_dst functions. These functions were
expected to prepare as much of the user buffer as possible for the RDMA
operation and return a descriptor. The descriptor contained segment
information on the prepared region. The btl user could then pass the
RDMA segment information to a remote peer. Once the peer received that
information it then packed it into a similar descriptor on the other
side that could then be passed into a single btl_put or btl_get
operation.

Changes:

 - Added functions to register and deregister memory regions with the
   btl. If no registration is needed a btl should set these function
   pointers to NULL. These function take over for btl_prepare_src/dst
   and btl_free for RDMA operations. The caller should specify the
   maximum permissions needed on the memory.

 - Changed the function signatures for both btl_put and btl_get. In
   place of a prepared descriptor the caller should provide the source
   and destination addresses and registration handles as well as a
   new callback function. The callback will be provided with the local
   address and registration handle, callback context, callback data, and
   status. See mca_btl_base_rdma_completion_fn_t in btl.h.

 - Added a new btl constraint: MCA_BTL_REG_HANDLE_MAX_SIZE. This
   value specifies the maximum size of any btl's registration handle.

 - Removed the btl_prepare_dst function. This reflects the fact that
   RDMA operations no longer depend on "prepared" descriptors.

 - Removed the btl_seg_size member. There is no need to btl's to
   subclass the mca_btl_base_segment_t class anymore.

 - Expose the btl's put/get limitations with new struct members:
   btl_put_limit, btl_put_alignment, btl_get_limit, btl_get_alignment.

 - Remove the mca_mpool_base_registration_t argument from the btl_prepare_src
   function. The argument was intended to support RDMA operations and is no
   longer necessary.

 - Remove des_remote/des_remote_count from the mca_btl_base_descriptor_t
   structure. This structure member was originally used to specify the remote
   segment for RDMA operations. Since the new btl interface no longer uses
   desriptors for RDMA this member no longer has a purpose. In addition
   to removing these members the local segment structure fields have been
   renamed to from des_local/des_local_count to des_segments/des_segment_count.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-13 11:46:36 -07:00