Hello,

I try to start a full system emulation in x86. I built the latest stock gem5 
source code, I use the linux image provided by gem5.org <http://gem5.org/> and 
I use the FS.py script found in the examples folder. I have made zero 
modifications, basically I just try to boot Linux.
After a few seconds, gem5 returns a segmentation fault. Below there is the 
error as well as the trace created by gdb.

I tried the same on Ubuntu 16.04 and Debian 9 with the same results 
(segmentation fault).


Global frequency set at 1000000000000 ticks per second
warn: DRAM device capacity (8192 Mbytes) does not match the address range 
assigned (512 Mbytes)
info: kernel located at: 
/home/petross/gem5_images/X86_images/binaries/x86_64-vmlinux-2.6.22.9
system.pc.com_1.device: Listening for connections on port 3456
      0: rtc: Real-time clock set to Sun Jan  1 00:00:00 2012
0: system.remote_gdb: listening for remote gdb on port 7000
warn: Reading current count from inactive timer.
**** REAL SIMULATION ****
info: Entering event queue @ 0.  Starting simulation...
warn: Don't know what interrupt to clear for console.
9401930500: system.pc.com_1.device: attach terminal 0
warn: x86 cpuid: unknown family 0x8086
gem5 has encountered a segmentation fault!

--- BEGIN LIBC BACKTRACE ---
build/X86/gem5.opt(_Z15print_backtracev+0x28)[0x7a9db8]
build/X86/gem5.opt[0x7bc79d]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7fceaeff0390]
build/X86/gem5.opt(_ZN7BaseCPU11mwaitAtomicEsP13ThreadContextP7BaseTLB+0xc3)[0x8713d3]
build/X86/gem5.opt(_ZNK10X86ISAInst5Mwait7executeEP11ExecContextPN5Trace10InstRecordE+0xb3)[0x1378643]
build/X86/gem5.opt(_ZN15AtomicSimpleCPU4tickEv+0x392)[0xe607f2]
build/X86/gem5.opt(_ZN10EventQueue10serviceOneEv+0xc5)[0x7b05a5]
build/X86/gem5.opt(_Z9doSimLoopP10EventQueue+0x50)[0x7c8600]
build/X86/gem5.opt(_Z8simulatem+0xd1b)[0x7c96eb]
build/X86/gem5.opt[0xdbcc0a]
build/X86/gem5.opt[0x80dda5]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x7852)[0x7fceaf2ad772]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7fceaf3e405c]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7fceaf2acf1d]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7fceaf3e405c]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7fceaf2acf1d]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7fceaf3e405c]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7fceaf2acf1d]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7fceaf3e405c]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7fceaf2a5da9]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x613b)[0x7fceaf2ac05b]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7fceaf3e405c]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7fceaf2acf1d]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7fceaf3e405c]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7fceaf2a5da9]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyRun_StringFlags+0x76)[0x7fceaf3201f6]
build/X86/gem5.opt(_Z6m5MainiPPc+0x6f)[0x7bb30f]
build/X86/gem5.opt(main+0x33)[0x6c6e33]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fceadadc830]
build/X86/gem5.opt(_start+0x29)[0x6e8e99]
--- END LIBC BACKTRACE ---
Segmentation fault (core dumped)


