Re: [Gems-users] Error running cholesky (splash 2) under ruby


Date: Tue, 2 Aug 2005 12:25:20 -0500 (CDT)
From: Mike Marty <mikem@xxxxxxxxxxx>
Subject: Re: [Gems-users] Error running cholesky (splash 2) under ruby
You found a bug in the protocol.  But it makes absolutely no sense to me
how it can happen.  The Owner ran out of tokens somehow yet there is an
assertion in setState to catch if the Owner ever gets less than half the
tokens.

I would also be really curious to know how this happened if you have time
to give me a debug trace (email privately for instructions).

As a workaround, I think this _might_ work if you modify
MOESI_SMP_token-cache.sm as follows:


  1)  Add a "Transient_GETS_Last_Token" event on line 118
  2)  Change the trigger logic by modifying lines 482-488 to be this:

        if (in_msg.Type == CoherenceRequestType:GETX) {
          trigger(Event:Transient_GETX, in_msg.Address);
        } else if (in_msg.Type == CoherenceRequestType:GETS) {
          if (getTokens(in_msg.Address) == 1) {
            trigger(Event:Transient_GETS_Last_Token, in_msg.Address);
          } else {
            trigger(Event:Transient_GETS, in_msg.Address);
          }
        } else {
          error("Unexpected message");
        }

  3)  Add this transition somewhere:

  transition( {I, S, OM, IS, IM, SM, I_L, IM_L, IS_L, S_L, SM_L},
Transient_GETS_Last_Token) {
    m_popRequestQueue;
  }


The idea is that if the Owner runs out of tokens (totally unexpected and
is a bug somewhere), we do nothing and rely on a persistent request to
gather all the tokens in the system

I hope it works as I came up with it on the fly without any testing

--Mike



>  	I receive the following when running cholesky:
>
> Runtime Error at ../protocols/MOESI_SMP_token-cache.sm:759, Ruby Time:
> 182085087: assert failure, PID: 18899
> press return to continue.
>
>
> It is running on 4 processors, under solaris.
> _______________________________________________
> Gems-users mailing list
> Gems-users@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
>
[← Prev in Thread] Current Thread [Next in Thread→]