Hello,

I am unable to restore simulations from checkpoints in Full System mode
with ARM. I ran my simulations with the following bash commands in one
script.

$CURR_DIR/build/ARM/gem5.opt configs/secure_mem/fs/unified_secure.py
--kernel $KERNEL_PATH --mem-size 4GB --cpu-type AtomicSimpleCPU --caches
--disk $DISK_PATH --script=$BOOTSCRIPT_PATH --checkpoint-at-end
$CURR_DIR/build/ARM/gem5.opt configs/secure_mem/fs/unified_secure.py
--kernel $KERNEL_PATH --mem-size 4GB --cpu-type DerivO3CPU --caches --disk
$DISK_PATH --script=$BOOTSCRIPT_PATH --checkpoint-restore=1

It seems that the first line was executed correctly. The cpt.* file was
created in m5out, but gem5 could not restore it from the checkpoint. This
is the error message I received.

gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 21.2.1.1
gem5 compiled Jul 10 2022 21:16:20
gem5 started Jul 12 2022 12:38:00
gem5 executing on chiajen, pid 3141
command line: /home/chiajen/gem5/build/ARM/gem5.opt
configs/secure_mem/fs/unified_secure.py --kernel
/home/chiajen/gem5/dist/binaries/vmlinux.arm64 --secure 1 --mem-size 4GB
--cpu-type AtomicSimpleCPU --caches --disk
/home/chiajen/gem5/dist/disks/ubuntu-18.04-arm64-docker.img
--script=/home/chiajen/gem5/bootscripts/fs_checkpoint.rcS
--checkpoint-at-end

warn: iobus.master is deprecated. `master` is now called `mem_side_ports`
warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
Global frequency set at 1000000000000 ticks per second
build/ARM/mem/mem_interface.cc:792: warn: DRAM device capacity (8192
Mbytes) does not match the address range assigned (4096 Mbytes)
build/ARM/sim/kernel_workload.cc:46: info: kernel located at:
/home/chiajen/gem5/dist/binaries/vmlinux.arm64
system.vncserver: Listening for connections on port 5900
system.terminal: Listening for connections on port 3456
system.realview.uart1.device: Listening for connections on port 3457
system.realview.uart2.device: Listening for connections on port 3458
system.realview.uart3.device: Listening for connections on port 3459
0: system.remote_gdb: listening for remote gdb on port 7000
build/ARM/arch/arm/fs_workload.cc:121: info: Using bootloader at address
0x10
build/ARM/arch/arm/fs_workload.cc:139: info: Using kernel entry physical
address at 0x80080000
build/ARM/arch/arm/linux/fs_workload.cc:96: info: Loading DTB file:
m5out/system.dtb at address 0x88000000
**** REAL SIMULATION ****
build/ARM/dev/arm/energy_ctrl.cc:252: warn: Existing EnergyCtrl, but no
enabled DVFSHandler found.
build/ARM/sim/simulate.cc:194: info: Entering event queue @ 0.  Starting
simulation...
build/ARM/dev/arm/rv_ctrl.cc:176: warn: SCReg: Access to unknown device
dcc0:site0:pos0:fn7:dev0
build/ARM/arch/arm/insts/pseudo.cc:172: warn: instruction 'csdb'
unimplemented
build/ARM/dev/arm/rv_ctrl.cc:122: warn: Tried to read RealView I/O at
offset 0x60 that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:122: warn: Tried to read RealView I/O at
offset 0x48 that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:198: warn: Tried to write RVIO at offset 0xa8
(data 0) that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:198: warn: Tried to write RVIO at offset 0xa8
(data 0) that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:198: warn: Tried to write RVIO at offset 0xa8
(data 0) that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:198: warn: Tried to write RVIO at offset 0xa8
(data 0) that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:198: warn: Tried to write RVIO at offset 0xa8
(data 0) that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:198: warn: Tried to write RVIO at offset 0xa8
(data 0) that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:198: warn: Tried to write RVIO at offset 0xa8
(data 0) that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:198: warn: Tried to write RVIO at offset 0xa8
(data 0) that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:198: warn: Tried to write RVIO at offset 0xa8
(data 0) that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:198: warn: Tried to write RVIO at offset 0xa8
(data 0) that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:122: warn: Tried to read RealView I/O at
offset 0x8 that doesn't exist
build/ARM/dev/arm/rv_ctrl.cc:122: warn: Tried to read RealView I/O at
offset 0x48 that doesn't exist
build/ARM/dev/arm/energy_ctrl.cc:77: warn: EnergyCtrl: Disabled handler,
ignoring read from reg 0
Exiting @ tick 434950318500 because m5_exit instruction encountered
Writing checkpoint
gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 21.2.1.1
gem5 compiled Jul 10 2022 21:16:20
gem5 started Jul 12 2022 12:40:49
gem5 executing on chiajen, pid 3170
command line: /home/chiajen/gem5/build/ARM/gem5.opt
configs/secure_mem/fs/unified_secure.py --kernel
/home/chiajen/gem5/dist/binaries/vmlinux.arm64 --secure 1 --mem-size 4GB
--cpu-type DerivO3CPU --caches --disk
/home/chiajen/gem5/dist/disks/ubuntu-18.04-arm64-docker.img
--script=/home/chiajen/gem5/bootscripts/fs_checkpoint.rcS
--checkpoint-restore=1

