Hi Abdelrahman,

I downloaded my image from the gem5 guest binaries
https://www.gem5.org/documentation/general_docs/fullsystem/guest_binaries
and mounted it using gem5img.py, which I think corresponds to the 2nd
option listed on the gem5 website.

Here is the last bulk of /root/.bashrc:

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval
"$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

Best regards,
Chia Jen

On Thu, Jul 14, 2022 at 12:29 PM Abdelrahman S. Hussein <
abdelrahman.sob...@gmail.com> wrote:

> Would you please walk me through the steps that you followed to build the
> image itself? Also, there is a script file that gets appended to the
> /root/.bashrc during building the image (assuming that you have followed
> the steps on gem5 website).
>
> You can access the image using QEMU to modify it. The username is gem5 and
> the password is from 1 to 5. When you do, try to cat /root/.bashrc and show
> me the last bulk of lines that were added to this file. You should be able
> to recognize if they are related to gem5 since they are going to contain m5
> or something.
>
> One last comment, "m5 exit" just halts your entire simulation, so
> probably having it in the first line of your script is another problem.
> However, this is NOT the cause of the current behavior you are seeing now.
> Mainly, the problem is that the /root/.bashrc includes different commands
> from what should be there to read the rcs script you pass as an argument to
> the gem5. This is why I am asking you to share it with me.
>
> qemu-system-x86_64 -enable-kvm -hda YOUR_IMAGE_NAME -boot d -m 8000 -net
> user,hostfwd=tcp::10022-:22 -net nic
>
> This should open a QEMU terminal to your image. Otherwise, if nothing
> appears, check your terminal for something that says that it is running.
> The machine can be SSHed to on localhost with port number 10022.
>
>
> --
>
> *Best,Abdelrahman Hussein*
>
>
> On Thu, Jul 14, 2022 at 8:48 AM Chia Jen Cheng <chia...@bu.edu> wrote:
>
>> 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
>>
> _______________________________________________
> 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