ob1: rewind convertor after failed send
This commit was SVN r26395.
Этот коммит содержится в:
родитель
b94e7af5c8
Коммит
a32d4c648d
@ -53,6 +53,7 @@ int mca_pml_ob1_progress(void)
|
||||
completed_requests++;
|
||||
break;
|
||||
case MCA_PML_OB1_SEND_PENDING_START:
|
||||
MCA_PML_OB1_SEND_REQUEST_RESET(sendreq);
|
||||
endpoint = sendreq->req_endpoint;
|
||||
send_succedded = false;
|
||||
for(j = 0; j < (int)mca_bml_base_btl_array_get_size(&endpoint->btl_eager); j++) {
|
||||
|
@ -70,7 +70,8 @@ void mca_pml_ob1_send_request_process_pending(mca_bml_base_btl_t *bml_btl)
|
||||
add_request_to_send_pending(sendreq,
|
||||
MCA_PML_OB1_SEND_PENDING_START, true);
|
||||
} else {
|
||||
rc = mca_pml_ob1_send_request_start_btl(sendreq, send_dst);
|
||||
MCA_PML_OB1_SEND_REQUEST_RESET(sendreq);
|
||||
rc = mca_pml_ob1_send_request_start_btl(sendreq, send_dst);
|
||||
if (OMPI_ERR_OUT_OF_RESOURCE == rc) {
|
||||
/* No more resources on this btl so prepend to the pending
|
||||
* list to minimize reordering and give up for now. */
|
||||
|
@ -159,6 +159,13 @@ get_request_from_send_pending(mca_pml_ob1_send_pending_t *type)
|
||||
(sendreq)->req_recv.pval = NULL; \
|
||||
}
|
||||
|
||||
#define MCA_PML_OB1_SEND_REQUEST_RESET(sendreq) \
|
||||
{ \
|
||||
size_t _position = 0; \
|
||||
opal_convertor_set_position(&sendreq->req_send.req_base.req_convertor, \
|
||||
&_position); \
|
||||
assert( 0 == _position ); \
|
||||
}
|
||||
|
||||
static inline void mca_pml_ob1_free_rdma_resources(mca_pml_ob1_send_request_t* sendreq)
|
||||
{
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user