GDB TRACE
Program received signal SIGSEGV, Segmentation fault.
0x0000000000d0d2ea in Request::setVirt (this=0x0, asid=0, 
vaddr=18446744071569940496, size=48, flags=..., mid=6, pc=18446744071564200172, 
amo_op=0x0) at build/X86/mem/request.hh:497
497             _asid = asid;
(gdb) bt
#0  0x0000000000d0d2ea in Request::setVirt (this=0x0, asid=0, 
vaddr=18446744071569940496, size=48, flags=..., mid=6, pc=18446744071564200172, 
amo_op=0x0) at build/X86/mem/request.hh:497
#1  0x0000000000e9881c in BaseCPU::mwaitAtomic (this=0x3982300, tid=0, 
tc=0x31da380, dtb=0x3205180) at build/X86/cpu/base.cc:333
#2  0x000000000170e610 in SimpleExecContext::mwaitAtomic (this=0x33ea4e0, 
tc=0x31da380) at build/X86/cpu/simple/exec_context.hh:519
#3  0x0000000001c9babd in X86ISAInst::Mwait::execute (this=0x3206140, 
xc=0x33ea4e0, traceData=0x0) at 
build/X86/arch/x86/generated/exec-ns.cc.inc:24916
#4  0x00000000016ff0bb in AtomicSimpleCPU::tick (this=0x3982300) at 
build/X86/cpu/simple/atomic.cc:622
#5  0x00000000016fc14d in AtomicSimpleCPU::<lambda()>::operator()(void) const 
(__closure=0x3982650) at build/X86/cpu/simple/atomic.cc:79
#6  0x00000000016ff8ae in std::_Function_handler<void(), 
AtomicSimpleCPU::AtomicSimpleCPU(AtomicSimpleCPUParams*)::<lambda()> 
>::_M_invoke(const std::_Any_data &) (__functor=...) at 
/usr/include/c++/5/functional:1871
#7  0x0000000000d2daf2 in std::function<void ()>::operator()() const 
(this=0x3982650) at /usr/include/c++/5/functional:2267
#8  0x0000000000d23e26 in EventFunctionWrapper::process (this=0x3982618) at 
build/X86/sim/eventq.hh:829
#9  0x0000000000de225b in EventQueue::serviceOne (this=0x32bb680) at 
build/X86/sim/eventq.cc:228
#10 0x0000000000deb0a2 in doSimLoop (eventq=0x32bb680) at 
build/X86/sim/simulate.cc:219
#11 0x0000000000deacf3 in simulate (num_cycles=18446744073709551615) at 
build/X86/sim/simulate.cc:132
#12 0x00000000016634de in pybind11::detail::argument_loader<unsigned 
long>::call_impl<GlobalSimLoopExitEvent*, GlobalSimLoopExitEvent* (*&)(unsigned 
long), 0ul, pybind11::detail::void_type>(GlobalSimLoopExitEvent* (*&)(unsigned 
long), pybind11::detail::index_sequence<0ul>, pybind11::detail::void_type&&) 
(this=0x7fffffffcd00, f=@0x337a938: 0xdea9e1 <simulate(unsigned long)>) at 
ext/pybind11/include/pybind11/cast.h:1860
#13 0x0000000001660e36 in pybind11::detail::argument_loader<unsigned 
long>::call<GlobalSimLoopExitEvent*, pybind11::detail::void_type, 
GlobalSimLoopExitEvent* (*&)(unsigned long)>(GlobalSimLoopExitEvent* 
(*&)(unsigned long)) && (
    this=0x7fffffffcd00, f=@0x337a938: 0xdea9e1 <simulate(unsigned long)>) at 
