Thank you so much for your detailed helpful information.

My working directory tree is as follows
. └── parsec/ ├── gem5 ├── disk-img/ │ └── parsec.img └── linux-kernel/ └──
vmlinux

 However, I followed your steps, and when I tried to run the following
command for the simulation

./build/X86/gem5.opt configs/example/fs.py
--disk-image=../disk-img/parsec.img --kernel=../linux-kernel/vmlinux
--num-cpus=4 --num-dirs=4 --cpu-type=X86KvmCPU --cpu-clock=2GHz --caches
--l1d_size=16kB --l1i_size=16kB --l2cache --num-l2cache=4
--mem-type=SimpleMemory --mem-size=3GB --ruby --network=garnet
--topology=Mesh_XY --mesh-rows=2 --script=scripts/parsec.rcS

I got the following error

build/X86/arch/x86/kvm/x86_cpu.cc:345: info:    0x491: 0x0
build/X86/arch/x86/kvm/x86_cpu.cc:345: info:    0xc0010015: 0x0
build/X86/arch/x86/kvm/x86_cpu.cc:345: info:    0x4b564d05: 0x0
build/X86/cpu/kvm/base.cc:1032: panic: KVM: Unexpected exit (exit_reason: 8)
Memory Usage: 3812892 KBytes
Program aborted at tick 827873500
--- BEGIN LIBC BACKTRACE ---
./build/X86/gem5.opt(+0x107cf30)[0x559cc4456f30]
./build/X86/gem5.opt(+0x10a2b8c)[0x559cc447cb8c]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f2cd2b6a520]
/lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c)[0x7f2cd2bbea7c]
/lib/x86_64-linux-gnu/libc.so.6(raise+0x16)[0x7f2cd2b6a476]
/lib/x86_64-linux-gnu/libc.so.6(abort+0xd3)[0x7f2cd2b507f3]
./build/X86/gem5.opt(+0x43b475)[0x559cc3815475]
./build/X86/gem5.opt(+0x792dce)[0x559cc3b6cdce]
./build/X86/gem5.opt(+0x78f8a9)[0x559cc3b698a9]
./build/X86/gem5.opt(+0x1092892)[0x559cc446c892]
./build/X86/gem5.opt(+0x10bbf08)[0x559cc4495f08]
./build/X86/gem5.opt(+0x10bd18f)[0x559cc449718f]
/lib/x86_64-linux-gnu/libstdc++.so.6(+0xdc253)[0x7f2cd2f35253]
/lib/x86_64-linux-gnu/libc.so.6(+0x94b43)[0x7f2cd2bbcb43]
/lib/x86_64-linux-gnu/libc.so.6(+0x126a00)[0x7f2cd2c4ea00]
--- END LIBC BACKTRACE ---
Aborted

I checked that my CPU is supporting *kvm *by using the command *kvm-ok* and
it is supported.

INFO: /dev/kvm exists
KVM acceleration can be used

I changed the CPU type by replacing --cpu-type=X86KvmCPU argument in the
simulation command with the following types

   - --cpu-type=*X86AtomicSimpleCPU *==> Halt for more than 1 hour
   (build/X86/sim/simulate.cc:192: info: Entering event queue @ 0.  Starting
   simulation...)
   - --cpu-type=*X86NonCachingSimpleCPU *==> Halt for more than 1 hour
   (build/X86/sim/simulate.cc:192: info: Entering event queue @ 0.  Starting
   simulation...)
   - --cpu-type=*X86MinorCPU *==> I received the following panic error

build/X86/sim/simulate.cc:192: info: Entering event queue @ 0.  Starting
simulation...
build/X86/mem/ruby/system/Sequencer.cc:613: warn: Replacement policy
updates recently became the responsibility of SLICC state machines. Make
sure to setMRU() near callbacks in .sm files!


build/X86/arch/generic/debugfaults.hh:128: panic: Invalid microop!
Memory Usage: 3782048 KBytes


Program aborted at tick 313000
--- BEGIN LIBC BACKTRACE ---


./build/X86/gem5.opt(+0x107cf30)[0x5593c36f9f30]
./build/X86/gem5.opt(+0x10a2b8c)[0x5593c371fb8c]


/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7fd57ccf1520]
/lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c)[0x7fd57cd45a7c]


/lib/x86_64-linux-gnu/libc.so.6(raise+0x16)[0x7fd57ccf1476]
/lib/x86_64-linux-gnu/libc.so.6(abort+0xd3)[0x7fd57ccd77f3]


./build/X86/gem5.opt(+0x43b475)[0x5593c2ab8475]
./build/X86/gem5.opt(+0x59cfb5)[0x5593c2c19fb5]


./build/X86/gem5.opt(+0x59cd44)[0x5593c2c19d44]
./build/X86/gem5.opt(+0x7fdcea)[0x5593c2e7acea]


./build/X86/gem5.opt(+0x8014e8)[0x5593c2e7e4e8]
./build/X86/gem5.opt(+0x802c90)[0x5593c2e7fc90]


./build/X86/gem5.opt(+0x84aa8b)[0x5593c2ec7a8b]
./build/X86/gem5.opt(+0x10ba0a7)[0x5593c37370a7]


./build/X86/gem5.opt(+0x1092892)[0x5593c370f892]
./build/X86/gem5.opt(+0x10bbf08)[0x5593c3738f08]


./build/X86/gem5.opt(+0x10bc4f3)[0x5593c37394f3]
./build/X86/gem5.opt(+0xe7d930)[0x5593c34fa930]


./build/X86/gem5.opt(+0x452432)[0x5593c2acf432]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x128023)[0x7fd57d816023]


/lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyObject_Call+0x5c)[0x7fd57d7cffec]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x4b16)[0x7fd57d764776]


