QPoints is a tool to generate a gem5 compatible checkpoints using QEMU. This tool currently works for only ARM system. This tool was created to reduce time spent in reaching a state state of long running applcations.
- QEMU
- Docker
- Python3
- Jinja2 python module
- gdb-multiarch
- A disk image
- (Optional) ARM Powered Apple Mac system. Needed this only to accelerate emulation.
-
Install docker, git, qemu-system packages on your host machine
sudo apt-get install git docker qemu-system
-
Run setup script which sets up directoris and builds a docker image
bash setup.sh
-
Download a disk image from Google Drive. Download script works in docker environment. Follow below steps do get the image.
bash run_docker.sh bash imgs/download_image.sh exit
After running above set of commands
imgs
folder containsubuntu-arm.img
disk image.Ubuntu image login user is
bgodala
and password is1234
.
- Launch QEMU emulation using the
run_ubuntu_linux.sh
filebash run_ubuntu.sh
- After reaching a steady state invoke the following command to create a checkpoint.
gen_snapshot.sh
command works in the docker environment. Start the docker and then invoke checkpoint generation command.bash run_docker.sh bash gen_snapshot.sh exit
-
To test checkpoint gem5 needs to be built. Use the following command to build gem5.
Start docker environment.
bash run_gem5_docker.sh
Build gem5.
cd gem5 scons -j8 build/ARM/gem5.opt exit
-
Run checkpoint in the docker environment.
bash run_gem5_docker.sh bash run_gem5.sh exit