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 eth0
for rdma based test -
bash machine-prepare.sh --mem-pool dax --dax-dev /dev/dax0.0
for cxl based test
Then start test, run:
-
bash test.sh --mem 64
for our method -
base test.sh --mem 64 --gc 10 --baseline
for containerd / docker container -
base test.sh --mem 64 --gc 10 --baseline --start-method criu
for starting container with CRIU