Skip to content

Commit f0313af

Browse files
hjelmnkingshuk00
authored andcommitted
Modify PERUSE code to implement MPI_T Events based on MPI 4.0 proposal.
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov> Signed-off-by: Kingshuk Haldar <kingshuk.haldar@hlrs.de>
1 parent 77728ef commit f0313af

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+2156
-273
lines changed

ompi/include/mpi.h.in

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -455,8 +455,8 @@ typedef struct ompi_mpit_cvar_handle_t *MPI_T_cvar_handle;
455455
typedef struct mca_base_pvar_handle_t *MPI_T_pvar_handle;
456456
typedef struct mca_base_pvar_session_t *MPI_T_pvar_session;
457457
typedef struct ompi_instance_t *MPI_Session;
458-
typedef unsigned long *MPI_T_event_instance;
459-
typedef unsigned long *MPI_T_event_registration;
458+
typedef struct mca_base_raised_event_t *MPI_T_event_instance;
459+
typedef struct mca_base_event_registration_t *MPI_T_event_registration;
460460

461461
/*
462462
* MPI_Status
@@ -922,39 +922,32 @@ enum {
922922

923923
/*
924924
* MPIT callback safety levels
925-
*
926-
* Values are set in configure.ac for consistency with mca_base_event.h
927925
*/
928-
#undef OPAL_MCA_BASE_CB_REQUIRE_NONE
929-
#undef OPAL_MCA_BASE_CB_REQUIRE_MPI_RESTRICTED
930-
#undef OPAL_MCA_BASE_CB_REQUIRE_THREAD_SAFE
931-
#undef OPAL_MCA_BASE_CB_REQUIRE_ASYNC_SIGNAL_SAFE
932926
typedef enum {
933-
MPI_T_CB_REQUIRE_NONE = OPAL_MCA_BASE_CB_REQUIRE_NONE,
934-
MPI_T_CB_REQUIRE_MPI_RESTRICTED = OPAL_MCA_BASE_CB_REQUIRE_MPI_RESTRICTED,
935-
MPI_T_CB_REQUIRE_THREAD_SAFE = OPAL_MCA_BASE_CB_REQUIRE_THREAD_SAFE,
936-
MPI_T_CB_REQUIRE_ASYNC_SIGNAL_SAFE = OPAL_MCA_BASE_CB_REQUIRE_ASYNC_SIGNAL_SAFE
927+
MPI_T_CB_REQUIRE_NONE,
928+
MPI_T_CB_REQUIRE_MPI_RESTRICTED,
929+
MPI_T_CB_REQUIRE_THREAD_SAFE,
930+
MPI_T_CB_REQUIRE_ASYNC_SIGNAL_SAFE
937931
} MPI_T_cb_safety;
938932

