Re: [Gems-users] Possible Deadlock detected


Date: Sat, 5 Aug 2006 09:08:31 -0500 (CDT)
From: Mike Marty <mikem@xxxxxxxxxxx>
Subject: Re: [Gems-users] Possible Deadlock detected
What network topology?  MOSI_SMP_bcast_1level must use an ordered topology
like HIERARCHICAL_SWITCH

> Hi,
>
> I am running a modified MOSI_SMP_bcast_1level version of ruby and got the
> "Possible Deadlock detected" error.
>
> When looking at the debug trace I saw that for the first 1000 time units I
> sometimes get the following:
> Debug: in fn virtual void Throttle::wakeup() in network/simple/Throttle.C:256:
> [Throttle: 42 1 bw: 10000]
> Debug: in fn virtual void Throttle::wakeup() in network/simple/Throttle.C:257:
> not scheduled again
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 138
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 139
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 140
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 141
> ...
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 170
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 171
> Debug: in fn void EventQueue::triggerEvents(Time) in
> eventqueue/EventQueue.C:119: *(thisNode.m_consumer_ptr) is [PerfectSwitch 52]
>
> (Where the hree dots are all the time units between 141-170)
>
> And after a while I got the following:
>
> Debug: in fn void L1Cache_Controller::j_popDataQueue(const Address&) in
> generated/MOSI_SMP_STM_bcast_1level/L1Cache_Controller.C:203: executing
> Debug: in fn void MessageBuffer::pop() in buffers/MessageBuffer.C:339: pop
> from [Chip 6 0, L1Cache, dataNetwork_in]
> Debug: in fn TransitionResult L1Cache_Controller::doTransition(L1Cache_Event,
> L1Cache_State, const Address&) in generated/MOSI_SMP_STM_bcast_1level/L1Cache
> _Transitions.C:32: next_state is TC
>
> Debug: in fn bool CacheMemory<ENTRY>::isTagPresent(const Address&) const [with
> ENTRY = L1Cache_Entry] in system/CacheMemory.h:366: address is [0x18c6b80, l
> ine 0x18c6b80]
> Debug: in fn bool CacheMemory<ENTRY>::isTagPresent(const Address&) const [with
> ENTRY = L1Cache_Entry] in system/CacheMemory.h:367: found
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 1127
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 1128
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 1129
> ...
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 499999
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 500000
> Debug: in fn void runRubyEventQueue(conf_object_t*, lang_void*) in
> simics/interface.C:92: time is 500001
> Debug: in fn void EventQueue::triggerEvents(Time) in
> eventqueue/EventQueue.C:119: *(thisNode.m_consumer_ptr) is [Sequencer: 10,
> outstanding requests: 1, re
> ad request table: [ [0x18ab580, line 0x18ab580]=[CacheMsg: Address=[0x18ab5a0,
> line 0x18ab580] Type=LD ProgramCounter=[0x10047198, line 0x10047180] AccessM
> ode=SupervisorMode Size=8 Prefetch=No Version=0 Aborted=0 Time=1 ] ], write
> request table: [ ]]
> Debug: in fn void EventQueue::triggerEvents(Time) in
> eventqueue/EventQueue.C:120: thisNode.m_time is 500001
> 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=[0x18ab5a0, line 0x18ab580] Type=LD ProgramCounter
> =[0x10047198, line 0x10047180] AccessMode=SupervisorMode Size=8 Prefetch=No
> Version=0 Aborted=0 Time=1 ]
> Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:105:
> m_chip_ptr->getID() is 10
> 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:108:
> current_time is 500001
> Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:109:
> request.getTime() is 1
> Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:110:
> current_time - request.getTime() is 500000
> Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:111:
> *m_readRequestTable_ptr is [ [0x18ab580, line 0x18ab580]=[CacheMsg: Address=[0x1
> 8ab5a0, line 0x18ab580] Type=LD ProgramCounter=[0x10047198, line 0x10047180]
> AccessMode=SupervisorMode Size=8 Prefetch=No Version=0 Aborted=0 Time=1 ] ]
> Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:112: i is 0
> Warning: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:113:
> keys.size() is 1
> Fatal Error: in fn virtual void Sequencer::wakeup() in system/Sequencer.C:114:
> Aborting
>
> Can anyone help me what can make simulator wait for that long?
>
> Thanks,
> Shachar Gang
>
>
> _______________________________________________
> 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.
>
[← Prev in Thread] Current Thread [Next in Thread→]