Basically we use a watchdog timer as a deadlock detection tool. If a
request lasts longer than a threshold set in the config, then the
Sequencer will abort.
When developing complex protocols, we commonly deal with protocol
deadlocks due to unforseen race conditions. I highly suspect a very
subtle bug in MSI_MOSI_CMP_directory that has not occured in our
simulations (we typically simulate < 32 processors).
As a workaround, you can try using an ordered network topology such as
HIERARCHICAL_SWITCH. This will eliminate many possible race conditions.
Or you can try a different protocol. MOESI_CMP_directory is, in general,
a higher-performing CMP directory protocol compared to
MSI_MOSI_CMP_directory. However it is even more complex and has not been
tested with as much rigor as the others.
--Mike
> hi
> I am sorry , I should have included this in the ealier email,
> MSI_MOSI_CMP_directory is the protocol .
> It might be a bug, I was reading throught the sequencer code, It mainly
> handles consistency stuff, could you let me know the conditiions under
> which the error might be thrown, I can then put all the pieces together
> salil
>
> Mike Marty wrote:
>
> >Which protocol? Our CMP protocols included with the release are
> >MOESI_CMP_token, MSI_MOSI_CMP_directory, and MOESI_CMP_directory. The
> >latter two are especially complex and you might have uncovered a bug.
> >
> >--Mike
> >
> >
> >
> >
> >>hi,
> >> I am using ruby to setup a CMP 32 processor system (16 CMP's) along
> >>with simics. I got the following error (only while running 32 threads, a
> >>configuration with lesser threads seems to run fine )
> >>Warning: in fn virtual void Sequencer::wakeup() in
> >>system/Sequencer.C:119: Possible Deadlock detected
> >>Warning: in fn virtual void Sequencer::wakeup() in
> >>system/Sequencer.C:119: Possible Deadlock detected
> >>Warning: in fn virtual void Sequencer::wakeup() in
> >>system/Sequencer.C:120: request is [CacheMsg: Address=[0xb93ae54, line
> >>0xb93ae40] Type=ATOMIC ProgramCounter=[0xff242660, line 0xff242640]
> >>AccessMode=UserMode Size=1 Prefetch=No Version=0 Aborted=0 Time=894780000 ]
> >>Warning: in fn virtual void Sequencer::wakeup() in
> >>system/Sequencer.C:120: request is [CacheMsg: Address=[0xb93ae54, line
> >>0xb93ae40] Type=ATOMIC ProgramCounter=[0xff242660, line 0xff242640]
> >>AccessMode=UserMode Size=1 Prefetch=No Version=0 Aborted=0 Time=894780000 ]
> >>
> >>Warning: in fn virtual void Sequencer::wakeup() in
> >>system/Sequencer.C:125: keys.size() is 1
> >>Warning: in fn virtual void Sequencer::wakeup() in
> >>system/Sequencer.C:126: *m_writeRequestTable_ptr is [ [0xb93ae40, line
> >>0xb93ae40]=[CacheMsg: Address=[0xb93ae54, line 0xb93ae40] Type=ATOMIC
> >>ProgramCounter=[0xff242660, line 0xff242640] AccessMode=UserMode Size=1
> >>Prefetch=No Version=0 Aborted=0 Time=894780000 ] ]
> >>Warning: in fn virtual void Sequencer::wakeup() in
> >>system/Sequencer.C:126: *m_writeRequestTable_ptr is [ [0xb93ae40, line
> >>0xb93ae40]=[CacheMsg: Address=[0xb93ae54, line 0xb93ae40] Type=ATOMIC
> >>ProgramCounter=[0xff242660, line 0xff242640] AccessMode=UserMode Size=1
> >>Prefetch=No Version=0 Aborted=0 Time=894780000 ] ]
> >>Fatal Error: in fn virtual void Sequencer::wakeup() in
> >>system/Sequencer.C:127: Aborting
> >>Fatal Error: in fn virtual void Sequencer::wakeup() in
> >>system/Sequencer.C:127: Aborting
> >>*** Simics getting shaky, switching to 'safe' mode.
> >>*** Simics (main thread) received an abort signal, probably an assertion.
> >><Simics is running in 'safe' mode>
> >>
> >>My configuration is pretty standard , I am using PT_TO_POINT topology
> >>network. I havent made any changes in the ruby code . The program is a
> >>simple LU benchmark from the splash 2 suite.
> >>I am using simics 2.0.16 on host x86-linux.
> >>Can you give me some idea about this error so that I can try to fix it.
> >>salil
> >>_______________________________________________
> >>Gems-users mailing list
> >>Gems-users@xxxxxxxxxxx
> >>https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> >>
> >>
> >>
> >_______________________________________________
> >Gems-users mailing list
> >Gems-users@xxxxxxxxxxx
> >https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> >
> >
>
> _______________________________________________
> Gems-users mailing list
> Gems-users@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
>
|