Sent event type error
"Stever, John B" <[email protected]>
| Newsgroups | gmane.network.myrinet.general |
|---|---|
| Message-ID | <AD081BAB251CC44BB5674ED4BB2E504B2C6879@USRV-EXCH2.na.uis.unisys.com> |
I have a multi-threaded app running on a 4Xprocessor system (W2K) that hits the gm_send_with_callback interface pretty hard. I am getting a panic error returned from the unknown function indicating that the type field in the event was 0x9d (157). I typically have three PostSends outstanding at the time this happens. Perhaps coincidentally, 0x9d happens to be the normal sent event type (29) plus the eighth bit set, so it looks like a corruption of the type field. I have seen this value prior to calling gm_unknown, in which case I trap it. But it also happens when gm_unknown has been called with the value in the type field correctly set to 29. I have a global lock around all gm calls, but I cannot afford to keep the lock up from the time of calling gm_unknown until I get the callback on that event. So I don't know any way to lock what happens in GM after it returns from unknown until the callback routine gets control. During that window, another thread may well do a PostSend on that port. Will a collision between those two threads produce the bad stuff above? The error is consistently the same and always happens within a couple of minutes of starting heavy execution. Is there any value in using a separate callback routine for each port?