1
1

Merge pull request #1139 from francois-wellenreiter/btl_portals4_mdbind

BTL portals4: remove useless PtlMDBind PtlMDRelease calls for RMDA ex…
Этот коммит содержится в:
Ryan Grant 2015-11-20 07:53:40 -06:00
родитель c544620a7c 251009e0aa
Коммит 4272f92a9c
4 изменённых файлов: 8 добавлений и 26 удалений

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

@ -500,7 +500,6 @@ mca_btl_portals4_alloc(struct mca_btl_base_module_t* btl_base,
size : portals4_btl->super.btl_max_send_size ; size : portals4_btl->super.btl_max_send_size ;
} }
frag->md_h = PTL_INVALID_HANDLE;
frag->base.des_segment_count = 1; frag->base.des_segment_count = 1;
frag->base.des_flags = flags | MCA_BTL_DES_SEND_ALWAYS_CALLBACK; frag->base.des_flags = flags | MCA_BTL_DES_SEND_ALWAYS_CALLBACK;
frag->base.order = MCA_BTL_NO_ORDER; frag->base.order = MCA_BTL_NO_ORDER;

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

@ -692,8 +692,8 @@ mca_btl_portals4_component_progress(void)
/* The distant PtlMEAppend is not finished (distant PTL_EVENT_LINK not received) */ /* The distant PtlMEAppend is not finished (distant PTL_EVENT_LINK not received) */
/* Re-issue the PtlGet (see btl_portals4_rdma.c) */ /* Re-issue the PtlGet (see btl_portals4_rdma.c) */
ret = PtlGet(frag->md_h, ret = PtlGet(portals4_btl->send_md_h,
0, (ptl_size_t) frag->addr,
frag->length, frag->length,
frag->peer_proc, frag->peer_proc,
portals4_btl->recv_idx, portals4_btl->recv_idx,
@ -704,8 +704,6 @@ mca_btl_portals4_component_progress(void)
opal_output_verbose(1, opal_btl_base_framework.framework_output, opal_output_verbose(1, opal_btl_base_framework.framework_output,
"%s:%d: Re-issued PtlGet failed: %d", "%s:%d: Re-issued PtlGet failed: %d",
__FILE__, __LINE__, ret); __FILE__, __LINE__, ret);
PtlMDRelease(frag->md_h);
frag->md_h = PTL_INVALID_HANDLE;
return OPAL_ERROR; return OPAL_ERROR;
} }
@ -724,8 +722,6 @@ mca_btl_portals4_component_progress(void)
frag->rdma_cb.context, frag->rdma_cb.context,
frag->rdma_cb.data, frag->rdma_cb.data,
OPAL_SUCCESS); OPAL_SUCCESS);
PtlMDRelease(frag->md_h);
frag->md_h = PTL_INVALID_HANDLE;
OPAL_BTL_PORTALS4_FRAG_RETURN_USER(&portals4_btl->super, frag); OPAL_BTL_PORTALS4_FRAG_RETURN_USER(&portals4_btl->super, frag);
OPAL_THREAD_ADD32(&portals4_btl->portals_outstanding_ops, -1); OPAL_THREAD_ADD32(&portals4_btl->portals_outstanding_ops, -1);

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

@ -45,10 +45,9 @@ struct mca_btl_portals4_frag_t {
mca_btl_base_header_t hdr; mca_btl_base_header_t hdr;
/* handle to use for communication */ /* handle to use for communication */
ptl_handle_me_t me_h; ptl_handle_me_t me_h;
/* handle to use for communication */
ptl_handle_md_t md_h;
/* size of the allocated memory region -- not the amount of data /* size of the allocated memory region -- not the amount of data
we need to send */ we need to send */
void *addr;
size_t size; size_t size;
/* match bits for retransmit case */ /* match bits for retransmit case */
ptl_match_bits_t match_bits; ptl_match_bits_t match_bits;

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

@ -78,17 +78,6 @@ mca_btl_portals4_get(struct mca_btl_base_module_t* btl_base,
frag->endpoint = btl_peer; frag->endpoint = btl_peer;
frag->hdr.tag = MCA_BTL_TAG_MAX; frag->hdr.tag = MCA_BTL_TAG_MAX;
/* Bind the memory */
md.start = (void *)local_address;
md.length = size;
md.options = 0;
md.eq_handle = portals4_btl->recv_eq_h;
md.ct_handle = PTL_CT_NONE;
ret = PtlMDBind(portals4_btl->portals_ni_h,
&md,
&frag->md_h);
if (OPAL_UNLIKELY(PTL_OK != ret)) { if (OPAL_UNLIKELY(PTL_OK != ret)) {
opal_output_verbose(1, opal_btl_base_framework.framework_output, opal_output_verbose(1, opal_btl_base_framework.framework_output,
"%s:%d: PtlMDBind failed: %d", "%s:%d: PtlMDBind failed: %d",
@ -97,15 +86,16 @@ mca_btl_portals4_get(struct mca_btl_base_module_t* btl_base,
} }
frag->match_bits = remote_handle->key; frag->match_bits = remote_handle->key;
frag->length = md.length; frag->addr = local_address;
frag->length = size;
frag->peer_proc = btl_peer->ptl_proc; frag->peer_proc = btl_peer->ptl_proc;
OPAL_OUTPUT_VERBOSE((90, opal_btl_base_framework.framework_output, "PtlGet start=%p length=%ld nid=%x pid=%x match_bits=%lx\n", OPAL_OUTPUT_VERBOSE((90, opal_btl_base_framework.framework_output, "PtlGet start=%p length=%ld nid=%x pid=%x match_bits=%lx\n",
md.start, md.length, btl_peer->ptl_proc.phys.nid, btl_peer->ptl_proc.phys.pid, frag->match_bits)); md.start, md.length, btl_peer->ptl_proc.phys.nid, btl_peer->ptl_proc.phys.pid, frag->match_bits));
ret = PtlGet(frag->md_h, ret = PtlGet(portals4_btl->send_md_h,
0, (ptl_size_t) local_address,
md.length, size,
btl_peer->ptl_proc, btl_peer->ptl_proc,
portals4_btl->recv_idx, portals4_btl->recv_idx,
frag->match_bits, /* match bits */ frag->match_bits, /* match bits */
@ -115,8 +105,6 @@ mca_btl_portals4_get(struct mca_btl_base_module_t* btl_base,
opal_output_verbose(1, opal_btl_base_framework.framework_output, opal_output_verbose(1, opal_btl_base_framework.framework_output,
"%s:%d: PtlGet failed: %d", "%s:%d: PtlGet failed: %d",
__FILE__, __LINE__, ret); __FILE__, __LINE__, ret);
PtlMDRelease(frag->md_h);
frag->md_h = PTL_INVALID_HANDLE;
return OPAL_ERROR; return OPAL_ERROR;
} }
OPAL_OUTPUT_VERBOSE((90, opal_btl_base_framework.framework_output, "SUCCESS: PtlGet start=%p length=%ld nid=%x pid=%x match_bits=%lx\n", OPAL_OUTPUT_VERBOSE((90, opal_btl_base_framework.framework_output, "SUCCESS: PtlGet start=%p length=%ld nid=%x pid=%x match_bits=%lx\n",