1
1

mtl/portals4: Modifications concerning the short message management

Этот коммит содержится в:
Pascal Deveze 2016-07-19 11:21:50 +02:00
родитель 49e9936914
Коммит 9cac32ba6a

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

@ -77,6 +77,7 @@ ompi_mtl_portals4_recv_block_progress(ptl_event_t *ev,
break;
case PTL_EVENT_AUTO_UNLINK:
block->me_h = PTL_INVALID_HANDLE;
OPAL_THREAD_LOCK(&ompi_mtl_portals4.short_block_mutex);
switch (block->status) {
case BLOCK_STATUS_ACTIVATED: /* Normal case */
@ -194,6 +195,7 @@ ompi_mtl_portals4_activate_block(ompi_mtl_portals4_recv_short_block_t *block)
me.uid = ompi_mtl_portals4.uid;
me.options =
PTL_ME_OP_PUT |
PTL_ME_EVENT_COMM_DISABLE |
PTL_ME_MANAGE_LOCAL |
PTL_ME_MAY_ALIGN;
if (ompi_mtl_portals4.use_logical) {
@ -261,6 +263,7 @@ ompi_mtl_portals4_recv_short_fini(void)
ompi_mtl_portals4_recv_short_block_t *block =
(ompi_mtl_portals4_recv_short_block_t*) item;
ret = ompi_mtl_portals4_recv_short_block_free(block);
ompi_mtl_portals4.active_recv_short_blocks--;
}
OPAL_THREAD_UNLOCK(&ompi_mtl_portals4.short_block_mutex);
@ -278,10 +281,17 @@ ompi_mtl_portals4_recv_short_link(int count)
if (active < count) {
for (i = 0 ; i < (count - active) ; ++i) {
ompi_mtl_portals4_recv_short_block_t *block =
ompi_mtl_portals4_recv_short_block_alloc(false);
ompi_mtl_portals4_recv_short_block_alloc(true);
if (NULL == block) {
return OMPI_ERR_OUT_OF_RESOURCE;
}
OPAL_THREAD_LOCK(&ompi_mtl_portals4.short_block_mutex);
opal_list_append(&ompi_mtl_portals4.recv_short_blocks,
&block->base);
OPAL_OUTPUT_VERBOSE((10, ompi_mtl_base_framework.framework_output,
"recv_short_link: total=%d active=%d",
(int) opal_list_get_size(&ompi_mtl_portals4.recv_short_blocks), ompi_mtl_portals4.active_recv_short_blocks));
OPAL_THREAD_UNLOCK(&ompi_mtl_portals4.short_block_mutex);
ret = ompi_mtl_portals4_activate_block(block);
}
}