我已经能够在以全系统模式运行的ARM磁盘映像上创建一个检查点,并从该检查点进行恢复。但是,当我尝试在使用"--script"标志从检查点恢复时运行runscript(在configs/examples/fs.py中运行脚本时(,脚本不会被执行。我一直不知道为什么,在这方面的任何帮助都将不胜感激。
初始加载系统(此操作有效(-->build/ARM/gem5.opt configs/example/fs.py --disk-image=/home/bibin/projects/full-system-images/arm_18/disks/aarch64-ubuntu-trusty-headless.img --kernel=/home/bibin/projects/full-system-images/arm_18/binaries/vmlinux.vexpress_emm64 --bootloader=/home/bibin/projects/full-system-images/arm_18/binaries/boot_emm.arm64 --cpu-clock=250MHz --caches
通过telnetting和/sbin/m5检查点创建检查点后从检查点恢复(同样有效(-->build/ARM/gem5.opt configs/example/fs.py --disk-image=/home/bibin/projects/full-system-images/arm_18/disks/aarch64-ubuntu-trusty-headless.img --kernel=/home/bibin/projects/full-system-images/arm_18/binaries/vmlinux.vexpress_emm64 --bootloader=/home/bibin/projects/full-system-images/arm_18/binaries/boot_emm.arm64 --cpu-clock=250MHz --caches -r 1
从检查点恢复时尝试运行脚本(这不起作用(-->build/ARM/gem5.opt configs/example/fs.py --disk-image=/home/bibin/projects/full-system-images/arm_18/disks/aarch64-ubuntu-trusty-headless.img --kernel=/home/bibin/projects/full-system-images/arm_18/binaries/vmlinux.vexpress_emm64 --bootloader=/home/bibin/projects/full-system-images/arm_18/binaries/boot_emm.arm64 --cpu-clock=250MHz --caches --script=/home/bibin/projects/csr_parallelism/runscript_exit.rcS -r 1
运行脚本文件的内容就是-->/sbin/m5 exit
如上所述,--script
设置由m5 readefile
操作生成的stdout。
它实际上并不只是自动运行该脚本,您必须自己执行。
为了在手动获取断点时实现这一点,您可以按照以下说明运行:
sh -c 'm5 checkpoint;m5 readfile > /tmp/gem5.sh && sh /tmp/gem5.sh'
这样,当检查点恢复时,我们就处于运行shell脚本的中间,该脚本然后执行m5 readfile
并执行其内容。