1
1

Send back the flags to the sender.

And keep a local directly to the PTL not to the fragment.

This commit was SVN r5287.
Этот коммит содержится в:
George Bosilca 2005-04-12 22:44:47 +00:00
родитель 0b89866fe6
Коммит eeb23c70c4

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

@ -307,13 +307,11 @@ mca_ptl_gm_get (struct mca_ptl_base_module_t *ptl,
static void mca_ptl_gm_basic_ack_callback( struct gm_port* port, void* context, gm_status_t status )
{
mca_ptl_gm_module_t* gm_ptl;
mca_ptl_base_frag_t* frag_base;
mca_ptl_base_header_t* header;
header = (mca_ptl_base_header_t*)context;
frag_base = (mca_ptl_base_frag_t*)header->hdr_ack.hdr_dst_addr.pval;
gm_ptl = (mca_ptl_gm_module_t *)frag_base->frag_owner;
gm_ptl = (mca_ptl_gm_module_t*)header->hdr_ack.hdr_dst_addr.pval;
OMPI_GM_FREE_LIST_RETURN( &(gm_ptl->gm_send_dma_frags), ((ompi_list_item_t*)header) );
/* release the send token */
@ -324,8 +322,8 @@ static void mca_ptl_gm_basic_ack_callback( struct gm_port* port, void* context,
* ack back to the peer and process the fragment.
*/
void
mca_ptl_gm_matched( mca_ptl_base_module_t * ptl,
mca_ptl_base_recv_frag_t * frag )
mca_ptl_gm_matched( mca_ptl_base_module_t* ptl,
mca_ptl_base_recv_frag_t* frag )
{
mca_pml_base_recv_request_t *request;
mca_ptl_base_header_t *hdr;
@ -355,12 +353,12 @@ mca_ptl_gm_matched( mca_ptl_base_module_t * ptl,
hdr = (mca_ptl_base_header_t*)item;
hdr->hdr_ack.hdr_common.hdr_type = MCA_PTL_HDR_TYPE_ACK;
hdr->hdr_ack.hdr_common.hdr_flags = 0;
hdr->hdr_ack.hdr_common.hdr_flags = frag->frag_base.frag_header.hdr_common.hdr_flags;
hdr->hdr_ack.hdr_src_ptr = frag->frag_base.frag_header.hdr_rndv.hdr_src_ptr;
hdr->hdr_ack.hdr_dst_match.lval = 0L;
hdr->hdr_ack.hdr_dst_match.pval = request;
hdr->hdr_ack.hdr_dst_addr.lval = 0L;
hdr->hdr_ack.hdr_dst_addr.pval = frag;
hdr->hdr_ack.hdr_dst_addr.pval = ptl; /* local use */
hdr->hdr_ack.hdr_dst_size = request->req_bytes_packed;
gm_send_with_callback( ((mca_ptl_gm_module_t*)ptl)->gm_port, hdr,