Mark,
You might have to increase the g_DEADLOCK_THRESHOLD to a larger value.
It is possible that the LD_XACT is stalled on a long running
transaction. Try 'ruby0.setparam g_DEADLOCK_THRESHOLD 20000000' before
you start the simulation...
Jayaram
Mark Gebhart wrote:
Hi,
I am trying to run a LogTM program using Simics 3.0.22 and GEMS 1.3
and the abisko-common target script with Solaris 10. I have tried
both MOESI_SMP_LogTM_directory and MESI_SMP_LogTM_directory. Things
work fine with 1 thread but as soon as I go to 2 threads I get the
following warnings followed by a fatal error:
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:103: Possible Deadlock detected
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:103: Possible Deadlock detected
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:104: request is [CacheMsg: Address=[0xed2202c, line
0xed22000] Type=LD_XACT ProgramCounter=[0xff237c74, line 0xff237c40]
AccessMode=UserMode Size=2 Prefetch=No Version=0 Aborted=0 Time=34944882 ]
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:104: request is [CacheMsg: Address=[0xed2202c, line
0xed22000] Type=LD_XACT ProgramCounter=[0xff237c74, line 0xff237c40]
AccessMode=UserMode Size=2 Prefetch=No Version=0 Aborted=0 Time=34944882 ]
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:105: m_chip_ptr->getID() is 7
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:105: m_chip_ptr->getID() is 7
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:106: m_version is 0
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:106: m_version is 0
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:107: keys.size() is 1
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:107: keys.size() is 1
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:108: current_time is 34995936
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:108: current_time is 34995936
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:109: request.getTime() is 34944882
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:109: request.getTime() is 34944882
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:110: current_time - request.getTime() is 51054
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:110: current_time - request.getTime() is 51054
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:111: *m_readRequestTable_ptr is [ [0xed22000, line
0xed22000]=[CacheMsg: Address=[0xed2202c, line 0xed22000] Type=LD_XACT
ProgramCounter=[0xff237c74, line 0xff237c40] AccessMode=UserMode
Size=2 Prefetch=No Version=0 Aborted=0 Time=34944882 ] ]
Warning: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:111: *m_readRequestTable_ptr is [ [0xed22000, line
0xed22000]=[CacheMsg: Address=[0xed2202c, line 0xed22000] Type=LD_XACT
ProgramCounter=[0xff237c74, line 0xff237c40] AccessMode=UserMode
Size=2 Prefetch=No Version=0 Aborted=0 Time=34944882 ] ]
Fatal Error: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:112: Aborting
Fatal Error: in fn virtual void Sequencer::wakeup() in
system/Sequencer.C:112: Aborting
Abort (SIGABRT) in main thread
The simulation state has been corrupted. Simulation cannot continue.
Please restart Simics.
What can I do to prevent this deadlock from occurring? My program
consists of a main loop with a BEGIN_TRANSACATION(0) followed by a
call to a work function followed by an COMMIT_TRANSACTION(0).
Any advice would be greatly appreciated.
Thanks,
Mark
------------------------------------------------------------------------
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.
|