Skip to content

Commit aa0d687

Browse files
committed
osc/portals4: Display an ouput message if ompi_osc_portals4_get_dt() or ompi_osc_portals4_get_op() returns an error
1 parent c418190 commit aa0d687

File tree

1 file changed

+61
-14
lines changed

1 file changed

+61
-14
lines changed

ompi/mca/osc/portals4/osc_portals4_comm.c

Lines changed: 61 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -384,10 +384,18 @@ ompi_osc_portals4_raccumulate(const void *origin_addr,
384384
0);
385385
} else {
386386
ret = ompi_osc_portals4_get_dt(origin_dt, &ptl_dt);
387-
if (OMPI_SUCCESS != ret) return ret;
387+
if (OMPI_SUCCESS != ret) {
388+
opal_output(ompi_osc_base_framework.framework_output,
389+
"MPI_Raccumulate: datatype is not currently supported");
390+
return OMPI_ERR_NOT_SUPPORTED;
391+
}
388392

389393
ret = ompi_osc_portals4_get_op(op, &ptl_op);
390-
if (OMPI_SUCCESS != ret) return ret;
394+
if (OMPI_SUCCESS != ret) {
395+
opal_output(ompi_osc_base_framework.framework_output,
396+
"MPI_Raccumulate: operation is not currently supported");
397+
return OMPI_ERR_NOT_SUPPORTED;
398+
}
391399

392400
ret = PtlAtomic(module->req_md_h,
393401
offset + sent,
@@ -476,7 +484,9 @@ ompi_osc_portals4_rget_accumulate(const void *origin_addr,
476484
ret = ompi_osc_portals4_get_dt(origin_dt, &ptl_dt);
477485
if (OMPI_SUCCESS != ret) {
478486
OMPI_OSC_PORTALS4_REQUEST_RETURN(request);
479-
return ret;
487+
opal_output(ompi_osc_base_framework.framework_output,
488+
"MPI_Rget_accumulate: datatype is not currently supported");
489+
return OMPI_ERR_NOT_SUPPORTED;
480490
}
481491
length *= origin_count;
482492

@@ -547,10 +557,18 @@ ompi_osc_portals4_rget_accumulate(const void *origin_addr,
547557
origin_md_offset = (ptl_size_t) origin_addr;
548558

549559
ret = ompi_osc_portals4_get_dt(origin_dt, &ptl_dt);
550-
if (OMPI_SUCCESS != ret) return ret;
560+
if (OMPI_SUCCESS != ret) {
561+
opal_output(ompi_osc_base_framework.framework_output,
562+
"MPI_Rget_accumulate: datatype is not currently supported");
563+
return OMPI_ERR_NOT_SUPPORTED;
564+
}
551565

552566
ret = ompi_osc_portals4_get_op(op, &ptl_op);
553-
if (OMPI_SUCCESS != ret) return ret;
567+
if (OMPI_SUCCESS != ret) {
568+
opal_output(ompi_osc_base_framework.framework_output,
569+
"MPI_Rget_accumulate: operation is not currently supported");
570+
return OMPI_ERR_NOT_SUPPORTED;
571+
}
554572

555573
do {
556574
size_t msg_length = MIN(module->fetch_atomic_max, length - sent);
@@ -760,10 +778,18 @@ ompi_osc_portals4_accumulate(const void *origin_addr,
760778
0);
761779
} else {
762780
ret = ompi_osc_portals4_get_dt(origin_dt, &ptl_dt);
763-
if (OMPI_SUCCESS != ret) return ret;
781+
if (OMPI_SUCCESS != ret) {
782+
opal_output(ompi_osc_base_framework.framework_output,
783+
"MPI_Accumulate: datatype is not currently supported");
784+
return OMPI_ERR_NOT_SUPPORTED;
785+
}
764786

765787
ret = ompi_osc_portals4_get_op(op, &ptl_op);
766-
if (OMPI_SUCCESS != ret) return ret;
788+
if (OMPI_SUCCESS != ret) {
789+
opal_output(ompi_osc_base_framework.framework_output,
790+
"MPI_Accumulate: operation is not currently supported");
791+
return OMPI_ERR_NOT_SUPPORTED;
792+
}
767793

768794
ret = PtlAtomic(module->md_h,
769795
md_offset + sent,
@@ -842,7 +868,9 @@ ompi_osc_portals4_get_accumulate(const void *origin_addr,
842868
}
843869
ret = ompi_osc_portals4_get_dt(origin_dt, &ptl_dt);
844870
if (OMPI_SUCCESS != ret) {
845-
return ret;
871+
opal_output(ompi_osc_base_framework.framework_output,
872+
"MPI_Get_accumulate: datatype is not currently supported");
873+
return OMPI_ERR_NOT_SUPPORTED;
846874
}
847875
length *= origin_count;
848876

@@ -909,11 +937,18 @@ ompi_osc_portals4_get_accumulate(const void *origin_addr,
909937
origin_md_offset = (ptl_size_t) origin_addr;
910938

911939
ret = ompi_osc_portals4_get_dt(origin_dt, &ptl_dt);
912-
if (OMPI_SUCCESS != ret) return ret;
940+
if (OMPI_SUCCESS != ret) {
941+
opal_output(ompi_osc_base_framework.framework_output,
942+
"MPI_Get_accumulate: datatype is not currently supported");
943+
return OMPI_ERR_NOT_SUPPORTED;
944+
}
913945

914946
ret = ompi_osc_portals4_get_op(op, &ptl_op);
915-
if (OMPI_SUCCESS != ret) return ret;
916-
947+
if (OMPI_SUCCESS != ret) {
948+
opal_output(ompi_osc_base_framework.framework_output,
949+
"MPI_Get_accumulate: operation is not currently supported");
950+
return OMPI_ERR_NOT_SUPPORTED;
951+
}
917952

918953
do {
919954
size_t msg_length = MIN(module->fetch_atomic_max, length - sent);
@@ -972,7 +1007,11 @@ ompi_osc_portals4_compare_and_swap(const void *origin_addr,
9721007
(unsigned long) win));
9731008

9741009
ret = ompi_osc_portals4_get_dt(dt, &ptl_dt);
975-
if (OMPI_SUCCESS != ret) return ret;
1010+
if (OMPI_SUCCESS != ret) {
1011+
opal_output(ompi_osc_base_framework.framework_output,
1012+
"MPI_Compare_and_swap: datatype is not currently supported");
1013+
return OMPI_ERR_NOT_SUPPORTED;
1014+
}
9761015

9771016
offset = get_displacement(module, target) * target_disp;
9781017

@@ -1035,7 +1074,11 @@ ompi_osc_portals4_fetch_and_op(const void *origin_addr,
10351074
(unsigned long) win));
10361075

10371076
ret = ompi_osc_portals4_get_dt(dt, &ptl_dt);
1038-
if (OMPI_SUCCESS != ret) return ret;
1077+
if (OMPI_SUCCESS != ret) {
1078+
opal_output(ompi_osc_base_framework.framework_output,
1079+
"MPI_Fetch_and_op: datatype is not currently supported");
1080+
return OMPI_ERR_NOT_SUPPORTED;
1081+
}
10391082

10401083
offset = get_displacement(module, target) * target_disp;
10411084

@@ -1083,7 +1126,11 @@ ompi_osc_portals4_fetch_and_op(const void *origin_addr,
10831126
ptl_size_t result_md_offset, origin_md_offset;
10841127

10851128
ret = ompi_osc_portals4_get_op(op, &ptl_op);
1086-
if (OMPI_SUCCESS != ret) return ret;
1129+
if (OMPI_SUCCESS != ret) {
1130+
opal_output(ompi_osc_base_framework.framework_output,
1131+
"MPI_Fetch_and_op: operation is not currently supported");
1132+
return OMPI_ERR_NOT_SUPPORTED;
1133+
}
10871134

10881135
result_md_offset = (ptl_size_t) result_addr;
10891136
origin_md_offset = (ptl_size_t) origin_addr;

0 commit comments

Comments
 (0)