Hi everyone,
Because I am new to the gem5, maybe some confusions need your generous help. I followed the instrucitons according to the www.gem5.org, now I maybe know how to run a fs simulation. I use the 20.0.0.3 gem5, I also test the latest version and the 19 version, but I have encounter some things I cannot understand. The command line I run as following: build/X86/gem5.opt configs/example/fs.py --kernel=vmlinux-5.4.49 --disk=parsec.img --ruby --network=garnet2.0 --num-dirs=16 --num-cpus=16 --mesh-rows=4 --topology=Mesh_XY --cpu-clock=2GHz --sys-clock=2GHz --mem-size=2GB --cpu-type=TimingSimpleCPU When I enter the simulated system, I create a checkpoint by m5 checkpoint instrcution. And then I want to restore with the O3 CPU, but I encounter the core dumped error.The restore command line is as following: build/X86/gem5.opt -d ../experiments-result/gem5-20/test-boot configs/example/fs.py --kernel=vmlinux-5.4.49 --disk=parsec.img --num-cpus=16 --num-dirs=16 --topology=Mesh_XY --mesh-rows=4 --ruby --network=garnet2.0 --mem-size=2GB --cpu-clock=2GHz --sys-clock=2GHz --l1i_size=32kB --l1d_size=32kB --l2cache --restore-with-cpu=DerivO3CPU -r 1 The error information is following: gem5 version 20.0.0.3 gem5 compiled Nov 17 2021 18:34:33 gem5 started Nov 23 2021 10:07:55 command line: build/X86/gem5.opt -d ../experiments-result/gem5-20/test-boot configs/example/fs.py --kernel=vmlinux-5.4.49 --disk=parsec.img --num-cpus=16 --num-dirs=16 --topology=Mesh_XY --mesh-rows=4 --ruby --network=garnet2.0 --mem-size=2GB --cpu-clock=2GHz --sys-clock=2GHz --l1i_size=32kB --l1d_size=32kB --l2cache --restore-with-cpu=DerivO3CPU -r 1 Global frequency set at 1000000000000 ticks per second warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (128 Mbytes) info: kernel located at: /home/zhangmeng/gem5-20/full_system_images/binaries/vmlinux-5.4.49 system.pc.com_1.device: Listening for connections on port 3456 0: system.pc.south_bridge.cmos.rtc: Real-time clock set to Sun Jan 1 00:00:00 2012 0: system.remote_gdb: listening for remote gdb on port 7000 0: system.remote_gdb: listening for remote gdb on port 7001 0: system.remote_gdb: listening for remote gdb on port 7002 0: system.remote_gdb: listening for remote gdb on port 7003 0: system.remote_gdb: listening for remote gdb on port 7004 0: system.remote_gdb: listening for remote gdb on port 7005 0: system.remote_gdb: listening for remote gdb on port 7006 0: system.remote_gdb: listening for remote gdb on port 7007 0: system.remote_gdb: listening for remote gdb on port 7008 0: system.remote_gdb: listening for remote gdb on port 7009 0: system.remote_gdb: listening for remote gdb on port 7010 0: system.remote_gdb: listening for remote gdb on port 7011 0: system.remote_gdb: listening for remote gdb on port 7012 0: system.remote_gdb: listening for remote gdb on port 7013 0: system.remote_gdb: listening for remote gdb on port 7014 0: system.remote_gdb: listening for remote gdb on port 7015 warn: Reading current count from inactive timer. Switch at curTick count:10000 info: Entering event queue @ 0. Starting simulation... warn: Replacement policy updates recently became the responsibility of SLICC state machines. Make sure to setMRU() near callbacks in .sm files! 5576798155500: system.pc.com_1.device: attach terminal 0 info: Entering event queue @ 5576621531250. Starting simulation... Switched CPUS @ tick 5576621541250 switching cpus info: Entering event queue @ 5576621541250. Starting simulation... panic: Possible Deadlock detected. Aborting! version: 14 request.paddr: 0x7d598eb0 m_readRequestTable: 1 current time: 5585791511000 issue_time: 5585291514500 difference: 499996500 Memory Usage: 3038924 KBytes Program aborted at tick 5585791511000 --- BEGIN LIBC BACKTRACE --- build/X86/gem5.opt(_Z15print_backtracev+0x2c)[0x55d9304d134c] build/X86/gem5.opt(_Z12abortHandleri+0x4a)[0x55d9304e2d1a] /lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7f7919672980] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f7917e80fb7] /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f7917e82921] build/X86/gem5.opt(+0x595def)[0x55d92f985def] build/X86/gem5.opt(+0xf3d898)[0x55d93032d898] build/X86/gem5.opt(_ZN10EventQueue10serviceOneEv+0xa5)[0x55d9304d97a5] build/X86/gem5.opt(_Z9doSimLoopP10EventQueue+0x87)[0x55d9304fc667] build/X86/gem5.opt(_Z8simulatem+0xcba)[0x55d9304fd6ba] build/X86/gem5.opt(+0xcdc291)[0x55d9300cc291] build/X86/gem5.opt(+0x6cb394)[0x55d92fabb394] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x8010)[0x7f7919921780] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f7919a5e908] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5bf6)[0x7f791991f366] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f7919a5e908] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5bf6)[0x7f791991f366] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f7919a5e908] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5bf6)[0x7f791991f366] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f7919a5e908] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5bf6)[0x7f791991f366] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f7919a5e908] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f79199195d9] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ac0)[0x7f7919920230] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f7919a5e908] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5bf6)[0x7f791991f366] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f7919a5e908] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f79199195d9] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyRun_StringFlags+0x76)[0x7f79199c96f6] build/X86/gem5.opt(_Z6m5MainiPPc+0x83)[0x55d9304e1813] build/X86/gem5.opt(main+0x38)[0x55d92f93f538] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7f7917e63bf7] --- END LIBC BACKTRACE --- Aborted (core dumped) Is it mean that I cannot use the checkpoint like this method, I try to figoure out what's wrong, but I failed. Frist I use the AtomicSimpleCPU to accelerate the simulation, but I failed again, because I later found that it seemed that this simulation cannot restore O3CPU from the AtomicSimpleCPU, which is reported in the Stack Overflow. Now, I am very confused to this error, do I need to modify the code? And the other confusion is about to run benchmark in the fs mode. The kernel and disk image I used were downloaded from the gem5-resources, I just want to run the PARSEC3.0 to do a test, when I enter the booted system(the cpu-type is TimingSimpleCPU or AtomicSimpleCPU) , I can run some applications by the parsecmgmt command, I guess this way is almost same with the script, I also can get some results, but I cannot know the results whether is right. How can I partion the applications to the ROI. And is there have difference between using scripts to run benchmark and using related command in the simulated system to run benchmark? I think is not, because I understand the simulated system is just like a Virtual Machine, I can run the benchmark through the command line and then exit the system to get the run results? Is this right? Best regards, Zhang Yu
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s