warn: iobus.master is deprecated. `master` is now called `mem_side_ports`
warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
Global frequency set at 1000000000000 ticks per second
build/ARM/mem/mem_interface.cc:792: warn: DRAM device capacity (8192
Mbytes) does not match the address range assigned (4096 Mbytes)
build/ARM/sim/kernel_workload.cc:46: info: kernel located at:
/home/chiajen/gem5/dist/binaries/vmlinux.arm64
system.vncserver: Listening for connections on port 5900
system.terminal: Listening for connections on port 3456
system.realview.uart1.device: Listening for connections on port 3457
system.realview.uart2.device: Listening for connections on port 3458
system.realview.uart3.device: Listening for connections on port 3459
gem5 has encountered a segmentation fault!

--- BEGIN LIBC BACKTRACE ---
/home/chiajen/gem5/build/ARM/gem5.opt(+0x7ba92c)[0xaaaadf71a92c]
/home/chiajen/gem5/build/ARM/gem5.opt(+0x7d9054)[0xaaaadf739054]
linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0xffff9bd937dc]
/home/chiajen/gem5/build/ARM/gem5.opt(+0x5d2700)[0xaaaadf532700]
/home/chiajen/gem5/build/ARM/gem5.opt(+0x5ae8c8)[0xaaaadf50e8c8]
/home/chiajen/gem5/build/ARM/gem5.opt(+0x20b0be4)[0xaaaae1010be4]
/home/chiajen/gem5/build/ARM/gem5.opt(+0x20b646c)[0xaaaae101646c]
/home/chiajen/gem5/build/ARM/gem5.opt(+0x4d0ae8)[0xaaaadf430ae8]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0x1229f4)[0xffff9b8929f4]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(_PyObject_MakeTpCall+0x8c)[0xffff9b84e840]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0xe0898)[0xffff9b850898]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x89f0)[0xffff9b7e91e0]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0x1b76d4)[0xffff9b9276d4]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0xe0848)[0xffff9b850848]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x89f0)[0xffff9b7e91e0]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0x1b76d4)[0xffff9b9276d4]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0xe0848)[0xffff9b850848]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x89f0)[0xffff9b7e91e0]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0x1b76d4)[0xffff9b9276d4]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x89f0)[0xffff9b7e91e0]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0x1b76d4)[0xffff9b9276d4]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x89f0)[0xffff9b7e91e0]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0x1b76d4)[0xffff9b9276d4]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(PyEval_EvalCode+0xa4)[0xffff9b922438]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0x1b29e4)[0xffff9b9229e4]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0x1282d8)[0xffff9b8982d8]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x5d68)[0xffff9b7e6558]
/lib/aarch64-linux-gnu/libpython3.10.so.1.0(+0x1b76d4)[0xffff9b9276d4]
/home/chiajen/gem5/build/ARM/gem5.opt(+0x51aaf8)[0xaaaadf47aaf8]
/home/chiajen/gem5/build/ARM/gem5.opt(+0x45c4b4)[0xaaaadf3bc4b4]
/lib/aarch64-linux-gnu/libc.so.6(+0x273fc)[0xffff9adf73fc]
/lib/aarch64-linux-gnu/libc.so.6(__libc_start_main+0x98)[0xffff9adf74cc]
--- END LIBC BACKTRACE ---
bash_scripts/fs_MEE.sh: line 10:  3170 Segmentation fault      (core
dumped) $CURR_DIR/build/ARM/gem5.opt
configs/secure_mem/fs/unified_secure.py --kernel $KERNEL_PATH --secure 1
--mem-size 4GB --cpu-type DerivO3CPU --caches --disk $DISK_PATH
--script=$BOOTSCRIPT_PATH --checkpoint-restore=1

This problem does not occur when both CPU types are atomic. I also
experimented with different input options. One that gave a different result
is the following.

$CURR_DIR/build/ARM/gem5.opt configs/secure_mem/fs/unified_secure.py
--kernel $KERNEL_PATH --secure 1 --mem-size 4GB --cpu-type $CPU_TYPE
--caches --disk $DISK_PATH --script=$BOOTSCRIPT_PATH --checkpoint-at-end
$CURR_DIR/build/ARM/gem5.opt configs/secure_mem/fs/unified_secure.py
--kernel $KERNEL_PATH --secure 1 --mem-size 4GB --cpu-type DerivO3CPU
--restore-with-cpu DerivO3CPU --caches --disk $DISK_PATH
--script=$BOOTSCRIPT_PATH --checkpoint-restore=1

In this case, I received no error messages, but the program stops and does
not produce any outputs.

**** REAL SIMULATION ****
build/ARM/dev/arm/energy_ctrl.cc:252: warn: Existing EnergyCtrl, but no
enabled DVFSHandler found.
build/ARM/sim/simulate.cc:194: info: Entering event queue @ 414294840500.
Starting simulation...
build/ARM/arch/arm/insts/pseudo.cc:172: warn: instruction 'csdb'
unimplemented
500822322500: system.terminal: attach terminal 0
518383741500: system.terminal: detach terminal 0

I ran “telnet localhost 3456” in a separate terminal, and this was what I
saw.

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
==== m5 terminal: Terminal 0 ====

Any help is appreciated.

Best regards,
Chia Jen Cheng
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to