1
1
This commit was SVN r9190.
Этот коммит содержится в:
Galen Shipman 2006-03-03 04:01:10 +00:00
родитель b8d1189091
Коммит 4e430b0428
5 изменённых файлов: 33 добавлений и 41 удалений

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

@ -262,7 +262,7 @@ MCA_BML_BASE_BTL_DES_ALLOC(bml_btl, des, \
#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4);
#define DO16(buf) DO8(buf,0); DO8(buf,8);
#define COMPUTE_SPECIFIC_CHECKSUM( DATA, LENGTH, ADLER32) \
#define COMPUTE_SPECIFIC_CHECKSUM( DATA, LENGTH, ADLER32 ) \
do { \
uint8_t *_data = (DATA); /* Pointer to the data to be summed */ \
size_t _len = (LENGTH); /* Length in bytes */ \

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

@ -560,24 +560,27 @@ MCA_PML_DR_RECV_FRAG_INIT(frag,proc->ompi_proc,hdr,segments,num_segments,btl);
if(match != NULL) {
mca_pml_dr_recv_request_progress(match,btl,segments,num_segments);
} else if (hdr->hdr_common.hdr_type == MCA_PML_DR_HDR_TYPE_MATCH) {
COMPUTE_SPECIFIC_CHECKSUM(segments->seg_addr.pval +
sizeof(mca_pml_dr_match_hdr_t),
COMPUTE_SPECIFIC_CHECKSUM((void*) (segments->seg_addr.lval +
sizeof(mca_pml_dr_match_hdr_t)),
segments->seg_len - sizeof(mca_pml_dr_match_hdr_t),
csum);
assert(csum == hdr->hdr_csum);
mca_pml_dr_recv_frag_unmatched_ack(hdr,
ompi_proc,
MCA_PML_DR_HDR_FLAGS_MATCH,
csum == hdr->hdr_csum ? 1 : 0);
} else {
COMPUTE_SPECIFIC_CHECKSUM(segments->seg_addr.pval +
sizeof(mca_pml_dr_rendezvous_hdr_t),
COMPUTE_SPECIFIC_CHECKSUM((void*) (segments->seg_addr.lval +
sizeof(mca_pml_dr_rendezvous_hdr_t)),
segments->seg_len - sizeof(mca_pml_dr_rendezvous_hdr_t),
csum);
assert(csum == hdr->hdr_csum);
mca_pml_dr_recv_frag_unmatched_ack(hdr,
ompi_proc,
MCA_PML_DR_HDR_FLAGS_BUFFERED,
csum == hdr->hdr_csum ? : 0);
csum == hdr->hdr_csum ? 1 : 0);
}
if(additional_match) {

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

@ -151,8 +151,8 @@ static void mca_pml_dr_recv_request_matched(
mca_pml_dr_ack_hdr_t* ack;
int rc;
mca_pml_dr_comm_proc_t* comm_proc = recvreq->req_recv.req_base.req_comm->c_pml_comm->procs +
recvreq->req_recv.req_base.req_peer;
/* mca_pml_dr_comm_proc_t* comm_proc = recvreq->req_recv.req_base.req_comm->c_pml_comm->procs + */
/* recvreq->req_recv.req_base.req_peer; */
/* if this hasn't been initialized yet - this is a synchronous send */
if(NULL == proc) {
@ -190,7 +190,7 @@ static void mca_pml_dr_recv_request_matched(
goto retry;
}
mca_pml_dr_comm_proc_set_acked(comm_proc, ack->hdr_vid);
/* mca_pml_dr_comm_proc_set_acked(comm_proc, ack->hdr_vid); */
return;
@ -221,8 +221,8 @@ static void mca_pml_dr_recv_request_vfrag_ack(
int rc;
mca_pml_dr_comm_proc_t* comm_proc = recvreq->req_recv.req_base.req_comm->c_pml_comm->procs +
recvreq->req_recv.req_base.req_peer;
/* mca_pml_dr_comm_proc_t* comm_proc = recvreq->req_recv.req_base.req_comm->c_pml_comm->procs + */
/* recvreq->req_recv.req_base.req_peer; */
bml_endpoint = (mca_bml_base_endpoint_t*) proc->proc_pml;
bml_btl = mca_bml_base_btl_array_get_next(&bml_endpoint->btl_eager);
@ -252,7 +252,7 @@ static void mca_pml_dr_recv_request_vfrag_ack(
if(rc != OMPI_SUCCESS) {
mca_bml_base_free(bml_btl, des);
}
mca_pml_dr_comm_proc_set_acked(comm_proc, ack->hdr_vid);
/* mca_pml_dr_comm_proc_set_acked(comm_proc, ack->hdr_vid); */
}

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

@ -145,8 +145,6 @@ void mca_pml_dr_match_completion_free(
struct mca_btl_base_descriptor_t* descriptor,
int status)
{
mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)descriptor->des_cbdata;
mca_bml_base_btl_t* bml_btl = (mca_bml_base_btl_t*) descriptor->des_context;
/* check completion status */
if(OMPI_SUCCESS != status) {
@ -176,7 +174,6 @@ static void mca_pml_dr_rndv_completion(
int status)
{
mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)descriptor->des_cbdata;
mca_bml_base_btl_t* bml_btl = (mca_bml_base_btl_t*) descriptor->des_context;
/* check completion status */
if(OMPI_SUCCESS != status) {
/* TSW - FIX */
@ -815,42 +812,34 @@ void mca_pml_dr_send_request_acked(
mca_pml_dr_ack_hdr_t* ack)
{
mca_pml_dr_vfrag_t* vfrag;
mca_btl_base_descriptor_t* descriptor;
assert(sendreq);
descriptor = sendreq->descriptor;
MCA_PML_DR_SEND_REQUEST_VFRAG_PENDING(sendreq, ack, vfrag);
/* MCA_PML_DR_VFRAG_ACK_STOP(vfrag); */
if(ack->hdr_common.hdr_flags & MCA_PML_DR_HDR_FLAGS_BUFFERED) {
if((ack->hdr_vmask & vfrag->vf_mask) == vfrag->vf_mask) {
OPAL_THREAD_LOCK(&ompi_request_lock);
mca_bml_base_free( (mca_bml_base_btl_t*) descriptor->des_context, descriptor );
if(sendreq->descriptor) {
mca_bml_base_free( (mca_bml_base_btl_t*) sendreq->descriptor->des_context, sendreq->descriptor );
sendreq->descriptor = NULL;
MCA_PML_DR_SEND_REQUEST_SET_BYTES_DELIVERED(sendreq,
vfrag,
sizeof(mca_pml_dr_rendezvous_hdr_t));
}
OPAL_THREAD_UNLOCK(&ompi_request_lock);
} else {
assert(0);
}
} else if(ack->hdr_common.hdr_flags & MCA_PML_DR_HDR_FLAGS_RNDV) {
if((ack->hdr_vmask & vfrag->vf_mask) == vfrag->vf_mask) {
OPAL_THREAD_LOCK(&ompi_request_lock);
sendreq->req_vfrag0.vf_recv = ack->hdr_dst_req;
if(sendreq->descriptor) {
mca_bml_base_free( (mca_bml_base_btl_t*) descriptor->des_context, descriptor );
mca_bml_base_free( (mca_bml_base_btl_t*) sendreq->descriptor->des_context, sendreq->descriptor );
sendreq->descriptor = NULL;
}
OPAL_THREAD_LOCK(&ompi_request_lock);
MCA_PML_DR_SEND_REQUEST_SET_BYTES_DELIVERED(sendreq,
vfrag,
sizeof(mca_pml_dr_rendezvous_hdr_t));
}
OPAL_THREAD_UNLOCK(&ompi_request_lock);
sendreq->req_vfrag0.vf_recv = ack->hdr_dst_req;
/* we know that we have more data, otherwise it would have been
an MCA_PML_DR_HDR_FLAGS_MATCH */
if(sendreq->req_bytes_delivered == sendreq->req_send.req_bytes_packed){
MCA_PML_DR_SEND_REQUEST_PML_COMPLETE(sendreq);
} else {
@ -869,7 +858,7 @@ void mca_pml_dr_send_request_acked(
}
} else if(ack->hdr_common.hdr_flags & MCA_PML_DR_HDR_FLAGS_MATCH) {
if((ack->hdr_vmask & vfrag->vf_mask) == vfrag->vf_mask) {
mca_bml_base_free( (mca_bml_base_btl_t*) descriptor->des_context, descriptor );
mca_bml_base_free( (mca_bml_base_btl_t*) sendreq->descriptor->des_context, sendreq->descriptor );
sendreq->descriptor = NULL;
OPAL_THREAD_LOCK(&ompi_request_lock);

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

@ -236,7 +236,7 @@ do {
/* has an acknowledgment been received */ \
if(OPAL_THREAD_ADD32(&sendreq->req_state, 1) == 2) { \
OPAL_THREAD_LOCK(&ompi_request_lock); \
if(sendreq->req_send.req_bytes_packed - sendreq->req_send_offset) { \
if(sendreq->req_bytes_delivered != sendreq->req_send.req_bytes_packed) { \
schedule = true; \
} \
OPAL_THREAD_UNLOCK(&ompi_request_lock); \