9947758d98
This commit adds initial ugni thread safety support. With this commit, sun thread tests (excepting MPI-2 RMA) pass with various process counts and threads/process. Also osu_latency_mt passes.
64 строки
2.1 KiB
C
64 строки
2.1 KiB
C
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
|
/*
|
|
* Copyright (c) 2011-2013 Los Alamos National Security, LLC. All rights
|
|
* reserved.
|
|
* Copyright (c) 2011 UT-Battelle, LLC. All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#if !defined(MPI_COMMON_UGNI_EP_H)
|
|
#define MPI_COMMON_UGNI_EP_H
|
|
|
|
struct opal_common_ugni_device_t;
|
|
|
|
struct opal_common_ugni_endpoint_t {
|
|
opal_object_t super;
|
|
uint32_t ep_rem_addr, ep_rem_id; /**< remote information */
|
|
gni_mem_handle_t ep_rem_irq_memhndl;
|
|
struct opal_common_ugni_device_t *dev; /**< device this endpoint is using */
|
|
};
|
|
typedef struct opal_common_ugni_endpoint_t opal_common_ugni_endpoint_t;
|
|
|
|
OBJ_CLASS_DECLARATION(opal_common_ugni_endpoint_t);
|
|
|
|
/*
|
|
* Get (and retain) a reference to an endpoint to peer_proc. This endpoint
|
|
* needs to be returned with opal_common_ugni_endpoint_return.
|
|
*
|
|
* @param[IN] dev uGNI device this endpoint should be bound to.
|
|
* @param[IN] peer_proc remote peer the endpoint will be connected to.
|
|
* @param[OUT] ep uGNI endpoint for the peer
|
|
*/
|
|
int opal_common_ugni_endpoint_for_proc (struct opal_common_ugni_device_t *dev, opal_proc_t *peer_proc,
|
|
opal_common_ugni_endpoint_t **ep);
|
|
|
|
/*
|
|
* Allocate and bind a uGNI endpoint handle to the remote peer.
|
|
*
|
|
* @param[IN] cep common endpoint
|
|
* @param[IN] cq completion queue
|
|
* @param[OUT] ep_handle uGNI endpoint handle
|
|
*/
|
|
int opal_common_ugni_ep_create (opal_common_ugni_endpoint_t *cep, gni_cq_handle_t cq, gni_ep_handle_t *ep_handle);
|
|
|
|
/*
|
|
* Unbind and free the uGNI endpoint handle.
|
|
*
|
|
* @param[IN] ep_handle uGNI endpoint handle to unbind and release
|
|
*/
|
|
int opal_common_ugni_ep_destroy (gni_ep_handle_t *ep_handle);
|
|
|
|
/*
|
|
* Return (and possibly free) a common endpoint. The endpoint may not be used
|
|
* once it is returned.
|
|
*
|
|
* @param[IN] ep uGNI endpoint to return
|
|
*/
|
|
void opal_common_ugni_endpoint_return (opal_common_ugni_endpoint_t *ep);
|
|
|
|
#endif /* MPI_COMMON_UGNI_EP_H */
|