1
1

we can be in WAITING_ACK state without a race if the OOB ack is "slower" than

the scheduling of queued IB send operations. 

This commit was SVN r7452.
Этот коммит содержится в:
Galen Shipman 2005-09-21 16:47:08 +00:00
родитель 782e5b21cc
Коммит 96ab5a6bd3

Просмотреть файл

@ -558,7 +558,8 @@ int mca_btl_mvapi_put( mca_btl_base_module_t* btl,
mca_btl_mvapi_module_t* mvapi_btl = (mca_btl_mvapi_module_t*) btl; mca_btl_mvapi_module_t* mvapi_btl = (mca_btl_mvapi_module_t*) btl;
mca_btl_mvapi_frag_t* frag = (mca_btl_mvapi_frag_t*) descriptor; mca_btl_mvapi_frag_t* frag = (mca_btl_mvapi_frag_t*) descriptor;
assert(endpoint->endpoint_state == MCA_BTL_IB_CONNECTED); assert(endpoint->endpoint_state == MCA_BTL_IB_CONNECTED ||
endpoint->endpoint_state == MCA_BTL_IB_WAITING_ACK);
frag->sr_desc.opcode = VAPI_RDMA_WRITE; frag->sr_desc.opcode = VAPI_RDMA_WRITE;
/* atomically test and acquire a token */ /* atomically test and acquire a token */
if(OPAL_THREAD_ADD32(&endpoint->wr_sq_tokens_lp,-1) < 0) { if(OPAL_THREAD_ADD32(&endpoint->wr_sq_tokens_lp,-1) < 0) {
@ -609,7 +610,8 @@ int mca_btl_mvapi_get( mca_btl_base_module_t* btl,
mca_btl_mvapi_module_t* mvapi_btl = (mca_btl_mvapi_module_t*) btl; mca_btl_mvapi_module_t* mvapi_btl = (mca_btl_mvapi_module_t*) btl;
mca_btl_mvapi_frag_t* frag = (mca_btl_mvapi_frag_t*) descriptor; mca_btl_mvapi_frag_t* frag = (mca_btl_mvapi_frag_t*) descriptor;
assert(endpoint->endpoint_state == MCA_BTL_IB_CONNECTED); assert(endpoint->endpoint_state == MCA_BTL_IB_CONNECTED ||
endpoint->endpoint_state == MCA_BTL_IB_WAITING_ACK);
frag->sr_desc.opcode = VAPI_RDMA_READ; frag->sr_desc.opcode = VAPI_RDMA_READ;
/* atomically test and acquire a token */ /* atomically test and acquire a token */