Re: [Myrinet] A problem with GM/MCP event-driven mechanism!

Vijay Lakamraju <[email protected]>
Newsgroups gmane.network.myrinet.general
Message-ID <[email protected]>
> 1.If the SDMA engine enqueues a send for the SEND engine, The L_send__start_sending_chunk_0/1
>   runs continuesly using the following code:
>     smp = gm.send_chunk[LZERO].smp;
>     #if GM_ENABLE_CRC32
>     smh = gm.send_chunk[LZERO].smh;
>     #endif
>     sml = gm.send_chunk[LZERO].smlt;
>     It seems that the SDMA just stores the send mesg in send_chunk[0]/[1] and sets the 
>   smp/smlt,but it doesn't clear the gm.send_chunk[LZERO].smp/smlt. Then the mesg stored 
>   in send_chunk[0]/[1] are send each time L_send__start_sending_chunk called (that is,the sml  
>   is set) ? It seems impossible, but what's the problem ?
> 

Take a look at the way part of the gm_event_index table is set up. 

      /* send events */
      if (i & SEND_INT_BIT && i & SENDING)
        {
          GM_SET_EVENT_INDEX_FOR_STATE (FINISH_SEND_EVENT, i);
          continue;
        }

This would mean that after the L_send__start_sending_chunk event is 
called, the corresponding L_send__finish_sending_chunk event is 
called. And in L_send__finish_sending_chunk(), the two line of code 

    NOTICE_NOT (SENDING); 
    NOTICE (FREE_SEND_CHUNK); 

ensure that  L_send__start_sending_chunk_0/1() is NOT called without 
the send chunk's smp/smlt being initialized properly. 


> 2. It's said that when the GM_STATE is set using NOTICE_NO(SEND_PENDING), the START_SEND_EVENT
>    cann't happen, and so the L_send__start_sending_chunk_0/1 couldn't be called. 
>    But in our program, after the GM_STATE is set using NOTICE_NO(SEND_PENDING) when the ACK 
>    mesg is received, the START_SEND_EVENT still happens and L_send__start_sending_chunk_0/1 
>    still called. Then what's the problem ?
> 
   Have you traced the various events that are called after the 
NOTICE_NO(SEND_PENDING) is executed? I believe there might a event 
being called which toggles back the SEND_PENDING bit with 
 
    TOGGLE_STATE (gm_free_send_chunk_cnt * SEND_PENDING);

hope that helps, 
Vijay 
--
Architecture & Real-time Systems (ARTS) Lab,
310 Knowles Engineering Bldg,
UMass Amherst 01003
Tel: (413)-545-0715 (O)
Fax: (413)-545-1993
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.