On Fri, 24 Aug 2012, gem5 gem5 wrote:

Hi Nilay,

I got the callback information as follows. It seems to me that there is
some address in Directory Entry got accessed but not allocated.  But I dont
know why....Can you please help me interpret this? thanks!

Best,
Jinzhu

command line:build/X86_SE/gem5.debug configs/example/ruby_random_test.py
--num-cpus=130 --num-dirs=1 --topology=Pt2Pt
Global frequency set at 1000000000 ticks per second
info: Entering event queue @ 0.  Starting simulation...

Program received signal SIGSEGV, Segmentation fault.
0x0000000000b3a536 in Address::getAddress (this=0x2)
   at build/X86_SE/mem/ruby/common/Address.hh:61
61     physical_address_t getAddress() const {return m_address;}
(gdb) where
#0  0x0000000000b3a536 in Address::getAddress (this=0x2)
   at build/X86_SE/mem/ruby/common/Address.hh:61
#1  0x0000000000b3a567 in operator== (obj1=..., obj2=...)
   at build/X86_SE/mem/ruby/common/Address.hh:120
#2  0x0000000000b3a5b9 in std::equal_to<Address>::operator()
(this=0xa3d4451, s1=..., s2=...)
   at build/X86_SE/mem/ruby/common/Address.hh:222
#3  0x0000000000c1aaed in std::tr1::__detail::_Hash_code_base<Address,
std::pair<Address const, PerfectCacheLineState<L2Cache_DirEntry> >,
std::_Select1st<std::pair<Address const,
PerfectCacheLineState<L2Cache_DirEntry> > >, std::equal_to<Address>,
std::tr1::hash<Address>, std::tr1::__detail::_Mod_range_hashing,
std::tr1::__detail::_Default_ranged_hash, false>::_M_compare (this=
   0xa3d4450, __k=..., __n=0x2) at
/usr/include/c++/4.5/tr1/hashtable_policy.h:684
#4  0x0000000000c1a4d7 in std::tr1::_Hashtable<Address, std::pair<Address
const, PerfectCacheLineState<L2Cache_DirEntry> >,
std::allocator<std::pair<Address const,
PerfectCacheLineState<L2Cache_DirEntry> > >,
std::_Select1st<std::pair<Address const,
PerfectCacheLineState<L2Cache_DirEntry> > >, std::equal_to<Address>,
std::tr1::hash<Address>, std::tr1::__detail::_Mod_range_hashing,
std::tr1::__detail::_Default_ranged_hash,
std::tr1::__detail::_Prime_rehash_policy, false, false, true>::count
(this=0xa3d4450, __k=...) at /usr/include/c++/4.5/tr1/hashtable.h:731
#5  0x0000000000c1a1a6 in
PerfectCacheMemory<L2Cache_DirEntry>::isTagPresent (this=0xa3d4450,
   address=...)
   at build/X86_SE/mem/ruby/system/PerfectCacheMemory.hh:121
#6  0x0000000000c19849 in L2Cache_Controller::setNewWriter (this=0x38fd000,
param_addr=...,
   param_id=@0x7fffffffc11c) at
build/X86_SE/mem/protocol/L2Cache_Controller.cc:1836
#7  0x0000000000c15615 in L2Cache_Controller::r_markNewSharer
(this=0x38fd000,
   m_cache_entry_ptr=@0x7fffffffc3b8, addr=...)
   at build/X86_SE/mem/protocol/L2Cache_Controller.cc:1343
#8  0x0000000000c21a15 in L2Cache_Controller::doTransitionWorker
(this=0x38fd000,
   event=L2Cache_Event_L1_GETX, state=L2Cache_State_I_L,
next_state=@0x7fffffffcb10,
   m_cache_entry_ptr=@0x7fffffffc3b8, addr=...)
   at build/X86_SE/mem/protocol/L2Cache_Transitions.cc:117
#9  0x0000000000c1fa8d in L2Cache_Controller::doTransition (this=0x38fd000,
   event=L2Cache_Event_L1_GETX, m_cache_entry_ptr=0x0, addr=...)
   at build/X86_SE/mem/protocol/L2Cache_Transitions.cc:38
#10 0x0000000000c261bb in L2Cache_Controller::wakeup (this=0x38fd000)
   at build/X86_SE/mem/protocol/L2Cache_Wakeup.cc:283
#11 0x0000000000b374fd in RubyEventQueueNode::process (this=0x8599320)
   at build/X86_SE/mem/ruby/eventqueue/RubyEventQueueNode.hh:51
#12 0x0000000000e8d106 in EventQueue::serviceOne (this=0x1f6ed40)
   at build/X86_SE/sim/eventq.cc:204
#13 0x0000000000ed0f74 in simulate (num_cycles=9223372036854775807)
   at build/X86_SE/sim/simulate.cc:73
