|
Packit Service |
c5cf8c |
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
|
|
Packit Service |
c5cf8c |
/*
|
|
Packit Service |
c5cf8c |
* (C) 2006 by Argonne National Laboratory.
|
|
Packit Service |
c5cf8c |
* See COPYRIGHT in top-level directory.
|
|
Packit Service |
c5cf8c |
*
|
|
Packit Service |
c5cf8c |
* Portions of this code were written by Intel Corporation.
|
|
Packit Service |
c5cf8c |
* Copyright (C) 2011-2016 Intel Corporation. Intel provides this material
|
|
Packit Service |
c5cf8c |
* to Argonne National Laboratory subject to Software Grant and Corporate
|
|
Packit Service |
c5cf8c |
* Contributor License Agreement dated February 8, 2012.
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
#ifndef CH4_TYPES_H_INCLUDED
|
|
Packit Service |
c5cf8c |
#define CH4_TYPES_H_INCLUDED
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#include <mpidimpl.h>
|
|
Packit Service |
c5cf8c |
#include <stdio.h>
|
|
Packit Service |
c5cf8c |
#include "mpir_cvars.h"
|
|
Packit Service |
c5cf8c |
#include "ch4i_workq_types.h"
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* Macros and inlines */
|
|
Packit Service |
c5cf8c |
#define MPIDI_CH4U_MAP_NOT_FOUND ((void*)(-1UL))
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#define MAX_PROGRESS_HOOKS 4
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* VNI attributes */
|
|
Packit Service |
c5cf8c |
enum {
|
|
Packit Service |
c5cf8c |
MPIDI_VNI_TX = 0x1, /* Can send */
|
|
Packit Service |
c5cf8c |
MPIDI_VNI_RX = 0x2, /* Can receive */
|
|
Packit Service |
c5cf8c |
};
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#define MPIDI_CH4I_BUF_POOL_NUM (1024)
|
|
Packit Service |
c5cf8c |
#define MPIDI_CH4I_BUF_POOL_SZ (256)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef int (*progress_func_ptr_t) (int *made_progress);
|
|
Packit Service |
c5cf8c |
typedef struct progress_hook_slot {
|
|
Packit Service |
c5cf8c |
progress_func_ptr_t func_ptr;
|
|
Packit Service |
c5cf8c |
int active;
|
|
Packit Service |
c5cf8c |
} progress_hook_slot_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* Flags for MPIDI_Progress_test
|
|
Packit Service |
c5cf8c |
*
|
|
Packit Service |
c5cf8c |
* Flags argument allows to control execution of different parts of progress function,
|
|
Packit Service |
c5cf8c |
* for aims of prioritization of different transports and reentrant-safety of progress call.
|
|
Packit Service |
c5cf8c |
*
|
|
Packit Service |
c5cf8c |
* MPIDI_PROGRESS_HOOKS - enables progress on progress hooks. Hooks may invoke upper-level logic internaly,
|
|
Packit Service |
c5cf8c |
* that's why MPIDI_Progress_test call with MPIDI_PROGRESS_HOOKS set isn't reentrant safe, and shouldn't be called from netmod's fallback logic.
|
|
Packit Service |
c5cf8c |
* MPIDI_PROGRESS_NM and MPIDI_PROGRESS_SHM enables progress on transports only, and guarantee reentrant-safety.
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
#define MPIDI_PROGRESS_HOOKS (1)
|
|
Packit Service |
c5cf8c |
#define MPIDI_PROGRESS_NM (1<<1)
|
|
Packit Service |
c5cf8c |
#define MPIDI_PROGRESS_SHM (1<<2)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#define MPIDI_PROGRESS_ALL (MPIDI_PROGRESS_HOOKS|MPIDI_PROGRESS_NM|MPIDI_PROGRESS_SHM)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
enum {
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_SEND = 0, /* Eager send */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_SEND_LONG_REQ, /* Rendezvous send RTS (request to send) */
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_SEND_LONG_ACK, /* Rendezvous send CTS (clear to send) */
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_SEND_LONG_LMT, /* Rendezvous send LMT */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_SSEND_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_SSEND_ACK,
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_PUT_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_PUT_ACK,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_PUT_IOV_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_PUT_DAT_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_PUT_IOV_ACK,
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_GET_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_GET_ACK,
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_ACC_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_ACC_ACK,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_ACC_IOV_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_ACC_DAT_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_ACC_IOV_ACK,
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_GET_ACC_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_GET_ACC_ACK,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_GET_ACC_IOV_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_GET_ACC_DAT_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_GET_ACC_IOV_ACK,
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_CSWAP_REQ,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_CSWAP_ACK,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_FETCH_OP,
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_WIN_COMPLETE,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_WIN_POST,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_WIN_LOCK,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_WIN_LOCK_ACK,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_WIN_UNLOCK,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_WIN_UNLOCK_ACK,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_WIN_LOCKALL,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_WIN_LOCKALL_ACK,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_WIN_UNLOCKALL,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_WIN_UNLOCKALL_ACK,
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_COMM_ABORT
|
|
Packit Service |
c5cf8c |
};
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
enum {
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_EPOTYPE_NONE = 0, /**< No epoch in affect */
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_EPOTYPE_LOCK = 1, /**< MPI_Win_lock access epoch */
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_EPOTYPE_START = 2, /**< MPI_Win_start access epoch */
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_EPOTYPE_POST = 3, /**< MPI_Win_post exposure epoch */
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_EPOTYPE_FENCE = 4, /**< MPI_Win_fence access/exposure epoch */
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_EPOTYPE_REFENCE = 5, /**< MPI_Win_fence possible access/exposure epoch */
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_EPOTYPE_LOCK_ALL = 6 /**< MPI_Win_lock_all access epoch */
|
|
Packit Service |
c5cf8c |
};
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* Enum for calling types between netmod and shm */
|
|
Packit Service |
c5cf8c |
enum {
|
|
Packit Service |
c5cf8c |
MPIDI_CH4R_NETMOD = 0,
|
|
Packit Service |
c5cf8c |
MPIDI_CH4R_SHM = 1
|
|
Packit Service |
c5cf8c |
};
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_hdr_t {
|
|
Packit Service |
c5cf8c |
int src_rank;
|
|
Packit Service |
c5cf8c |
int tag;
|
|
Packit Service |
c5cf8c |
MPIR_Context_id_t context_id;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_hdr_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_send_long_req_msg_t {
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_hdr_t hdr;
|
|
Packit Service |
c5cf8c |
size_t data_sz; /* Message size in bytes */
|
|
Packit Service |
c5cf8c |
uint64_t sreq_ptr; /* Pointer value of the request object at the sender side */
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_send_long_req_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_send_long_ack_msg_t {
|
|
Packit Service |
c5cf8c |
uint64_t sreq_ptr;
|
|
Packit Service |
c5cf8c |
uint64_t rreq_ptr;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_send_long_ack_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_send_long_lmt_msg_t {
|
|
Packit Service |
c5cf8c |
uint64_t rreq_ptr;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_send_long_lmt_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_ssend_req_msg_t {
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_hdr_t hdr;
|
|
Packit Service |
c5cf8c |
uint64_t sreq_ptr;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_ssend_req_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_ssend_ack_msg_t {
|
|
Packit Service |
c5cf8c |
uint64_t sreq_ptr;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_ssend_ack_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_win_cntrl_msg_t {
|
|
Packit Service |
c5cf8c |
uint64_t win_id;
|
|
Packit Service |
c5cf8c |
uint32_t origin_rank;
|
|
Packit Service |
c5cf8c |
int16_t lock_type;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_win_cntrl_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_put_msg_t {
|
|
Packit Service |
c5cf8c |
int src_rank;
|
|
Packit Service |
c5cf8c |
uint64_t win_id;
|
|
Packit Service |
c5cf8c |
uint64_t preq_ptr;
|
|
Packit Service |
c5cf8c |
MPI_Aint target_disp;
|
|
Packit Service |
c5cf8c |
uint64_t count;
|
|
Packit Service |
c5cf8c |
MPI_Datatype datatype;
|
|
Packit Service |
c5cf8c |
int n_iov;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_put_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_put_iov_ack_msg_t {
|
|
Packit Service |
c5cf8c |
int src_rank;
|
|
Packit Service |
c5cf8c |
uint64_t target_preq_ptr;
|
|
Packit Service |
c5cf8c |
uint64_t origin_preq_ptr;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_put_iov_ack_msg_t;
|
|
Packit Service |
c5cf8c |
typedef MPIDI_CH4U_put_iov_ack_msg_t MPIDI_CH4U_acc_iov_ack_msg_t;
|
|
Packit Service |
c5cf8c |
typedef MPIDI_CH4U_put_iov_ack_msg_t MPIDI_CH4U_get_acc_iov_ack_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_put_dat_msg_t {
|
|
Packit Service |
c5cf8c |
uint64_t preq_ptr;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_put_dat_msg_t;
|
|
Packit Service |
c5cf8c |
typedef MPIDI_CH4U_put_dat_msg_t MPIDI_CH4U_acc_dat_msg_t;
|
|
Packit Service |
c5cf8c |
typedef MPIDI_CH4U_put_dat_msg_t MPIDI_CH4U_get_acc_dat_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_put_ack_msg_t {
|
|
Packit Service |
c5cf8c |
uint64_t preq_ptr;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_put_ack_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_get_req_msg_t {
|
|
Packit Service |
c5cf8c |
int src_rank;
|
|
Packit Service |
c5cf8c |
uint64_t win_id;
|
|
Packit Service |
c5cf8c |
uint64_t greq_ptr;
|
|
Packit Service |
c5cf8c |
MPI_Aint target_disp;
|
|
Packit Service |
c5cf8c |
uint64_t count;
|
|
Packit Service |
c5cf8c |
MPI_Datatype datatype;
|
|
Packit Service |
c5cf8c |
int n_iov;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_get_req_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_get_ack_msg_t {
|
|
Packit Service |
c5cf8c |
uint64_t greq_ptr;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_get_ack_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_cswap_req_msg_t {
|
|
Packit Service |
c5cf8c |
int src_rank;
|
|
Packit Service |
c5cf8c |
uint64_t win_id;
|
|
Packit Service |
c5cf8c |
uint64_t req_ptr;
|
|
Packit Service |
c5cf8c |
MPI_Aint target_disp;
|
|
Packit Service |
c5cf8c |
MPI_Datatype datatype;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_cswap_req_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_cswap_ack_msg_t {
|
|
Packit Service |
c5cf8c |
uint64_t req_ptr;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_cswap_ack_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_acc_req_msg_t {
|
|
Packit Service |
c5cf8c |
int src_rank;
|
|
Packit Service |
c5cf8c |
uint64_t win_id;
|
|
Packit Service |
c5cf8c |
uint64_t req_ptr;
|
|
Packit Service |
c5cf8c |
int origin_count;
|
|
Packit Service |
c5cf8c |
MPI_Datatype origin_datatype;
|
|
Packit Service |
c5cf8c |
int target_count;
|
|
Packit Service |
c5cf8c |
MPI_Datatype target_datatype;
|
|
Packit Service |
c5cf8c |
MPI_Op op;
|
|
Packit Service |
c5cf8c |
MPI_Aint target_disp;
|
|
Packit Service |
c5cf8c |
uint64_t result_data_sz;
|
|
Packit Service |
c5cf8c |
int n_iov;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_acc_req_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_acc_req_msg_t MPIDI_CH4U_get_acc_req_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_acc_ack_msg_t {
|
|
Packit Service |
c5cf8c |
uint64_t req_ptr;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_acc_ack_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef MPIDI_CH4U_acc_ack_msg_t MPIDI_CH4U_get_acc_ack_msg_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_comm_req_list_t {
|
|
Packit Service |
c5cf8c |
MPIR_Comm *comm[2][4];
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_rreq_t *uelist[2][4];
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_comm_req_list_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIU_buf_pool_t {
|
|
Packit Service |
c5cf8c |
int size;
|
|
Packit Service |
c5cf8c |
int num;
|
|
Packit Service |
c5cf8c |
void *memory_region;
|
|
Packit Service |
c5cf8c |
struct MPIU_buf_pool_t *next;
|
|
Packit Service |
c5cf8c |
struct MPIU_buf_t *head;
|
|
Packit Service |
c5cf8c |
MPID_Thread_mutex_t lock;
|
|
Packit Service |
c5cf8c |
} MPIU_buf_pool_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIU_buf_t {
|
|
Packit Service |
c5cf8c |
struct MPIU_buf_t *next;
|
|
Packit Service |
c5cf8c |
MPIU_buf_pool_t *pool;
|
|
Packit Service |
c5cf8c |
char data[];
|
|
Packit Service |
c5cf8c |
} MPIU_buf_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct {
|
|
Packit Service |
c5cf8c |
int mmapped_size;
|
|
Packit Service |
c5cf8c |
int max_n_avts;
|
|
Packit Service |
c5cf8c |
int n_avts;
|
|
Packit Service |
c5cf8c |
int next_avtid;
|
|
Packit Service |
c5cf8c |
int *free_avtid;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4_avt_manager;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct {
|
|
Packit Service |
c5cf8c |
uint64_t key;
|
|
Packit Service |
c5cf8c |
void *value;
|
|
Packit Service |
c5cf8c |
UT_hash_handle hh; /* makes this structure hashable */
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_map_entry_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4U_map_t {
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_map_entry_t *head;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4U_map_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct {
|
|
Packit Service |
c5cf8c |
unsigned mt_model;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4_configurations_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct MPIDI_CH4_Global_t {
|
|
Packit Service |
c5cf8c |
MPIR_Request *request_test;
|
|
Packit Service |
c5cf8c |
MPIR_Comm *comm_test;
|
|
Packit Service |
c5cf8c |
int pname_set;
|
|
Packit Service |
c5cf8c |
int pname_len;
|
|
Packit Service |
c5cf8c |
char pname[MPI_MAX_PROCESSOR_NAME];
|
|
Packit Service |
c5cf8c |
int is_initialized;
|
|
Packit Service |
c5cf8c |
MPIDI_CH4_avt_manager avt_mgr;
|
|
Packit Service |
c5cf8c |
int is_ch4u_initialized;
|
|
Packit Service |
c5cf8c |
int **node_map, max_node_id;
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_comm_req_list_t *comm_req_lists;
|
|
Packit Service |
c5cf8c |
OPA_int_t active_progress_hooks;
|
|
Packit Service |
c5cf8c |
MPIR_Commops MPIR_Comm_fns_store;
|
|
Packit Service |
c5cf8c |
progress_hook_slot_t progress_hooks[MAX_PROGRESS_HOOKS];
|
|
Packit Service |
c5cf8c |
MPID_Thread_mutex_t m[3];
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_map_t *win_map;
|
|
Packit Service |
c5cf8c |
char *jobid;
|
|
Packit Service |
c5cf8c |
#ifndef MPIDI_CH4U_USE_PER_COMM_QUEUE
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_rreq_t *posted_list;
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_rreq_t *unexp_list;
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
MPIDI_CH4U_req_ext_t *cmpl_list;
|
|
Packit Service |
c5cf8c |
OPA_int_t exp_seq_no;
|
|
Packit Service |
c5cf8c |
OPA_int_t nxt_seq_no;
|
|
Packit Service |
c5cf8c |
MPIU_buf_pool_t *buf_pool;
|
|
Packit Service |
c5cf8c |
#ifdef HAVE_SIGNAL
|
|
Packit Service |
c5cf8c |
void (*prev_sighandler) (int);
|
|
Packit Service |
c5cf8c |
volatile int sigusr1_count;
|
|
Packit Service |
c5cf8c |
int my_sigusr1_count;
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
OPA_int_t progress_count;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPID_Thread_mutex_t vni_lock;
|
|
Packit Service |
c5cf8c |
#if defined(MPIDI_CH4_USE_WORK_QUEUES)
|
|
Packit Service |
c5cf8c |
MPIDI_workq_t workqueue;
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
MPIDI_CH4_configurations_t settings;
|
|
Packit Service |
c5cf8c |
} MPIDI_CH4_Global_t;
|
|
Packit Service |
c5cf8c |
extern MPIDI_CH4_Global_t MPIDI_CH4_Global;
|
|
Packit Service |
c5cf8c |
#ifdef MPL_USE_DBG_LOGGING
|
|
Packit Service |
c5cf8c |
extern MPL_dbg_class MPIDI_CH4_DBG_GENERAL;
|
|
Packit Service |
c5cf8c |
extern MPL_dbg_class MPIDI_CH4_DBG_MAP;
|
|
Packit Service |
c5cf8c |
extern MPL_dbg_class MPIDI_CH4_DBG_COMM;
|
|
Packit Service |
c5cf8c |
extern MPL_dbg_class MPIDI_CH4_DBG_MEMORY;
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
#define MPIDI_CH4I_THREAD_PROGRESS_MUTEX MPIDI_CH4_Global.m[0]
|
|
Packit Service |
c5cf8c |
#define MPIDI_CH4I_THREAD_PROGRESS_HOOK_MUTEX MPIDI_CH4_Global.m[1]
|
|
Packit Service |
c5cf8c |
#define MPIDI_CH4I_THREAD_UTIL_MUTEX MPIDI_CH4_Global.m[2]
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#endif /* CH4_TYPES_H_INCLUDED */
|