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


On Fri, Aug 24, 2012 at 5:07 PM, Nilay Vaish <ni...@cs.wisc.edu> wrote:

> On Fri, 24 Aug 2012, gem5 gem5 wrote:
>
>  Hi ,
>>
>> I run GEM5 with MOESI_CMP_token protocol for any cores below 128, it works
>> well. However, when I run it with more than 128 cores, I get segmentation
>> fault:
>>
>> command line: build/X86_SE/gem5.opt 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...
>> Segmentation fault
>>
>>
>> I have tried Pt2Pt topology and Crossbar, it's the same error.
>>
>> Then I used gdb and program stopped here:
>>
>> 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;}
>>
>
> I think you should use gdb to print the call stack and figure why this
> Address Object is being accessed, when the object has not been allocated in
> first place.
>
> --
> Nilay
>
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to