三个命令行结果的对比,三个不同的结果,证明了kvmcpu的不准确性。
- 有ruby,叫ruby-1
- 没有ruby,第一次运行,叫做non-ruby-1
- 没有ruby,第一次运行,叫做non-ruby-2
命令行如下:
#ruby-1
./build/X86/gem5.opt -d m5out/onlyoneCPUkvmCheckPointDifferRCS20231218restore configs/deprecated/example/fs.py --script=configs/yz2023Nov/small_n2/yzfs_canneal.script --kernel=/home/yz/.cache/gem5/x86-linux-kernel-4.19.83 --disk=/home/yz/.cache/gem5/x86-parsec --checkpoint-dir=m5out/onlyoneCPUkvmCheckPointDifferRCS20231218 -r 1 --restore-with-cpu=X86KvmCPU --cpu-type=X86KvmCPU --num-cpus=1 --ruby --network=garnet --topology=Mesh_XY --mesh-rows=1 --num-dirs=1 --num-l2caches=1 --script=configs/yz2023Nov/small_n2/yzfs_canneal.script
#non-ruby-1
./build/X86/gem5.opt -d m5out/onlyoneCPUkvmCheckPointDifferRCS20231218restore configs/deprecated/example/fs.py --script=configs/yz2023Nov/small_n2/yzfs_canneal.script --kernel=/home/yz/.cache/gem5/x86-linux-kernel-4.19.83 --disk=/home/yz/.cache/gem5/x86-parsec --checkpoint-dir=m5out/onlyoneCPUkvmCheckPointDifferRCS20231218 -r 1 --restore-with-cpu=X86KvmCPU --cpu-type=X86KvmCPU --num-cpus=1 --script=configs/yz2023Nov/small_n2/yzfs_canneal.script
#non-ruby-2
./build/X86/gem5.opt -d m5out/onlyoneCPUkvmCheckPointDifferRCS20231218restore configs/deprecated/example/fs.py --script=configs/yz2023Nov/small_n2/yzfs_canneal.script --kernel=/home/yz/.cache/gem5/x86-linux-kernel-4.19.83 --disk=/home/yz/.cache/gem5/x86-parsec --checkpoint-dir=m5out/onlyoneCPUkvmCheckPointDifferRCS20231218 -r 1 --restore-with-cpu=X86KvmCPU --cpu-type=X86KvmCPU --num-cpus=1 --script=configs/yz2023Nov/small_n2/yzfs_canneal.script
结果 三个的都不一样,不可重复,而且难以区分有没有ruby的影响
ruby-1
non-ruby-1
non-ruby-2
这证明了kvm虽然很快只需要几秒种但是可重复性很差。