@@ -77,6 +77,7 @@ ompi_mtl_portals4_recv_block_progress(ptl_event_t *ev,
7777            break ;
7878
7979        case  PTL_EVENT_AUTO_UNLINK :
80+             block -> me_h  =  PTL_INVALID_HANDLE ;
8081            OPAL_THREAD_LOCK (& ompi_mtl_portals4 .short_block_mutex );
8182            switch  (block -> status ) {
8283                case  BLOCK_STATUS_ACTIVATED : /* Normal case */ 
@@ -194,6 +195,7 @@ ompi_mtl_portals4_activate_block(ompi_mtl_portals4_recv_short_block_t *block)
194195    me .uid  =  ompi_mtl_portals4 .uid ;
195196    me .options  = 
196197        PTL_ME_OP_PUT  |
198+         PTL_ME_EVENT_COMM_DISABLE  |
197199        PTL_ME_MANAGE_LOCAL  |
198200        PTL_ME_MAY_ALIGN ;
199201    if  (ompi_mtl_portals4 .use_logical ) {
@@ -261,6 +263,7 @@ ompi_mtl_portals4_recv_short_fini(void)
261263        ompi_mtl_portals4_recv_short_block_t  * block  = 
262264            (ompi_mtl_portals4_recv_short_block_t * ) item ;
263265        ret  =  ompi_mtl_portals4_recv_short_block_free (block );
266+         ompi_mtl_portals4 .active_recv_short_blocks -- ;
264267    }
265268    OPAL_THREAD_UNLOCK (& ompi_mtl_portals4 .short_block_mutex );
266269
@@ -278,10 +281,17 @@ ompi_mtl_portals4_recv_short_link(int count)
278281    if  (active  <  count ) {
279282        for  (i  =  0  ; i  <  (count  -  active ) ; ++ i ) {
280283            ompi_mtl_portals4_recv_short_block_t  * block  = 
281-                 ompi_mtl_portals4_recv_short_block_alloc (false );
284+                 ompi_mtl_portals4_recv_short_block_alloc (true );
282285            if  (NULL  ==  block ) {
283286                return  OMPI_ERR_OUT_OF_RESOURCE ;
284287            }
288+             OPAL_THREAD_LOCK (& ompi_mtl_portals4 .short_block_mutex );
289+             opal_list_append (& ompi_mtl_portals4 .recv_short_blocks ,
290+                          & block -> base );
291+             OPAL_OUTPUT_VERBOSE ((10 , ompi_mtl_base_framework .framework_output ,
292+              "recv_short_link: total=%d active=%d" ,
293+              (int ) opal_list_get_size (& ompi_mtl_portals4 .recv_short_blocks ), ompi_mtl_portals4 .active_recv_short_blocks ));
294+             OPAL_THREAD_UNLOCK (& ompi_mtl_portals4 .short_block_mutex );
285295            ret  =  ompi_mtl_portals4_activate_block (block );
286296        }
287297    }
0 commit comments