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