1
1
openmpi/ompi/mca/btl/openib/btl_openib_async.h
Christopher Yeoh cc091f4979 Adds synchronisation between main thread and service thread in
btl_openib_connect_udcm when notifying not to listen to an fd to ensure
that the main thread does not continue until the service thread has
processed the message

Adds ability to send message to openib async thread to tell it to
ignore the ERR state on a specific QP. Adds this call to udcm_module_finalize
so when we set the error state on the QP it doesn't cause the 
openib async thread to abort the mpi program prematurely

Fixes trac:3161

This commit was SVN r27064.

The following Trac tickets were found above:
  Ticket 3161 --> https://svn.open-mpi.org/trac/ompi/ticket/3161
2012-08-16 03:56:21 +00:00

42 строки
1023 B
C

/*
* Copyright (c) 2007-2008 Mellanox Technologies. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*
* @file
*/
#ifndef MCA_BTL_OPENIB_ASYNC_H
#define MCA_BTL_OPENIB_ASYNC_H
#include "btl_openib_endpoint.h"
void* btl_openib_async_thread(void *one_hca);
void mca_btl_openib_load_apm(struct ibv_qp *qp, mca_btl_openib_endpoint_t *ep);
int btl_openib_async_command_done(int exp);
#if HAVE_XRC
void mca_btl_openib_load_apm_xrc_rcv(uint32_t qp_num, mca_btl_openib_endpoint_t *ep);
#endif
#define APM_ENABLED (0 != mca_btl_openib_component.apm_lmc || 0 != mca_btl_openib_component.apm_ports)
/*
* Command types for communicating with the async thread
*/
typedef enum {
OPENIB_ASYNC_CMD_FD_ADD,
OPENIB_ASYNC_CMD_FD_REMOVE,
OPENIB_ASYNC_IGNORE_QP_ERR,
OPENIB_ASYNC_THREAD_EXIT
} btl_openib_async_cmd_type_t;
typedef struct {
btl_openib_async_cmd_type_t a_cmd;
int fd;
struct ibv_qp *qp;
} mca_btl_openib_async_cmd_t;
#endif