Hello Everyone,

Yaz: I do not change anything, I am using commit
2a98a994df296f818b05da90ba073d879562da04
of gem5.

Is there anyone who was able to *boot* the full system for x86 ISA using
O3CPU?

My command line :

*build/X86/gem5.opt configs/example/fs.py  --kernel=x86_64-vmlinux-2.6.22.9
--disk-image=linux-x86.img --cpu-type=DerivO3CPU --caches*

Best regards,

Abhishek


On Fri, Mar 8, 2019 at 2:09 PM Ayaz Akram <aaq...@gmail.com> wrote:

> Hi Abhishek,
>
> I wonder if you are using the default CPU configuration for full-system or
> do you have any changes?
>
> Regards
> -Ayaz
>
> On Wed, Mar 6, 2019 at 2:20 PM Abhishek Singh <
> abhishek.singh199...@gmail.com> wrote:
>
>> Hello Everyone,
>>
>> I am trying to run the gem5 full system with X86 ISA and DerivO3CPU
>>
>> I have built image and kernel following Jason's Website (ref:
>> http://www.lowepower.com/jason/setting-up-gem5-full-system.html)
>> My image is* Ubuntu 16.04.5 LTS*
>> My kernel is  *Linux-4.8.13*
>> Gem5 version: Latest as of 6th March 2019
>>
>> The image and kernel work fine with Atomic and Timing CPU for x86.
>> But for O3CPU, it gives an error as shown below:
>> """""""""
>>
>> command line: *./build/X86/gem5.opt configs/example/fs.py
>> --script=./script.rcS
>> --disk-image=/home/abs218/image_kernel/ubuntu-test.img
>> --kernel=/home/abs218/new_fs/gem5/linux-4.8.13/vmlinux --caches --l2cache
>> --cpu-type=DerivO3CPU*
>>
>>
>> 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/abs218/new_fs/gem5/linux-4.8.13/vmlinux
>>
>> 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...
>>
>> *gem5.opt: build/X86/mem/packet.hh:1047: T* Packet::getPtr() [with T =
>> unsigned char]: Assertion `flags.isSet(STATIC_DATA|DYNAMIC_DATA)' failed*
>> .
>>
>> Program aborted at tick 11637500
>>
>> --- BEGIN LIBC BACKTRACE ---
>>
>> ./build/X86/gem5.opt(_Z15print_backtracev+0x2c)[0x561f4b44d8bc]
>>
>> ./build/X86/gem5.opt(_Z12abortHandleri+0x4a)[0x561f4b45fc8a]
>>
>> /lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7f25466db890]
>>
>> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f2544e02e97]
>>
>> /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f2544e04801]
>>
>> /lib/x86_64-linux-gnu/libc.so.6(+0x3039a)[0x7f2544df439a]
>>
>> /lib/x86_64-linux-gnu/libc.so.6(+0x30412)[0x7f2544df4412]
>>
>>
>> ./build/X86/gem5.opt(_ZN6X86ISA13handleIprReadEP13ThreadContextP6Packet+0x17c)[0x561f4ace817c]
>>
>>
>> ./build/X86/gem5.opt(_ZN7LSQUnitI9O3CPUImplE4readEPN3LSQIS0_E10LSQRequestEi+0x431)[0x561f4aca8781]
>>
>>
>> ./build/X86/gem5.opt(_ZN3LSQI9O3CPUImplE4readEPNS1_10LSQRequestEi+0xad)[0x561f4acee75d]
>>
>>
>> ./build/X86/gem5.opt(_ZN3LSQI9O3CPUImplE11pushRequestERK14RefCountingPtrI13BaseO3DynInstIS0_EEbPhjm5FlagsImEPmP15AtomicOpFunctor+0x523)[0x561f4aceecf3]
>>
>>
>> ./build/X86/gem5.opt(_ZN11BaseDynInstI9O3CPUImplE15initiateMemReadEmj5FlagsImE+0x7b)[0x561f4ac8cb3b]
>>
>>
>> ./build/X86/gem5.opt(_ZNK10X86ISAInst5LdBig11initiateAccEP11ExecContextPN5Trace10InstRecordE+0xd1)[0x561f4b99e521]
>>
>>
>> ./build/X86/gem5.opt(_ZN13BaseO3DynInstI9O3CPUImplE11initiateAccEv+0x45)[0x561f4acbfc15]
>>
>>
>> ./build/X86/gem5.opt(_ZN7LSQUnitI9O3CPUImplE11executeLoadERK14RefCountingPtrI13BaseO3DynInstIS0_EE+0x57)[0x561f4acf87e7]
>>
>>
>> ./build/X86/gem5.opt(_ZN3LSQI9O3CPUImplE11executeLoadERK14RefCountingPtrI13BaseO3DynInstIS0_EE+0x3b)[0x561f4ace8a0b]
>>
>>
>> ./build/X86/gem5.opt(_ZN10DefaultIEWI9O3CPUImplE12executeInstsEv+0xf06)[0x561f4acd6e96]
>>
>>
>> ./build/X86/gem5.opt(_ZN10DefaultIEWI9O3CPUImplE4tickEv+0x8c0)[0x561f4acda9a0]
>>
>>
>> ./build/X86/gem5.opt(_ZN9FullO3CPUI9O3CPUImplE4tickEv+0x144)[0x561f4acac574]
>>
>> ./build/X86/gem5.opt(_ZN10EventQueue10serviceOneEv+0xd9)[0x561f4b455699]
>>
>> ./build/X86/gem5.opt(_Z9doSimLoopP10EventQueue+0x87)[0x561f4b470e77]
>>
>> ./build/X86/gem5.opt(_Z8simulatem+0xcaa)[0x561f4b471eba]
>>
>> ./build/X86/gem5.opt(+0x5b4d4e)[0x561f4aaedd4e]
>>
>> ./build/X86/gem5.opt(+0x591bf4)[0x561f4aacabf4]
>>
>>
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x64d7)[0x7f2546995697]
>>
>>
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f2546ac7278]
>>
>>
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5bf6)[0x7f2546994db6]
>>
>>
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f2546ac7278]
>>
>>
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5bf6)[0x7f2546994db6]
>>
>>
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f2546ac7278]
>>
>>
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5bf6)[0x7f2546994db6]
>>
>>
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f2546ac7278]
>>
>> --- END LIBC BACKTRACE ---
>>
>> Aborted (core dumped)
>> """"""""
>>
>> When I tried to use AtomicCPU for boot up by fast forwarding it, as soon
>> as its fast forwarded, simulations get killed with the message shown below:
>>
>>
>> """
>>
>> Switched CPUS @ tick 7034903342000
>>
>> switching cpus
>>
>> warn: ClockedObject: Already in the requested power state, request ignored
>>
>> **** REAL SIMULATION ****
>>
>> info: Entering event queue @ 7034903342000.  Starting simulation...
>>
>> *Killed*
>>
>> """"""
>>
>>
>> I see this message using m5term "*Connection closed by foreign host*."
>>
>>
>> I can run parsec v2.1 using their image "
>> http://www.cs.utexas.edu/~cart/parsec_m5/"; and gem5's old kernel using
>> x86 03CPU and Fast forwarding.
>>
>>
>> I want to run some benchmarks which require FS mode of x86, so I
>> developed new image and kernel and it works correctly for AtomicSimpleCPU
>> and TimingSimpleCPU.
>>
>>
>> I also used gdb tool with O3CPU to see what actually happens, gdb output
>> is as shown below:
>>
>> (gdb) bt
>>
>> #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
>>
>> #1  0x00007ffff5d74801 in __GI_abort () at abort.c:79
>>
>> #2  0x00007ffff5d6439a in __assert_fail_base (fmt=0x7ffff5eeb7d8
>> "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
>> assertion=assertion@entry=0x555556ab2728
>> "flags.isSet(STATIC_DATA|DYNAMIC_DATA)",
>>
>>     file=file@entry=0x555556ab22b7 "build/X86/mem/packet.hh",
>> line=line@entry=1047, function=function@entry=0x555556adf560
>> <_ZZN6Packet6getPtrIhEEPT_vE19__PRETTY_FUNCTION__> "T* Packet::getPtr()
>> [with T = unsigned char]")
>>
>>     at assert.c:92
>>
>> #3  0x00007ffff5d64412 in __GI___assert_fail 
>> (assertion=assertion@entry=0x555556ab2728
>> "flags.isSet(STATIC_DATA|DYNAMIC_DATA)", file=file@entry=0x555556ab22b7
>> "build/X86/mem/packet.hh", line=line@entry=1047,
>>
>>     function=function@entry=0x555556adf560
>> <_ZZN6Packet6getPtrIhEEPT_vE19__PRETTY_FUNCTION__> "T* Packet::getPtr()
>> [with T = unsigned char]") at assert.c:101
>>
>> #4  0x0000555555d0317c in Packet::getPtr<unsigned char>
>> (this=0x55555843cb00) at build/X86/mem/packet.hh:1047
>>
>> #5  Packet::setData (p=0x7fffffffbe40 "", this=0x55555843cb00) at
>> build/X86/mem/packet.hh:1134
>>
>> #6  X86ISA::handleIprRead (pkt=<optimized out>, xc=<optimized out>) at
>> build/X86/arch/x86/mmapped_ipr.hh:69
>>
>> #7  LSQ<O3CPUImpl>::SplitDataRequest::handleIprRead (this=<optimized
>> out>, thread=<optimized out>, mainPkt=<optimized out>) at
>> build/X86/cpu/o3/lsq_impl.hh:1105
>>
>> #8  0x0000555555cc3781 in LSQUnit<O3CPUImpl>::read (this=0x555557fae160,
>> req=0x555557aaf980, load_idx=19) at build/X86/cpu/o3/lsq_unit.hh:667
>>
>> #9  0x0000555555d0975d in LSQ<O3CPUImpl>::read (this=0x555558750928,
>> req=req@entry=0x555557aaf980, load_idx=19) at
>> build/X86/cpu/o3/lsq.hh:1035
>>
>> #10 0x0000555555d09cf3 in FullO3CPU<O3CPUImpl>::read (load_idx=<optimized
>> out>, req=0x555557aaf980, this=<optimized out>) at
>> build/X86/cpu/o3/cpu.hh:805
>>
>> #11 LSQ<O3CPUImpl>::pushRequest (this=this@entry=0x555558750928,
>> inst=..., isLoad=isLoad@entry=true, data=data@entry=0x0, size=<optimized
>> out>, size@entry=8, addr=<optimized out>, flags=..., res=0x0, amo_op=0x0)
>>
>>     at build/X86/cpu/o3/lsq_impl.hh:755
>>
>> #12 0x0000555555ca7b3b in FullO3CPU<O3CPUImpl>::pushRequest (amo_op=0x0,
>> res=0x0, flags=..., addr=94489281536, size=8, data=0x0, isLoad=true,
>> inst=..., this=0x55555874e000) at build/X86/cpu/o3/cpu.hh:799
>>
>> #13 BaseDynInst<O3CPUImpl>::initiateMemRead (this=<optimized out>,
>> addr=94489281536, size=8, flags=...) at build/X86/cpu/base_dyn_inst.hh:913
>>
>> #14 0x00005555569b9521 in X86ISA::initiateMemRead (traceData=<optimized
>> out>, flags=..., dataSize=<optimized out>, addr=<optimized out>,
>> xc=0x55555b262680) at build/X86/arch/x86/memhelpers.hh:50
>>
>> #15 X86ISAInst::LdBig::initiateAcc (this=0x55555b25d440,
>> xc=0x55555b262680, traceData=<optimized out>) at
>> build/X86/arch/x86/generated/exec-ns.cc.inc:19256
>>
>> #16 0x0000555555cdac15 in BaseO3DynInst<O3CPUImpl>::initiateAcc
>> (this=0x55555b262680) at build/X86/cpu/o3/dyn_inst_impl.hh:156
>>
>> #17 0x0000555555d137e7 in LSQUnit<O3CPUImpl>::executeLoad
>> (this=0x555557fae160, inst=...) at build/X86/cpu/o3/lsq_unit_impl.hh:543
>>
>> #18 0x0000555555d03a0b in LSQ<O3CPUImpl>::executeLoad 
>> (this=this@entry=0x555558750928,
>> inst=...) at build/X86/cpu/o3/lsq_impl.hh:252
>>
>> #19 0x0000555555cf1e96 in DefaultIEW<O3CPUImpl>::executeInsts
>> (this=this@entry=0x55555874f2f0) at build/X86/cpu/o3/iew_impl.hh:1283
>>
>> #20 0x0000555555cf59a0 in DefaultIEW<O3CPUImpl>::tick 
>> (this=this@entry=0x55555874f2f0)
>> at build/X86/cpu/o3/iew_impl.hh:1523
>>
>> #21 0x0000555555cc7574 in FullO3CPU<O3CPUImpl>::tick
>> (this=0x55555874e000) at build/X86/cpu/o3/cpu.cc:603
>>
>> #22 0x0000555556470699 in std::function<void ()>::operator()() const
>> (this=0x55555874e2f0) at /usr/include/c++/7/bits/std_function.h:706
>>
>> #23 EventFunctionWrapper::process (this=0x55555874e2b8) at
>> build/X86/sim/eventq.hh:836
>>
>> #24 EventQueue::serviceOne (this=this@entry=0x555557ecce40) at
>> build/X86/sim/eventq.cc:228
>>
>> #25 0x000055555648be77 in doSimLoop (eventq=0x555557ecce40) at
>> build/X86/sim/simulate.cc:219
>>
>> #26 0x000055555648ceba in simulate (num_cycles=<optimized out>) at
>> build/X86/sim/simulate.cc:132
>>
>> #27 0x0000555555b08d4e in pybind11::detail::argument_loader<unsigned
>> long>::call_impl<GlobalSimLoopExitEvent*, GlobalSimLoopExitEvent*
>> (*&)(unsigned long), 0ul, pybind11::detail::void_type> (f=<optimized out>,
>>
>>
>>     this=<optimized out>) at ext/pybind11/include/pybind11/cast.h:1860
>>
>> #28 pybind11::detail::argument_loader<unsigned
>> long>::call<GlobalSimLoopExitEvent*, pybind11::detail::void_type,
>> GlobalSimLoopExitEvent* (*&)(unsigned long)>(GlobalSimLoopExitEvent*
>> (*&)(unsigned long)) && (f=<optimized out>,
>>
>>     this=<optimized out>) at ext/pybind11/include/pybind11/cast.h:1837
>>
>> #29 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 (call=..., __closure=0x0) at
>> ext/pybind11/include/pybind11/pybind11.h:153
>>
>> #30 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
>>
>> #31 0x0000555555ae5bf4 in pybind11::cpp_function::dispatcher
>> (self=<optimized out>, args_in=0x7ffff2c14250, kwargs_in=0x7ffff2aed7f8) at
>> ext/pybind11/include/pybind11/pybind11.h:629
>>
>> #32 0x00007ffff7905697 in PyEval_EvalFrameEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #33 0x00007ffff7a37278 in PyEval_EvalCodeEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #34 0x00007ffff7904db6 in PyEval_EvalFrameEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #35 0x00007ffff7a37278 in PyEval_EvalCodeEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #36 0x00007ffff7904db6 in PyEval_EvalFrameEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #37 0x00007ffff7a37278 in PyEval_EvalCodeEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #38 0x00007ffff7904db6 in PyEval_EvalFrameEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #39 0x00007ffff7a37278 in PyEval_EvalCodeEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #40 0x00007ffff78ff029 in PyEval_EvalCode () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #41 0x00007ffff7905c80 in PyEval_EvalFrameEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #42 0x00007ffff7a37278 in PyEval_EvalCodeEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #43 0x00007ffff7904db6 in PyEval_EvalFrameEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #44 0x00007ffff7a37278 in PyEval_EvalCodeEx () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #45 0x00007ffff78ff029 in PyEval_EvalCode () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #46 0x00007ffff79a2546 in PyRun_StringFlags () from
>> /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
>>
>> #47 0x0000555556479893 in m5Main (argc=<optimized out>, _argv=<optimized
>> out>) at build/X86/sim/init.cc:303
>>
>> #48 0x00005555559ba738 in main (argc=8, argv=0x7fffffffe358) at
>> build/X86/sim/main.cc:69
>>
>>
>>
>> So if anyone in the community has been using x86 gem5 FS with O3CPU, let
>> me know if there was a problem in image or kernel or a way I can find
>> solution to this problem. Also, I think its high time we have to share a
>> startup latest image(Ubuntu) and kernel for x86.
>>
>>
>>
>>
>> Best regards,
>>
>> Abhishek
>> _______________________________________________
>> gem5-users mailing list
>> gem5-users@gem5.org
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
> _______________________________________________
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to