gem5-users@gem5.org

The gem5 Users mailing list

View all threads

Segmentation fault when using checkpoint and standard-switch

陈亚琪
Mon, Aug 22, 2022 2:28 AM

Hi,
I wanted to change the CPU type with checkpoint or standard-switch during simulation in gem5 version 21.2.0.0, but I found an error when switching. I have located the error.

When using --checkpoint to switch, the commands used are as follows(I use m5_checkpoint to insert checkpoint into my testbench):
build/RISCV_MESI_Two_Level/gem5.opt configs/example/se.py --cmd=c-code/chen/a.out --caches --l1d_size=64kB --l1i_size=32kB --l2_size=128kB --cpu-type=O3CPU --checkpoint-restore=1 --checkpoint-dir=m5out
And the error occurred at:
Program received signal SIGSEGV, Segmentation fault.
0x0000555555f1cfdc in gem5::o3::Fetch::Fetch (this=0x55555862c4b0,
    _cpu=<optimized out>, params=...)
    at /usr/include/c++/9/bits/stl_vector.h:1058
1058       operator[](size_type __n) const _GLIBCXX_NOEXCEPT

When using --standard-switch to switch, the commands used are as follows:
build/RISCV_MESI_Two_Level/gem5.opt configs/example/se.py --cmd=c-code/hello --maxinsts 1000 --caches --standard-switch 500 --warmup-insts 500 --cpu-type=O3CPU
And the error occurred at:
Program received signal SIGSEGV, Segmentation fault.
0x0000555555e86bf5 in gem5::BaseSimpleCPU::BaseSimpleCPU (
    this=<optimized out>, p=...)
    at build/RISCV_MESI_Two_Level/cpu/simple/base.cc:95
95         if (FullSystem) {

I have tried to run these commands at old version(gem5 version 21.0.1.0), and they all work.

Hi, I wanted to change the CPU type with checkpoint or standard-switch during simulation in gem5 version 21.2.0.0, but I found an error when switching. I have located the error. When using --checkpoint to switch, the commands used are as follows(I use m5_checkpoint to insert checkpoint into my testbench): build/RISCV_MESI_Two_Level/gem5.opt configs/example/se.py --cmd=c-code/chen/a.out --caches --l1d_size=64kB --l1i_size=32kB --l2_size=128kB --cpu-type=O3CPU --checkpoint-restore=1 --checkpoint-dir=m5out And the error occurred at: Program received signal SIGSEGV, Segmentation fault. 0x0000555555f1cfdc in gem5::o3::Fetch::Fetch (this=0x55555862c4b0, &nbsp; &nbsp; _cpu=<optimized out&gt;, params=...) &nbsp; &nbsp; at /usr/include/c++/9/bits/stl_vector.h:1058 1058 &nbsp; &nbsp; &nbsp; operator[](size_type __n) const _GLIBCXX_NOEXCEPT When using --standard-switch to switch, the commands used are as follows: build/RISCV_MESI_Two_Level/gem5.opt configs/example/se.py --cmd=c-code/hello --maxinsts 1000 --caches --standard-switch 500 --warmup-insts 500 --cpu-type=O3CPU And the error occurred at: Program received signal SIGSEGV, Segmentation fault. 0x0000555555e86bf5 in gem5::BaseSimpleCPU::BaseSimpleCPU ( &nbsp; &nbsp; this=<optimized out&gt;, p=...) &nbsp; &nbsp; at build/RISCV_MESI_Two_Level/cpu/simple/base.cc:95 95 &nbsp; &nbsp; &nbsp; &nbsp; if (FullSystem) { I have tried to run these commands at old version(gem5 version 21.0.1.0), and they all work.