939933
/*
940934
* MPIT source ordering
941935
*/
942-
enum ompi_mpi_t_source_order_t {
936+
enum ompi_mpi_t_order_t {
943937
MPI_T_ORDERED,
944938
MPI_T_UNORDERED,
945939
};
946940

947-
typedef enum ompi_mpi_t_source_order_t MPI_T_source_order;
941+
typedef enum ompi_mpi_t_order_t MPI_T_order;
948942

949943
/*
950944
* MPI Tool event functions
951945
*/
952946
typedef void (*MPI_T_event_free_cb_function) (MPI_T_event_registration handle,
953947
MPI_T_cb_safety cb_safety,
954948
void *user_data);
955-
typedef void (*MPI_T_event_dropped_cb_function) (MPI_Count count,
949+
typedef void (*MPI_T_event_dropped_cb_function) (int count,
956950
MPI_T_event_registration handle,
957-
int source_index,
958951
MPI_T_cb_safety cb_safety,
959952
void *user_data);
960953
typedef void (*MPI_T_event_cb_function) (MPI_T_event_instance event,
@@ -3800,7 +3793,7 @@ OMPI_DECLSPEC int PMPI_T_event_get_num (int *num_events);
38003793
OMPI_DECLSPEC int PMPI_T_event_get_info (int event_index, char *name, int *name_len,
38013794
int *verbosity, MPI_Datatype *array_of_datatypes,
38023795
MPI_Aint *array_of_displacements, int *num_elements,
3803-
MPI_T_enum *enumtype, MPI_Info *info,
3796+
MPI_Aint *extent, MPI_T_enum *enumtype, MPI_Info *info,
38043797
char *desc, int *desc_len, int *bind);
38053798
OMPI_DECLSPEC int PMPI_T_event_get_index (const char *name, int *event_index);
38063799
OMPI_DECLSPEC int PMPI_T_event_handle_alloc (int event_index, void *obj_handle,
@@ -3816,7 +3809,6 @@ OMPI_DECLSPEC int PMPI_T_event_callback_set_info (MPI_T_event_registration even
38163809
OMPI_DECLSPEC int PMPI_T_event_callback_get_info (MPI_T_event_registration event_registration,
38173810
MPI_T_cb_safety cb_safety, MPI_Info *info_used);
38183811
OMPI_DECLSPEC int PMPI_T_event_handle_free (MPI_T_event_registration event_registration,
3819-
void *user_data,
38203812
MPI_T_event_free_cb_function free_cb_function);
38213813
OMPI_DECLSPEC int PMPI_T_event_set_dropped_handler (MPI_T_event_registration handle,
38223814
MPI_T_event_dropped_cb_function dropped_cb_function);
@@ -3826,7 +3818,7 @@ OMPI_DECLSPEC int PMPI_T_event_get_timestamp (MPI_T_event_instance event, MPI_C
38263818
OMPI_DECLSPEC int PMPI_T_event_get_source (MPI_T_event_instance event, int *source_index);
38273819
OMPI_DECLSPEC int PMPI_T_source_get_num (int *num_source);
38283820
OMPI_DECLSPEC int PMPI_T_source_get_info (int source_id, char *name, int *name_len,
3829-
char *desc, int *desc_len, MPI_T_source_order *ordering,
3821+
char *desc, int *desc_len, MPI_T_order *ordering,
38303822
MPI_Count *ticks_per_second, MPI_Count *max_timestamp,
38313823
MPI_Info *info);
38323824
OMPI_DECLSPEC int PMPI_T_source_get_timestamp (int source_id, MPI_Count *timestamp);
@@ -3916,7 +3908,7 @@ OMPI_DECLSPEC int MPI_T_event_get_num (int *num_events);
39163908
OMPI_DECLSPEC int MPI_T_event_get_info (int event_index, char *name, int *name_len,
39173909
int *verbosity, MPI_Datatype *array_of_datatypes,
39183910
MPI_Aint *array_of_displacements, int *num_elements,
3919-
MPI_T_enum *enumtype, MPI_Info *info,
3911+
MPI_Aint *extent, MPI_T_enum *enumtype, MPI_Info *info,
39203912
char *desc, int *desc_len, int *bind);
39213913
OMPI_DECLSPEC int MPI_T_event_get_index (const char *name, int *event_index);
39223914
OMPI_DECLSPEC int MPI_T_event_handle_alloc (int event_index, void *obj_handle,
@@ -3925,7 +3917,6 @@ OMPI_DECLSPEC int MPI_T_event_handle_set_info (MPI_T_event_registration event_r
39253917
OMPI_DECLSPEC int MPI_T_event_handle_get_info (MPI_T_event_registration event_registration,
39263918
MPI_Info *info_used);
39273919
OMPI_DECLSPEC int MPI_T_event_handle_free (MPI_T_event_registration event_registration,
3928-
void *user_data,
39293920
MPI_T_event_free_cb_function free_cb_function);
39303921
OMPI_DECLSPEC int MPI_T_event_register_callback (MPI_T_event_registration event_registration,
39313922
MPI_T_cb_safety cb_safety, MPI_Info info, void *user_data,
@@ -3943,7 +3934,7 @@ OMPI_DECLSPEC int MPI_T_event_get_source (MPI_T_event_instance event, int *sour
39433934

39443935
OMPI_DECLSPEC int MPI_T_source_get_num (int *num_source);
39453936
OMPI_DECLSPEC int MPI_T_source_get_info (int source_id, char *name, int *name_len,
3946-
char *desc, int *desc_len, MPI_T_source_order *ordering,
3937+
char *desc, int *desc_len, MPI_T_order *ordering,
39473938
MPI_Count *ticks_per_second, MPI_Count *max_timestamp,
39483939
MPI_Info *info);
39493940
OMPI_DECLSPEC int MPI_T_source_get_timestamp (int source_id, MPI_Count *timestamp);

ompi/mca/osc/rdma/osc_rdma.h

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,34 @@
5757
#include "osc_rdma_peer.h"
5858

5959
#include "opal_stdint.h"
60+
#include "opal/mca/base/mca_base_event.h"
61+
62+
enum {
63+
OMPI_OSC_RDMA_EVENT_LOCK_ACQUIRED,
64+
OMPI_OSC_RDMA_EVENT_LOCK_RELEASED,
65+
OMPI_OSC_RDMA_EVENT_PUT_STARTED,
66+
OMPI_OSC_RDMA_EVENT_PUT_COMPLETE,
67+
OMPI_OSC_RDMA_EVENT_GET_STARTED,
68+
OMPI_OSC_RDMA_EVENT_GET_COMPLETE,
69+
OMPI_OSC_RDMA_EVENT_FLUSH_STARTED,
70+
OMPI_OSC_RDMA_EVENT_FLUSH_COMPLETE,
71+
OMPI_OSC_RDMA_EVENT_PSCW_EXPOSE_START,
72+
OMPI_OSC_RDMA_EVENT_PSCW_EXPOSE_COMPLETE,
73+
OMPI_OSC_RDMA_EVENT_PSCW_ACCESS_START,
74+
OMPI_OSC_RDMA_EVENT_PSCW_ACCESS_COMPLETE,
75+
OMPI_OSC_RDMA_EVENT_FENCE,
76+
OMPI_OSC_RDMA_EVENT_MAX,
77+
};
78+
79+
struct mca_osc_rdma_rdma_event_t {
80+
int target;
81+
uint64_t address;
82+
uint64_t size;
83+
};
84+
85+
typedef struct mca_osc_rdma_rdma_event_t mca_osc_rdma_rdma_event_t;
86+
87+
extern mca_base_event_list_item_t mca_osc_rdma_events[];
6088

6189
#define RANK_ARRAY_COUNT(module) ((ompi_comm_size ((module)->comm) + (module)->node_count - 1) / (module)->node_count)
6290

ompi/mca/osc/rdma/osc_rdma_active_target.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,8 @@ static void ompi_osc_rdma_handle_post (ompi_osc_rdma_module_t *module, int rank,
182182
rank, (int) (npeers - state->num_post_msgs - 1));
183183
/* an atomic is not really necessary as this function is currently used but it doesn't hurt */
184184
ompi_osc_rdma_counter_add (&state->num_post_msgs, 1);
185+
mca_base_event_raise(mca_osc_rdma_events[OMPI_OSC_RDMA_EVENT_PSCW_ACCESS_START].event, MCA_BASE_CB_REQUIRE_ASYNC_SIGNAL_SAFE,
186+
module->win, NULL, &rank);
185187
return;
186188
}
187189
}
@@ -307,6 +309,9 @@ int ompi_osc_rdma_post_atomic (ompi_group_t *group, int mpi_assert, ompi_win_t *
307309
return OMPI_SUCCESS;
308310
}
309311

312+
mca_base_event_raise(mca_osc_rdma_events[OMPI_OSC_RDMA_EVENT_PSCW_EXPOSE_START].event, MCA_BASE_CB_REQUIRE_ASYNC_SIGNAL_SAFE,
313+
module->win, NULL, NULL);
314+
310315
/* translate group ranks into the communicator */
311316
peers = ompi_osc_rdma_get_peers (module, module->pw_group);
312317
if (OPAL_UNLIKELY(NULL == peers)) {
@@ -394,6 +399,8 @@ int ompi_osc_rdma_start_atomic (ompi_group_t *group, int mpi_assert, ompi_win_t
394399
"from %d processes", peer->rank, (int) (group_size - state->num_post_msgs - 1));
395400
opal_list_remove_item (&module->pending_posts, &pending_post->super);
396401
OBJ_RELEASE(pending_post);
402+
mca_base_event_raise(mca_osc_rdma_events[OMPI_OSC_RDMA_EVENT_PSCW_ACCESS_START].event, MCA_BASE_CB_REQUIRE_ASYNC_SIGNAL_SAFE,
403+
module->win, NULL, &peer->rank);
397404
ompi_osc_rdma_counter_add (&state->num_post_msgs, 1);
398405
break;
399406
}
@@ -464,6 +471,9 @@ int ompi_osc_rdma_complete_atomic (ompi_win_t *win)
464471
ompi_osc_rdma_peer_t *peer = peers[i];
465472
intptr_t target = (intptr_t) peer->state + offsetof (ompi_osc_rdma_state_t, num_complete_msgs);
466473

474+
mca_base_event_raise(mca_osc_rdma_events[OMPI_OSC_RDMA_EVENT_PSCW_ACCESS_COMPLETE].event, MCA_BASE_CB_REQUIRE_ASYNC_SIGNAL_SAFE,
475+
module->win, NULL, &peer->rank);
476+
467477
if (!ompi_osc_rdma_peer_local_state (peer)) {
468478
ret = ompi_osc_rdma_lock_btl_op (module, peer, target, MCA_BTL_ATOMIC_ADD, 1, true);
469479
assert (OMPI_SUCCESS == ret);
@@ -507,6 +517,9 @@ int ompi_osc_rdma_wait_atomic (ompi_win_t *win)
507517
opal_atomic_mb ();
508518
}
509519

520+
mca_base_event_raise(mca_osc_rdma_events[OMPI_OSC_RDMA_EVENT_PSCW_EXPOSE_COMPLETE].event, MCA_BASE_CB_REQUIRE_ASYNC_SIGNAL_SAFE,
521+
module->win, NULL, NULL);
522+
510523
OPAL_THREAD_LOCK(&module->lock);
511524
group = module->pw_group;
512525
module->pw_group = NULL;
@@ -556,6 +569,9 @@ int ompi_osc_rdma_test_atomic (ompi_win_t *win, int *flag)
556569
module->pw_group = NULL;
557570
OPAL_THREAD_UNLOCK(&(module->lock));
558571

572+
mca_base_event_raise(mca_osc_rdma_events[OMPI_OSC_RDMA_EVENT_PSCW_EXPOSE_COMPLETE].event, MCA_BASE_CB_REQUIRE_ASYNC_SIGNAL_SAFE,
573+
module->win, NULL, NULL);
574+
559575
OBJ_RELEASE(group);
560576

561577
OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "test complete. returning flag: true");

ompi/mca/osc/rdma/osc_rdma_comm.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
* $HEADER$
1616
*/
1717

18-
#include "ompi_config.h"
19-
18+
#include "osc_rdma.h"
2019
#include "osc_rdma_comm.h"
2120
#include "osc_rdma_frag.h"
2221
#include "osc_rdma_sync.h"
@@ -461,6 +460,9 @@ static int ompi_osc_rdma_put_real (ompi_osc_rdma_sync_t *sync, ompi_osc_rdma_pee
461460
OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "initiating btl put of %lu bytes to remote address %" PRIx64 ", sync "
462461
"object %p...", (unsigned long) size, target_address, (void *) sync);
463462

463+
mca_base_event_raise(mca_osc_rdma_events[OMPI_OSC_RDMA_EVENT_PUT_STARTED].event, MCA_BASE_CB_REQUIRE_ASYNC_SIGNAL_SAFE,
464+
module->win, NULL, &((mca_osc_rdma_rdma_event_t){.target = peer->rank, .address = target_address, .size = size}));
465+
464466
/* flag outstanding rma requests */
465467
ompi_osc_rdma_sync_rdma_inc (sync);
466468

@@ -725,6 +727,9 @@ static int ompi_osc_rdma_get_contig (ompi_osc_rdma_sync_t *sync, ompi_osc_rdma_p
725727
ompi_osc_rdma_sync_rdma_inc (sync);
726728
}
727729

730+
mca_base_event_raise(mca_osc_rdma_events[OMPI_OSC_RDMA_EVENT_GET_STARTED].event, MCA_BASE_CB_REQUIRE_ASYNC_SIGNAL_SAFE,
731+
module->win, NULL, &((mca_osc_rdma_rdma_event_t){.target = peer->rank, .address = source_address, .size = size}));
732+
728733
do {
729734
ret = ompi_osc_rdma_btl_get(module, peer->data_btl_index, peer->data_endpoint,
730735
ptr, aligned_source_base, local_handle, source_handle,

ompi/mca/osc/rdma/osc_rdma_component.c

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,87 @@ static const char* ompi_osc_rdma_set_no_lock_info(opal_infosubscriber_t *obj, co
8585

8686
static char *ompi_osc_rdma_full_connectivity_btls;
8787

88+
static char *mca_osc_rdma_target_element[] = {
89+
"target", NULL,
90+
};
91+
92+
static opal_datatype_t *mca_osc_rdma_rdma_event_types[] = {
93+
&ompi_mpi_int.dt.super, &ompi_mpi_int64_t.dt.super, &ompi_mpi_int64_t.dt.super,
94+
};
95+
96+
static char *mca_osc_rdma_rdma_event_elements[] = {
97+
"target", "address", "size_bytes", NULL,
98+
};
99+
100+
static unsigned long mca_osc_rdma_rdma_event_offsets[] = {
101+
offsetof (mca_osc_rdma_rdma_event_t, target), offsetof (mca_osc_rdma_rdma_event_t, address),
102+
offsetof (mca_osc_rdma_rdma_event_t, size),
103+
};
104+
105+
mca_base_event_list_item_t mca_osc_rdma_events[] = {
106+
[OMPI_OSC_RDMA_EVENT_LOCK_ACQUIRED] = {.name = "lock_acquired", .desc = "Passive-target lock aquired",
107+
.verbosity = OPAL_INFO_LVL_5, .datatypes = &(opal_datatype_t *) {&ompi_mpi_int.dt.super},
108+
.offsets = &(unsigned long) {0}, .num_datatypes = 1, .elements = mca_osc_rdma_target_element,
109+
.extent = sizeof (int), .bind = MCA_BASE_VAR_BIND_MPI_WIN},
110+
111+
[OMPI_OSC_RDMA_EVENT_LOCK_RELEASED] = {.name = "lock_released", .desc = "Passive-target lock required",
112+
.verbosity = OPAL_INFO_LVL_5, .datatypes = &(opal_datatype_t *) {&ompi_mpi_int.dt.super},
113+
.offsets = &(unsigned long) {0}, .num_datatypes = 1, .elements = mca_osc_rdma_target_element,
114+
.extent = sizeof (int), .bind = MCA_BASE_VAR_BIND_MPI_WIN},
115+
116+
[OMPI_OSC_RDMA_EVENT_PUT_STARTED] = {.name = "put_started", .desc = "Put started to target. Complete event may not exist.",
117+
.verbosity = OPAL_INFO_LVL_5, .datatypes = mca_osc_rdma_rdma_event_types,
118+
.offsets = mca_osc_rdma_rdma_event_offsets, .num_datatypes = 3,
119+
.elements = mca_osc_rdma_rdma_event_elements, .extent = 24, .bind = MCA_BASE_VAR_BIND_MPI_WIN},
120+
121+
[OMPI_OSC_RDMA_EVENT_PUT_COMPLETE] = {.name = "put_complete", .desc = "Put completed on target",
122+
.verbosity = OPAL_INFO_LVL_5, .datatypes = mca_osc_rdma_rdma_event_types,
123+
.offsets = mca_osc_rdma_rdma_event_offsets, .num_datatypes = 3,
124+
.elements = mca_osc_rdma_rdma_event_elements, .extent = 24, .bind = MCA_BASE_VAR_BIND_MPI_WIN},
125+
126+
[OMPI_OSC_RDMA_EVENT_GET_STARTED] = {.name = "get_started", .desc = "Put started to target. Complete event may not exist.",
127+
.verbosity = OPAL_INFO_LVL_5, .datatypes = mca_osc_rdma_rdma_event_types,
128+
.offsets = mca_osc_rdma_rdma_event_offsets, .num_datatypes = 3,
129+
.elements = mca_osc_rdma_rdma_event_elements, .extent = 24, .bind = MCA_BASE_VAR_BIND_MPI_WIN},
130+
131+
[OMPI_OSC_RDMA_EVENT_GET_COMPLETE] = {.name = "get_complete", .desc = "Put completed on target",
132+
.verbosity = OPAL_INFO_LVL_5, .datatypes = mca_osc_rdma_rdma_event_types,
133+
.offsets = mca_osc_rdma_rdma_event_offsets, .num_datatypes = 3,
134+
.elements = mca_osc_rdma_rdma_event_elements, .extent = 24, .bind = MCA_BASE_VAR_BIND_MPI_WIN},
135+
136+
[OMPI_OSC_RDMA_EVENT_FLUSH_STARTED] = {.name = "flush_started", .desc = "Flush started on target",
137+
.verbosity = OPAL_INFO_LVL_5, .datatypes = &(opal_datatype_t *) {&ompi_mpi_int.dt.super},
138+
.offsets = &(unsigned long) {0}, .num_datatypes = 1, .elements = mca_osc_rdma_target_element,
139+
.extent = sizeof (int), .bind = MCA_BASE_VAR_BIND_MPI_WIN},
140+
141+
[OMPI_OSC_RDMA_EVENT_FLUSH_COMPLETE] = {.name = "flush_complete", .desc = "Flush complete on target",
142+
.verbosity = OPAL_INFO_LVL_5, .datatypes = &(opal_datatype_t *) {&ompi_mpi_int.dt.super},
143+
.offsets = &(unsigned long) {0}, .num_datatypes = 1, .elements = mca_osc_rdma_target_element,
144+
.extent = sizeof (int), .bind = MCA_BASE_VAR_BIND_MPI_WIN},
145+
146+
[OMPI_OSC_RDMA_EVENT_PSCW_EXPOSE_START] = {.name = "pscw_expose_start", .desc = "PSWW exposure started",
147+
.verbosity = OPAL_INFO_LVL_5, .datatypes = &(opal_datatype_t *) {&ompi_mpi_int.dt.super},
148+
.offsets = &(unsigned long) {0}, .num_datatypes = 0, .elements = mca_osc_rdma_target_element,
149+
.extent = sizeof (int), .bind = MCA_BASE_VAR_BIND_MPI_WIN},
150+
151+
[OMPI_OSC_RDMA_EVENT_PSCW_EXPOSE_COMPLETE] = {.name = "pscw_expose_complete", .desc = "PSWW exposure complete",
152+
.verbosity = OPAL_INFO_LVL_5, .datatypes = &(opal_datatype_t *) {&ompi_mpi_int.dt.super},
153+
.offsets = &(unsigned long) {0}, .num_datatypes = 0, .elements = mca_osc_rdma_target_element,
154+
.extent = sizeof (int), .bind = MCA_BASE_VAR_BIND_MPI_WIN},
155+
156+
[OMPI_OSC_RDMA_EVENT_PSCW_ACCESS_START] = {.name = "pscw_access_start", .desc = "PSWW access epoch started",
157+
.verbosity = OPAL_INFO_LVL_5, .datatypes = &(opal_datatype_t *) {&ompi_mpi_int.dt.super},
158+
.offsets = &(unsigned long) {0}, .num_datatypes = 1, .elements = mca_osc_rdma_target_element,
159+
.extent = sizeof (int), .bind = MCA_BASE_VAR_BIND_MPI_WIN},
160+
161+
[OMPI_OSC_RDMA_EVENT_PSCW_ACCESS_COMPLETE] = {.name = "pscw_access_complete", .desc = "PSWW access epoch complete",
162+
.verbosity = OPAL_INFO_LVL_5, .datatypes = &(opal_datatype_t *) {&ompi_mpi_int.dt.super},
163+
.offsets = &(unsigned long) {0}, .num_datatypes = 1, .elements = mca_osc_rdma_target_element,
164+
.extent = sizeof (int), .bind = MCA_BASE_VAR_BIND_MPI_WIN},
165+
166+
[OMPI_OSC_RDMA_EVENT_FENCE] = {.name = "fence", .desc = "Fence called", .verbosity = OPAL_INFO_LVL_5, .bind = MCA_BASE_VAR_BIND_MPI_WIN},
167+
};
168+
88169
static const mca_base_var_enum_value_t ompi_osc_rdma_locking_modes[] = {
89170
{.value = OMPI_OSC_RDMA_LOCKING_TWO_LEVEL, .string = "two_level"},
90171
{.value = OMPI_OSC_RDMA_LOCKING_ON_DEMAND, .string = "on_demand"},
@@ -306,6 +387,8 @@ static int ompi_osc_rdma_component_register (void)
306387
ompi_osc_rdma_pvar_read, NULL, NULL,
307388
(void *) (intptr_t) offsetof (ompi_osc_rdma_module_t, get_retry_count));
308389

390+
mca_base_component_event_register_list (&mca_osc_rdma_component.super.osc_version, mca_osc_rdma_events, OMPI_OSC_RDMA_EVENT_MAX);
391+
309392
return OMPI_SUCCESS;
310393
}
311394

0 commit comments

Comments
 (0)