#14 0x0000000000ddb460 in _wrap_simulate__SWIG_0
(args=(9223372036854775807L,))
   at build/X86_SE/python/swig/event_wrap.cc:4488
#15 0x0000000000ddb61d in _wrap_simulate (self=0x0,
args=(9223372036854775807L,))
   at build/X86_SE/python/swig/event_wrap.cc:4538
#16 0x00007ffff73af0b1 in ext_do_call (f=<value optimized out>,
throwflag=<value optimized out>)
   at ../Python/ceval.c:4323
#17 PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized
out>)
   at ../Python/ceval.c:2705
#18 0x00007ffff73b127d in PyEval_EvalCodeEx (co=0x2c3d4b0, globals=<value
optimized out>,
   locals=<value optimized out>, args=<value optimized out>, argcount=1,
kws=0x35ab3a8,
   kwcount=0, defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:3253
#19 0x00007ffff73af28d in fast_function (f=<value optimized out>,
   throwflag=<value optimized out>) at ../Python/ceval.c:4109
#20 call_function (f=<value optimized out>, throwflag=<value optimized out>)
---Type <return> to continue, or q <return> to quit---
   at ../Python/ceval.c:4034
#21 PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized
out>)
   at ../Python/ceval.c:2666
#22 0x00007ffff73b127d in PyEval_EvalCodeEx (co=0x34371b0, globals=<value
optimized out>,
   locals=<value optimized out>, args=<value optimized out>, argcount=0,
kws=0x0, kwcount=0,
   defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:3253
#23 0x00007ffff73b1392 in PyEval_EvalCode (co=<value optimized out>,
   globals=<value optimized out>, locals=<value optimized out>) at
../Python/ceval.c:667
#24 0x00007ffff73b0228 in exec_statement (f=<value optimized out>,
   throwflag=<value optimized out>) at ../Python/ceval.c:4710
#25 PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized
out>)
   at ../Python/ceval.c:1880
#26 0x00007ffff73b127d in PyEval_EvalCodeEx (co=0x2c80030, globals=<value
optimized out>,
   locals=<value optimized out>, args=<value optimized out>, argcount=0,
kws=0x2ca2620,
   kwcount=0, defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:3253
#27 0x00007ffff73af28d in fast_function (f=<value optimized out>,
   throwflag=<value optimized out>) at ../Python/ceval.c:4109
#28 call_function (f=<value optimized out>, throwflag=<value optimized out>)
   at ../Python/ceval.c:4034
#29 PyEval_EvalFrameEx (f=<value optimized out>, throwflag=<value optimized
out>)
   at ../Python/ceval.c:2666
#30 0x00007ffff73b127d in PyEval_EvalCodeEx (co=0x2cc8d30, globals=<value
optimized out>,
   locals=<value optimized out>, args=<value optimized out>, argcount=0,
kws=0x0, kwcount=0,
   defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:3253
#31 0x00007ffff73b1392 in PyEval_EvalCode (co=<value optimized out>,
   globals=<value optimized out>, locals=<value optimized out>) at
../Python/ceval.c:667
#32 0x00007ffff73d31dc in run_mod (str=0x16918f6 "m5.main()", start=<value
optimized out>,
   globals=
   {'__builtins__': <module at remote 0x2261ad0>, '__name__': '__main__',
'm5': <module at remote 0x2cc9670>, '__doc__': None, '__package__': None},
locals=
   {'__builtins__': <module at remote 0x2261ad0>, '__name__': '__main__',
'm5': <module at remote 0x2cc9670>, '__doc__': None, '__package__': None},
flags=<value optimized out>)
   at ../Python/pythonrun.c:1346
#33 PyRun_StringFlags (str=0x16918f6 "m5.main()", start=<value optimized
out>, globals=
   {'__builtins__': <module at remote 0x2261ad0>, '__name__': '__main__',
'm5': <module at remote 0x2cc9670>, '__doc__': None, '__package__': None},
locals=
   {'__builtins__': <module at remote 0x2261ad0>, '__name__': '__main__',
'm5': <module at remote 0x2cc9670>, '__doc__': None, '__package__': None},
flags=<value optimized out>)
   at ../Python/pythonrun.c:1309
#34 0x0000000000e95a54 in m5Main (argc=5, argv=0x7fffffffe008) at
build/X86_SE/sim/init.cc:256
#35 0x000000000040a44b in main (argc=5, argv=0x7fffffffe008) at
build/X86_SE/sim/main.cc:57



I am unable to figure out where the Address variable in getting corrupted. You might want to check if in frame #5, the Address variable can be printed correctly. If not, you might want to take a look at frames 6,7,8 and 9 to figure out where the variable got corrupted.

--
Nilay
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to