/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)[0x7fd57d8b03af]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x9d68)[0x7fd57d7699c8]


/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)[0x7fd57d8b03af]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x9d68)[0x7fd57d7699c8]


/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)[0x7fd57d8b03af]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(PyEval_EvalCode+0xbe)[0x7fd57d8ab3de]


/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1bd96d)[0x7fd57d8ab96d]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1287b3)[0x7fd57d8167b3]


/lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x69de)[0x7fd57d76663e]
/lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)[0x7fd57d8b03af]


--- END LIBC BACKTRACE ---

Aborted


I would really appreciate your help and time. Thank you so much.

Best Regards,
*Eng. Karim Soliman*
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)


On Thu, Aug 10, 2023 at 4:34 PM Karim Soliman <karim.soli...@pua.edu.eg>
wrote:

> Thank you so much for your time and the valuable information.
>
> Best Regards,
> *Eng. Karim Soliman*
> Teaching Assistant
> Computer Engineering Department
> Pharos University in Alexandria (P.U.A)
>
>
> On Thu, Aug 10, 2023 at 1:32 PM Hansika Weerasena via gem5-users <
> gem5-users@gem5.org> wrote:
>
>> Hi Karim,
>>
>>
>>
>> The x86-parsec readme file runs experiment using gem5s new standard
>> library, and it does not support garnet at the moment. Therefore, I had
>> to go with fs.py (which is deprecated in current version of gem5). I was
>> able to replicate the same experiment using fs.py and using the same gem5
>> resources.
>>
>>
>>
>> I was able to do these steps and run parsec benchmark with garnet in full
>> system mode upto 64 cores. Following are the links and scripts I used, you
>> may need to change them according to your requirement.
>>
>>
>>
>>    1. I used the prebuilt X86 parsec disk image from gem5 resources :
>>    https://resources.gem5.org/resources/x86-parsec?version=1.0.0
>>    2. For linux kernel I used vmlinux-4.4.186
>>    3. Example Simulation.py the KVM switch on ROI start can be found
>>    here (
>>    
>> https://github.com/hansikaweerasena/gem5-n/blob/kvm-fs/configs/common/Simulation.py).
>>
>>    4. Example rcs script can be found here :
>>    https://github.com/hansikaweerasena/gem5-n/blob/kvm-fs/scripts/parsec.rcS
>>    5. Finally, following is an example command to run parsec on FS mode
>>    with garnet.
>>
>>
>>
>> *./build/X86/gem5.opt configs/example/fs.py --disk-image=dist/parsec.img
>> --kernel=dist/vmlinux-4.4.186 --num-cpus=4 --num-dirs=4
>> --cpu-type=X86KvmCPU --cpu-clock=2GHz --caches --l1d_size=16kB
>> --l1i_size=16kB --l2cache --num-l2cache=4 --mem-type=SimpleMemory
>> --mem-size=3GB --ruby --network=garnet --topology=Mesh_XY --mesh-rows=2
>> --script=scripts/parsec.rcS*
>>
>>
>>
>> Regards,
>>
>> Hansika Weerasena
>>
>> Research Assistant,
>>
>> University of Florida
>>
>>
>>
>>
>>
>>
>>
>> *From: *Karim Soliman via gem5-users <gem5-users@gem5.org>
>> *Date: *Wednesday, August 9, 2023 at 11:21 PM
>> *To: *The gem5 Users mailing list <gem5-users@gem5.org>
>> *Cc: *Karim Soliman <karim.soli...@pua.edu.eg>
>> *Subject: *[gem5-users] Running PARSEC benchmark on gem5 Garnet
>>
>> *[External Email]*
>>
>> Hey everyone,
>>
>>  For research purposes, I'm trying to run the *PARSEC *benchmark on
>> Garnet 2D mesh topology.
>>
>>
>>
>> I successfully simulated garnet synthetic traffic under standalone
>> protocol, after building gem5 using the following command *scons build*
>> */**NULL**/**gem5**.**opt PROTOCOL=Garnet_standalone **-**j**<**proc**>*
>>
>> I've used the configuration file for XY routing which is located at
>> */gem5/configs/topologies/Mesh_XY.py*
>>
>> The full command for simulating garnet synthetic traffic is
>>
>> ./build/NULL/gem5.opt ./configs/example/garnet_synth_traffic.py
>> --synthetic=uniform_random --network=garnet --mesh-rows=4 --num-cpus=16
>> --num-dirs=16 --topology=Mesh_XY--sim-cycles=25000000 --router-latency=4
>> --link-latency=1 --injectionrate=0.05
>>
>>
>>
>> The simulation for the garnet synthetic traffic is successful and
>> everything is fine.
>>
>>
>>
>> I've tried to run the PARSEC benchmark so I followed the x86-parsec
>> readme file at gem5 resources repo -
>> https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/stable/src/parsec/
>>
>> Gem5 is built using the following command: *scons build**/**X86**/**gem5*
>> *.**opt **-**j**<**proc**>*
>>
>> The benchmark is working fine and the simulation is successful.
>>
>>
>>
>> Currently, I want to run the PARSEC benchmark in garnet and run the
>> network on chip in full system simulation.
>>
>> I would really appreciate it if anyone could help me with the steps on
>> how to do it.
>>
>> *[image: Image removed by sender.]*
>>
>> Best Regards,
>>
>> *Eng. Karim Soliman*
>>
>> Teaching Assistant
>>
>> Computer Engineering Department
>>
>> Pharos University in Alexandria (P.U.A)
>> _______________________________________________
>> gem5-users mailing list -- gem5-users@gem5.org
>> To unsubscribe send an email to gem5-users-le...@gem5.org
>>
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to