Hi Abdelrahman,

Thank you for your help. When I tried that combination of inputs, the
segmentation fault disappeared. However, the m5 terminal did not display
the output of my executable and froze indefinitely.

There are no error messages on my local terminal, and this is what I see on
the m5 terminal.

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

Here is the content of my rcS script.

/sbin/m5 exit
echo "This works!"
/book_info.out

Best regards,
Chia Jen

On Thu, Jul 14, 2022 at 7:08 AM Abdelrahman S. Hussein <
abdelrahman.sob...@gmail.com> wrote:

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

Reply via email to