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 exitAfter running above set of commands
imgsfolder containsubuntu-arm.imgdisk image.Ubuntu image login user is
bgodalaand password is1234.
- Launch QEMU emulation using the
run_ubuntu_linux.shfilebash run_ubuntu.sh - After reaching a steady state invoke the following command to create a checkpoint.
gen_snapshot.shcommand 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.shBuild 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