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

geoge_zhang <[email protected]>
Newsgroups gmane.network.myrinet.general
Message-ID <[email protected]>
Hi:
   Our group would like to know more about the details of GM/MCP event-driven
mechanism. There are two detailed probmems:-).
   It's said in the document and the source files, the Mark_LABEL macros 
in /mcp directory refer to the  handlers correspondint to events. With each 
value of GM_STATE and ISR/IMR registers, the dispatch() finds the corresponding 
handler by searching gm_event_index[ISR&IMR|state] and then handles the event.
   In specific, for START_SEND_EVENT, MARK_LABEL (L_send__start_sending_chunk_, LZERO)
is called to handle the event, and it switches between L_send__start_sending_chunk_0/1
to handler data in send_chunk[0]/[1], there are two problems with this process:

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 ?

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 ?

     Sorry to give these trivial problems, and it may be confusing. But we really need help,
  and any help and information of the mechanism of GM/mcp event-driven is appreciated.
     Thanks:-).

Your Geoge.
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.