You need to tweak your command(s) a little. Basically, when you take a
snapshot with a certain CPU and you restore it with a different CPU, your
restoration command has to reflect both.

Add the following to your command line when restoring (This solved the
problem with me):

--restore-with-cpu=${CPU_Restore_TYPE}CPU
--cpu-type=${CPU_Restore_TYPE}CPU such
that, you pass the CPU type that you need.

Keep me posted. I will be glad to help!

--

*Best,Abdelrahman Hussein*


On Tue, Jul 12, 2022 at 9:51 AM Chia Jen Cheng <chia...@bu.edu> wrote:

> 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
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to