First please make sure you are using our kernel.
You need to download following code and compile yourself, mostly they are written in c/c++ and go. Go version has to >= 1.20.
-
- on switch branch:
make local && make install
- on switch branch:
-
make local-install
-
criu:
-
on switch branch:
make -j32 install-criu && cp criu/criu /root/downloads/switch-criu -
on v3.18:
make -j32 install-criu && cp criu/criu /root/downloads/raw-criu
-
-
- on switch branch:
BUILDTAGS=no_btrfs make && make install
- on switch branch:
-
- on switch branch:
make runc && make install
- on switch branch:
-
- copy this dir to
/root/test/
- copy this dir to
-
make && cp pseudo-mm-rdma-server /root/test
Three scripts in util repo is needed to run test:
-
test.sh- used to run different test, e.g., azure trace test or functional test
-
test-common.sh- define some common shell functions
-
machine-prepare.sh- need to run only once for each system boot
However, machine-prepare.sh only start necessary daemon, insert kernel modules, configure softroce (rxe), generate checkpoints and mm-template (called pseudo_mm in kernel code). It will not install or compile software. So you need to compile software at first and put it in the right place.
After boot, run:
-
bash machine-prepare.sh --mem-pool rdma --nic eth0for rdma based test -
bash machine-prepare.sh --mem-pool dax --dax-dev /dev/dax0.0for cxl based test
Then start test, run:
-
bash test.sh --mem 64for our method -
base test.sh --mem 64 --gc 10 --baselinefor containerd / docker container -
base test.sh --mem 64 --gc 10 --baseline --start-method criufor starting container with CRIU