Hi all,

I have some prolem about Segmentation fault related to the size of physical
memory specified in my configue py file.



I used  MESI_CMP_directory protocol through this command

scons build/ALPHA_SE/gem5.opt PROTOCOL=MESI_CMP_directory RUBY=True


And I used the follwing command for simulation

./build/ALPHA_SE/gem5.opt configs/spec2006/spec2006_se.py -n 16 --bench test
-t --l1i_size=32kB --l1d_size=32kB --l2_size=16MB --num-l2caches=16
--topology=Mesh --num-dirs=16 -I 2000000 --ruby --garnet-network=fixed --m
esh-rows=4


My environment are

12G physical memory, 64-bit
So, I could allocate size of memory by about 15GB because of swap space.
(Reference to



Surprisingly, I could got different result under the size of allocated
physical memory

That is, if I set  8,12,16GB to size of memory, gem5 simulator says
"Segmentation fault".
However, if I set 7,9,10,11,13,14,15,17,18GB to size of memory, gem5 do work
well.


I think the reason of this is that gem5 dosen't work to align memory or
directory partition.


So I used gdb to find the reason of error.

When Segmentation fault happen, gdb show the following


Program received signal SIGSEGV, Segmentation fault.
0x00007ffff643ed30 in memcpy () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff643ed30 in memcpy () from /lib/libc.so.6
#1  0x000000000093d285 in DataBlock::operator= (this=0x80049b8, obj=<value
optimized out>) at /usr/include/bits/string3.h:52
#2  0x00000000008c23d1 in Directory_Controller::qf_queueMemoryFetchRequest
(this=0x1fbb670, m_tbe_ptr=<value optimized out>, addr=<value optimized
out>) at build/ALPHA_SE/mem/protocol/Directory_Controller.cc:445
#3  0x00000000008d1e7e in Directory_Controller::doTransitionWorker
(this=0x1fbb670, event=Directory_Event_FIRST, state=Directory_State_FIRST,
next_state=<value optimized out>, m_tbe_ptr=@0x7fffffffc660, addr=...)
    at build/ALPHA_SE/mem/protocol/Directory_Transitions.cc:84
#4  0x00000000008d2c3d in Directory_Controller::doTransition
(this=0x1fbb670, event=Directory_Event_FIRST, m_tbe_ptr=0x0, addr=<value
optimized out>) at build/ALPHA_SE/mem/protocol/Directory_Transitions.cc:38
#5  0x00000000008d8243 in Directory_Controller::wakeup (this=0x1fbb670) at
build/ALPHA_SE/mem/protocol/Directory_Wakeup.cc:59
#6  0x00000000009e7b75 in RubyEventQueueNode::process (this=0x7ffcd00) at
build/ALPHA_SE/mem/ruby/eventqueue/RubyEventQueueNode.hh:51
#7  0x0000000000a030b4 in EventQueue::serviceOne (this=<value optimized
out>) at build/ALPHA_SE/sim/eventq.cc:204
#8  0x0000000000a4b2f2 in simulate (num_cycles=9223372036854775807) at
build/ALPHA_SE/sim/simulate.cc:73
#9  0x0000000000a9ac2d in _wrap_simulate__SWIG_0 (self=<value optimized
out>, args=0x1b2f150) at build/ALPHA_SE/python/swig/event_wrap.cc:4534
#10 _wrap_simulate (self=<value optimized out>, args=0x1b2f150) at
build/ALPHA_SE/python/swig/event_wrap.cc:4584
#11 0x00007ffff73fe313 in PyEval_EvalFrameEx () from
/usr/lib/libpython2.6.so.1.0
#12 0x00007ffff73ffd60 in PyEval_EvalCodeEx () from
/usr/lib/libpython2.6.so.1.0
#13 0x00007ffff73fe0ab in PyEval_EvalFrameEx () from
/usr/lib/libpython2.6.so.1.0
#14 0x00007ffff73fe928 in PyEval_EvalFrameEx () from
/usr/lib/libpython2.6.so.1.0
#15 0x00007ffff73ffd60 in PyEval_EvalCodeEx () from
/usr/lib/libpython2.6.so.1.0
#16 0x00007ffff73ffe32 in PyEval_EvalCode () from
/usr/lib/libpython2.6.so.1.0
#17 0x00007ffff73ff0b9 in PyEval_EvalFrameEx () from
/usr/lib/libpython2.6.so.1.0
#18 0x00007ffff73ffd60 in PyEval_EvalCodeEx () from
/usr/lib/libpython2.6.so.1.0
#19 0x00007ffff73fe0ab in PyEval_EvalFrameEx () from
/usr/lib/libpython2.6.so.1.0
#20 0x00007ffff73ffd60 in PyEval_EvalCodeEx () from
/usr/lib/libpython2.6.so.1.0
#21 0x00007ffff73ffe32 in PyEval_EvalCode () from
/usr/lib/libpython2.6.so.1.0
#22 0x00007ffff741dd1c in PyRun_StringFlags () from
/usr/lib/libpython2.6.so.1.0
#23 0x0000000000a0b52f in m5Main (argc=<value optimized out>, argv=<value
optimized out>) at build/ALPHA_SE/sim/init.cc:256
#24 0x000000000040a001 in main (argc=18, argv=0x7fffffffe578) at
build/ALPHA_SE/sim/main.cc:57
(gdb)


Even when I used MOESI_CMP_token  which is known as stable  (
http://gem5.org/Status_Matrix), we saw segmentation fault under
using 8,12,16GB
However, when I used MOESI_hammer which also is known as stable, gem5 dose
work well.


Could you help me? ....


Thanks

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

Reply via email to