@@ -109,64 +109,58 @@ ompi_mtl_ofi_context_progress(int ctxt_id)
109
109
* From the completion's op_context, we get the associated OFI request.
110
110
* Call the request's callback.
111
111
*/
112
- while (true) {
113
- ret = fi_cq_read (ompi_mtl_ofi .ofi_ctxt [ctxt_id ].cq , (void * )& wc ,
114
- ompi_mtl_ofi .ofi_progress_event_count );
115
- if (ret > 0 ) {
116
- count += ret ;
117
- events_read = ret ;
118
- for (i = 0 ; i < events_read ; i ++ ) {
119
- if (NULL != wc [i ].op_context ) {
120
- ofi_req = TO_OFI_REQ (wc [i ].op_context );
121
- assert (ofi_req );
122
- ret = ofi_req -> event_callback (& wc [i ], ofi_req );
123
- if (OMPI_SUCCESS != ret ) {
124
- opal_output (0 , "%s:%d: Error returned by request event callback: %zd.\n"
125
- "*** The Open MPI OFI MTL is aborting the MPI job (via exit(3)).\n" ,
126
- __FILE__ , __LINE__ , ret );
127
- fflush (stderr );
128
- exit (1 );
129
- }
130
- }
131
- }
132
- } else if (OPAL_UNLIKELY (ret == - FI_EAVAIL )) {
133
- /**
134
- * An error occured and is being reported via the CQ.
135
- * Read the error and forward it to the upper layer.
136
- */
137
- ret = fi_cq_readerr (ompi_mtl_ofi .ofi_ctxt [ctxt_id ].cq ,
138
- & error ,
139
- 0 );
140
- if (0 > ret ) {
141
- opal_output (0 , "%s:%d: Error returned from fi_cq_readerr: %s(%zd).\n"
142
- "*** The Open MPI OFI MTL is aborting the MPI job (via exit(3)).\n" ,
143
- __FILE__ , __LINE__ , fi_strerror (- ret ), ret );
144
- fflush (stderr );
145
- exit (1 );
146
- }
147
-
148
- assert (error .op_context );
149
- ofi_req = TO_OFI_REQ (error .op_context );
150
- assert (ofi_req );
151
- ret = ofi_req -> error_callback (& error , ofi_req );
152
- if (OMPI_SUCCESS != ret ) {
153
- opal_output (0 , "%s:%d: Error returned by request error callback: %zd.\n"
112
+ ret = fi_cq_read (ompi_mtl_ofi .ofi_ctxt [ctxt_id ].cq , (void * )& wc ,
113
+ ompi_mtl_ofi .ofi_progress_event_count );
114
+ if (ret > 0 ) {
115
+ count += ret ;
116
+ events_read = ret ;
117
+ for (i = 0 ; i < events_read ; i ++ ) {
118
+ if (NULL != wc [i ].op_context ) {
119
+ ofi_req = TO_OFI_REQ (wc [i ].op_context );
120
+ assert (ofi_req );
121
+ ret = ofi_req -> event_callback (& wc [i ], ofi_req );
122
+ if (OMPI_SUCCESS != ret ) {
123
+ opal_output (0 , "%s:%d: Error returned by request event callback: %zd.\n"
154
124
"*** The Open MPI OFI MTL is aborting the MPI job (via exit(3)).\n" ,
155
125
__FILE__ , __LINE__ , ret );
156
- fflush (stderr );
157
- exit (1 );
126
+ fflush (stderr );
127
+ exit (1 );
128
+ }
158
129
}
159
- } else {
160
- if (ret == - FI_EAGAIN || ret == - EINTR ) {
161
- break ;
162
- } else {
163
- opal_output (0 , "%s:%d: Error returned from fi_cq_read: %s(%zd).\n"
130
+ }
131
+ } else if (OPAL_UNLIKELY (ret == - FI_EAVAIL )) {
132
+ /**
133
+ * An error occured and is being reported via the CQ.
134
+ * Read the error and forward it to the upper layer.
135
+ */
136
+ ret = fi_cq_readerr (ompi_mtl_ofi .ofi_ctxt [ctxt_id ].cq ,
137
+ & error ,
138
+ 0 );
139
+ if (0 > ret ) {
140
+ opal_output (0 , "%s:%d: Error returned from fi_cq_readerr: %s(%zd).\n"
141
+ "*** The Open MPI OFI MTL is aborting the MPI job (via exit(3)).\n" ,
142
+ __FILE__ , __LINE__ , fi_strerror (- ret ), ret );
143
+ fflush (stderr );
144
+ exit (1 );
145
+ }
146
+
147
+ assert (error .op_context );
148
+ ofi_req = TO_OFI_REQ (error .op_context );
149
+ assert (ofi_req );
150
+ ret = ofi_req -> error_callback (& error , ofi_req );
151
+ if (OMPI_SUCCESS != ret ) {
152
+ opal_output (0 , "%s:%d: Error returned by request error callback: %zd.\n"
164
153
"*** The Open MPI OFI MTL is aborting the MPI job (via exit(3)).\n" ,
165
- __FILE__ , __LINE__ , fi_strerror (- ret ), ret );
166
- fflush (stderr );
167
- exit (1 );
168
- }
154
+ __FILE__ , __LINE__ , ret );
155
+ fflush (stderr );
156
+ exit (1 );
169
157
}
158
+ } else if (ret != - FI_EAGAIN && ret != - EINTR ) {
159
+ opal_output (0 , "%s:%d: Error returned from fi_cq_read: %s(%zd).\n"
160
+ "*** The Open MPI OFI MTL is aborting the MPI job (via exit(3)).\n" ,
161
+ __FILE__ , __LINE__ , fi_strerror (- ret ), ret );
162
+ fflush (stderr );
163
+ exit (1 );
170
164
}
171
165
172
166
return count ;
0 commit comments