1
1

Back to working state using the new headers. Having less data to move around decrease

a little bit the latency. But I still have to improuve it ...

This commit was SVN r3618.
Этот коммит содержится в:
George Bosilca 2004-11-18 06:36:26 +00:00
родитель b80e69bc69
Коммит 67d6d86638
4 изменённых файлов: 13 добавлений и 14 удалений

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

@ -424,7 +424,7 @@ mca_ptl_gm_matched( mca_ptl_base_module_t * ptl,
bytes_recv = frag->frag_base.frag_size;
iov.iov_len = bytes_recv;
if (header->hdr_frag.hdr_frag_length > 0) {
if( header->hdr_match.hdr_msg_length > 0 ) {
ompi_proc_t *proc;
unsigned int max_data, out_size;
int freeAfter;
@ -438,7 +438,7 @@ mca_ptl_gm_matched( mca_ptl_base_module_t * ptl,
request->req_base.req_datatype,
request->req_base.req_count,
request->req_base.req_addr,
header->hdr_frag.hdr_frag_offset, NULL );
0 /* TO DO which offset ? */, NULL );
out_size = 1;
max_data = iov.iov_len;
rc = ompi_convertor_unpack( &frag->frag_base.frag_convertor, &(iov),
@ -448,7 +448,7 @@ mca_ptl_gm_matched( mca_ptl_base_module_t * ptl,
}
/* update progress*/
ptl->ptl_recv_progress( ptl, request, bytes_recv,bytes_recv);
ptl->ptl_recv_progress( ptl, request, bytes_recv, bytes_recv );
/* Now update the status of the fragment */
((mca_ptl_gm_recv_frag_t*)frag)->matched = true;
@ -457,7 +457,6 @@ mca_ptl_gm_matched( mca_ptl_base_module_t * ptl,
((mca_ptl_gm_recv_frag_t*)frag)->have_allocated_buffer = false;
}
/* return to free list */
OMPI_FREE_LIST_RETURN( &(gm_ptl->gm_recv_frags_free),
(ompi_list_item_t*)((mca_ptl_gm_recv_frag_t*)frag) );
/* I'm done with this fragment. Return it to the free list */
OMPI_FREE_LIST_RETURN( &(gm_ptl->gm_recv_frags_free), (ompi_list_item_t*)frag );
}

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

@ -342,7 +342,7 @@ mca_ptl_gm_init_sendrecv (mca_ptl_gm_module_t * ptl)
OMPI_FREE_LIST_RETURN( &(ptl->gm_recv_frags_free), (ompi_list_item_t *)free_rfragment );
free_rfragment++;
gm_provide_receive_buffer( ptl->gm_port, ptl->gm_recv_dma_memory + i * GM_BUF_SIZE,
gm_provide_receive_buffer( ptl->gm_port, (char*)ptl->gm_recv_dma_memory + i * GM_BUF_SIZE,
GM_SIZE, GM_LOW_PRIORITY );
DO_DEBUG(printf( "%3d : gm register GM receive buffer %p\n", i, (void*)ptl->gm_recv_dma_memory ) );
}

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

@ -217,7 +217,7 @@ void send_callback(struct gm_port *port,void * context, gm_status_t status)
|| mca_pml_base_send_request_matched(gm_send_req)) {
A_PRINT(" send callback : match not required\n");
ptl->super.ptl_send_progress( (mca_ptl_base_module_t*)ptl, frag->send_frag.frag_request,
header->hdr_frag.hdr_frag_length);
header->hdr_match.hdr_msg_length);
/* Return sendfrag to free list */
A_PRINT("Return frag : %p", frag);
@ -332,7 +332,7 @@ mca_ptl_gm_recv_frag_match( struct mca_ptl_gm_module_t *ptl,
recv_frag->frag_recv.frag_base.frag_addr =
(char *) header + sizeof(mca_ptl_base_match_header_t);
recv_frag->frag_recv.frag_base.frag_size = header->hdr_frag.hdr_frag_length;
recv_frag->frag_recv.frag_base.frag_size = header->hdr_match.hdr_msg_length;
recv_frag->matched = false;
recv_frag->have_allocated_buffer = false;

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

@ -111,14 +111,14 @@ extern "C" {
sendfrag->type = MATCH;
} else {
hdr->hdr_common.hdr_type = MCA_PTL_HDR_TYPE_FRAG;
hdr->hdr_frag.hdr_frag_offset = offset;
hdr->hdr_frag.hdr_frag_length = *size;
hdr->hdr_frag.hdr_src_ptr.lval = 0;
hdr->hdr_frag.hdr_src_ptr.pval = sendfrag; /* pointer to the frag */
hdr->hdr_frag.hdr_dst_ptr = sendreq->req_peer_match;
sendfrag->type = FRAG;
}
hdr->hdr_frag.hdr_frag_offset = offset;
hdr->hdr_frag.hdr_frag_length = *size;
hdr->hdr_frag.hdr_src_ptr.lval = 0;
hdr->hdr_frag.hdr_src_ptr.pval = sendfrag; /* pointer to the frag */
hdr->hdr_frag.hdr_dst_ptr = sendreq->req_peer_match;
return OMPI_SUCCESS;
}