Skip to content

Commit 677c7a5

Browse files
committed
Fix generation of event_get_info displacements and related copy_data functionality
Signed-off-by: Chris Chambreau <[email protected]>
1 parent ac79916 commit 677c7a5

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

ompi/mpi/tool/event_get_info.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ int MPI_T_event_get_info (int event_index, char *name, int *name_len,
106106

107107
if (array_of_displacements) {
108108
for (int i = 0 ; i < max_datatypes ; i++) {
109-
array_of_displacements[i] = (MPI_Aint) event->event_offsets[i];
109+
array_of_displacements[i] = (MPI_Aint) current_displacement;
110+
current_displacement += event->event_datatypes[i]->size;
110111
}
111112
}
112113

opal/mca/base/mca_base_event.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -612,8 +612,14 @@ int mca_base_event_read (mca_base_raised_event_t *revent, unsigned int element_i
612612
void mca_base_event_copy (mca_base_raised_event_t *revent, void *buffer)
613613
{
614614
mca_base_event_t *event = revent->re_event;
615+
void *buffer_ptr = buffer;
615616

616-
memcpy (buffer, revent->re_data, event->event_extent);
617+
for (size_t i = 0 ; i < event->event_datatype_count ; ++i) {
618+
if (buffer) {
619+
memcpy (buffer_ptr, revent->re_data + event->event_offsets[i], event->event_datatypes[i]->size);
620+
buffer_ptr += event->event_datatypes[i]->size;
621+
}
622+
}
617623
}
618624

619625
int mca_base_event_read_some (mca_base_raised_event_t *revent, void *array_of_buffers[])

0 commit comments

Comments
 (0)