ext/pybind11/include/pybind11/cast.h:1837
#14 0x000000000165cd6b in void 
pybind11::cpp_function::initialize<GlobalSimLoopExitEvent* (*&)(unsigned long), 
GlobalSimLoopExitEvent*, unsigned long, pybind11::name, pybind11::scope, 
pybind11::sibling, pybind11::arg_v>(GlobalSimLoopExitEvent* (*&)(unsigned 
long), GlobalSimLoopExitEvent* (*)(unsigned long), pybind11::name const&, 
pybind11::scope const&, pybind11::sibling const&, pybind11::arg_v 
const&)::{lambda(pybind11::detail::function_call&)#3}::operator()(pybind11::detail::function_call&)
 const (__closure=0x0, call=...) at ext/pybind11/include/pybind11/pybind11.h:153
#15 0x000000000165cdd7 in void 
pybind11::cpp_function::initialize<GlobalSimLoopExitEvent* (*&)(unsigned long), 
GlobalSimLoopExitEvent*, unsigned long, pybind11::name, pybind11::scope, 
pybind11::sibling, pybind11::arg_v>(GlobalSimLoopExitEvent* (*&)(unsigned 
long), GlobalSimLoopExitEvent* (*)(unsigned long), pybind11::name const&, 
pybind11::scope const&, pybind11::sibling const&, pybind11::arg_v 
const&)::{lambda(pybind11::detail::function_call&)#3}::_FUN(pybind11::detail::function_call&)
 ()
    at ext/pybind11/include/pybind11/pybind11.h:131
#16 0x0000000000e1c9af in pybind11::cpp_function::dispatcher (self=<PyCapsule 
at remote 0x7ffff7eb9d20>, args_in=(18446744073709551615L,), kwargs_in={}) at 
ext/pybind11/include/pybind11/pybind11.h:629
#17 0x00007ffff78fa772 in ext_do_call (nk=<optimized out>, na=<optimized out>, 
flags=<optimized out>, pp_stack=0x7fffffffd1a8, func=<built-in method simulate 
of PyCapsule object at remote 0x7ffff7eb9d20>) at ../Python/ceval.c:4661
#18 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at 
../Python/ceval.c:3026
#19 0x00007ffff7a3105c in PyEval_EvalCodeEx (co=<optimized out>, 
globals=<optimized out>, locals=<optimized out>, args=<optimized out>, 
argcount=1, kws=<optimized out>, kwcount=0, defs=0x0, defcount=0, closure=0x0) 
at ../Python/ceval.c:3582
#20 0x00007ffff78f9f1d in fast_function (nk=0, na=<optimized out>, n=<optimized 
out>, pp_stack=0x7fffffffd3a0, func=<optimized out>) at ../Python/ceval.c:4445
#21 call_function (oparg=<optimized out>, pp_stack=0x7fffffffd3a0) at 
../Python/ceval.c:4370
#22 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at 
../Python/ceval.c:2987
#23 0x00007ffff7a3105c in PyEval_EvalCodeEx (co=<optimized out>, 
globals=<optimized out>, locals=<optimized out>, args=<optimized out>, 
argcount=3, kws=<optimized out>, kwcount=0, defs=0x0, defcount=0, closure=0x0) 
at ../Python/ceval.c:3582
#24 0x00007ffff78f9f1d in fast_function (nk=0, na=<optimized out>, n=<optimized 
out>, pp_stack=0x7fffffffd5a0, func=<optimized out>) at ../Python/ceval.c:4445
#25 call_function (oparg=<optimized out>, pp_stack=0x7fffffffd5a0) at 
../Python/ceval.c:4370
#26 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at 
../Python/ceval.c:2987
#27 0x00007ffff7a3105c in PyEval_EvalCodeEx (co=<optimized out>, 
globals=<optimized out>, locals=<optimized out>, args=<optimized out>, 
argcount=4, kws=<optimized out>, kwcount=0, defs=0x0, defcount=0, closure=0x0) 
at ../Python/ceval.c:3582
#28 0x00007ffff78f9f1d in fast_function (nk=0, na=<optimized out>, n=<optimized 
out>, pp_stack=0x7fffffffd7a0, func=<optimized out>) at ../Python/ceval.c:4445
#29 call_function (oparg=<optimized out>, pp_stack=0x7fffffffd7a0) at 
../Python/ceval.c:4370
#30 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at 
../Python/ceval.c:2987
#31 0x00007ffff7a3105c in PyEval_EvalCodeEx (co=<optimized out>, 
globals=<optimized out>, locals=<optimized out>, args=<optimized out>, 
argcount=0, kws=<optimized out>, kwcount=0, defs=0x0, defcount=0, closure=0x0) 
at ../Python/ceval.c:3582
#32 0x00007ffff78f2da9 in PyEval_EvalCode (co=co@entry=0x7ffff43263b0, 
    globals=globals@entry={'IOCache': <MetaSimObject(cxx_exports=[], 
__module__='common.Caches', _value_dict={'tag_latency': 50, 
'cxx_param_exports': [], 'abstract': False, 'tgts_per_mshr': 12, 'cxx_exports': 
[...], 'assoc': 8, 'response_latency': 50, 'cxx_extra_bases': [], 
'data_latency': 50, 'mshrs': 20, 'size': '1kB'}, 
_children=<multidict(deleted={}, local={}, parent=<multidict(deleted={}, 
local={}, parent=<multidict(deleted={}, local={'replacement_policy': 
<LRURP(_hr_values=<multidict(deleted={}, local={}, 
parent=<multidict(deleted={}, local={}, parent=<multidict(deleted={}, local={}, 
parent=<multidict(deleted={}, local={}, parent={}) at remote 0x7ffff5128e50>) 
at remote 0x7ffff4fbb3d0>) at remote 0x7ffff4fbbb10>) at remote 
0x7ffff4edf650>, _children={}, _instantiated=False, _name='replacement_policy', 
_parent=<MetaSimObject(cxx_exports=[], __module__='m5.objects.Cache', 
cxx_type='BaseCache *', _value_dict={'replacement_policy': 
<ParamDesc(default=<...>, ptype_str='BaseReplacementPolicy', 
ptype=<MetaSimObject(cxx_exports=[], __mo...(truncated), 
    locals=locals@entry={'IOCache': <MetaSimObject(cxx_exports=[], 
__module__='common.Caches', _value_dict={'tag_latency': 50, 
'cxx_param_exports': [], 'abstract': False, 'tgts_per_mshr': 12, 'cxx_exports': 
[...], 'assoc': 8, 'response_latency': 50, 'cxx_extra_bases': [], 
'data_latency': 50, 'mshrs': 20, 'size': '1kB'}, 
_children=<multidict(deleted={}, local={}, parent=<multidict(deleted={}, 
local={}, parent=<multidict(deleted={}, local={'replacement_policy': 
<LRURP(_hr_values=<multidict(deleted={}, local={}, 
parent=<multidict(deleted={}, local={}, parent=<multidict(deleted={}, local={}, 
parent=<multidict(deleted={}, local={}, parent={}) at remote 0x7ffff5128e50>) 
at remote 0x7ffff4fbb3d0>) at remote 0x7ffff4fbbb10>) at remote 
0x7ffff4edf650>, _children={}, _instantiated=False, _name='replacement_policy', 
_parent=<MetaSimObject(cxx_exports=[], __module__='m5.objects.Cache', 
cxx_type='BaseCache *', _value_dict={'replacement_policy': 
<ParamDesc(default=<...>, ptype_str='BaseReplacementPolicy', 
ptype=<MetaSimObject(cxx_exports=[], __mo...(truncated)) at 
../Python/ceval.c:669
#33 0x00007ffff78f905b in exec_statement (
    locals={'IOCache': <MetaSimObject(cxx_exports=[], 
__module__='common.Caches', _value_dict={'tag_latency': 50, 
'cxx_param_exports': [], 'abstract': False, 'tgts_per_mshr': 12, 'cxx_exports': 
[...], 'assoc': 8, 'response_latency': 50, 'cxx_extra_bases': [], 
'data_latency': 50, 'mshrs': 20, 'size': '1kB'}, 
_children=<multidict(deleted={}, local={}, parent=<multidict(deleted={}, 
local={}, parent=<multidict(deleted={}, local={'replacement_policy': 
<LRURP(_hr_values=<multidict(deleted={}, local={}, 
parent=<multidict(deleted={}, local={}, parent=<multidict(deleted={}, local={}, 
parent=<multidict(deleted={}, local={}, parent={}) at remote 0x7ffff5128e50>) 
at remote 0x7ffff4fbb3d0>) at remote 0x7ffff4fbbb10>) at remote 
0x7ffff4edf650>, _children={}, _instantiated=False, _name='replacement_policy', 
_parent=<MetaSimObject(cxx_exports=[], __module__='m5.objects.Cache', 
cxx_type='BaseCache *', _value_dict={'replacement_policy': 
<ParamDesc(default=<...>, ptype_str='BaseReplacementPolicy', 
ptype=<MetaSimObject(cxx_exports=[], __mo...(truncated), 
    globals={'IOCache': <MetaSimObject(cxx_exports=[], 
__module__='common.Caches', _value_dict={'tag_latency': 50, 
'cxx_param_exports': [], 'abstract': False, 'tgts_per_mshr': 12, 'cxx_exports': 
[...], 'assoc': 8, 'response_latency': 50, 'cxx_extra_bases': [], 
'data_latency': 50, 'mshrs': 20, 'size': '1kB'}, 
_children=<multidict(deleted={}, local={}, parent=<multidict(deleted={}, 
local={}, parent=<multidict(deleted={}, local={'replacement_policy': 
<LRURP(_hr_values=<multidict(deleted={}, local={}, 
parent=<multidict(deleted={}, local={}, parent=<multidict(deleted={}, local={}, 
parent=<multidict(deleted={}, local={}, parent={}) at remote 0x7ffff5128e50>) 
at remote 0x7ffff4fbb3d0>) at remote 0x7ffff4fbbb10>) at remote 
0x7ffff4edf650>, _children={}, _instantiated=False, _name='replacement_policy', 
_parent=<MetaSimObject(cxx_exports=[], __module__='m5.objects.Cache', 
cxx_type='BaseCache *', _value_dict={'replacement_policy': 
<ParamDesc(default=<...>, ptype_str='BaseReplacementPolicy', 
ptype=<MetaSimObject(cxx_exports=[], __mo...(truncated), prog=<optimized out>, 
    f=Frame 0x3339820, for file /home/petross/gem5/src/python/m5/main.py, line 
435, in main (args=(), m5=<module at remote 0x7ffff53f2e88>, core=<module at 
remote 0x7ffff5130168>, debug=<module at remote 0x7ffff4c7b980>, event=<module 
at remote 0x7ffff4c611a0>, info=<module at remote 0x7ffff4c7b948>, 
stats=<module at remote 0x7ffff4c61088>, trace=<module at remote 
0x7ffff4c7b9b8>, inform=<function at remote 0x7ffff53796e0>, panic=<function at 
remote 0x7ffff5381cf8>, isInteractive=<function at remote 0x7ffff5379c80>, 
options=<OptionParser(_group=<OptionGroup(_long_opt={'--dump-config': 
<Option(_long_opts=['--dump-config'], help='Dump configuration output file 
[Default: %default]', callback_args=None, callback=None, default='config.ini', 
nargs=1, choices=None, dest='dump_config', 
container=<OptionGroup(_long_opt={...}, title='Configuration Options', 
parser=<OptionParser(process_default_values=True, 
allow_interspersed_args=False, _long_opt={...}, largs=[], 
formatter=<TitledHelpFormatter(option_strings={}, level=0, hel...(truncated)) 
at ../Python/ceval.c:5048
#34 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at 
../Python/ceval.c:2106
#35 0x00007ffff7a3105c in PyEval_EvalCodeEx (co=<optimized out>, 
globals=<optimized out>, locals=<optimized out>, args=<optimized out>, 
argcount=0, kws=<optimized out>, kwcount=0, defs=0x0, defcount=0, closure=0x0) 
at ../Python/ceval.c:3582


Best,
Petros



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

Reply via email to