This page documents how to setup KairosVM, create VMs and run benchmarks inside VMs. It is assumed that all git repositories have first been cloned.
First, build QEMU:
$ cd kairosvm-qemu && ./configure --target-list=x86_64-softmmu && make
Then build the KairosVM kernel:
$ cd kairosvm-kernel
$ cp /boot/config-`uname -r` .config
$ yes "" | make oldconfig
This should activate the CONFIG_KAIROS option, activate it manually if not. Then build the kernel:
$ sudo ./kinst.sh
Then reboot using the KairosVM kernel. The KairosVM kernel provides different modules which replace the kvm-intel and kvm-amd modules. On an Intel server, the kairosvm_intel module can be used. This step might require to unload an already loaded kvm module first (e.g. rmmod kvm-intel).
The test suite is located in kairosvm-userspace. All the configuration is done through the default.json file. First, be sure to build everything:
$ cd kairosvm-userspace
Most of the actions can be performed using the run_tests.py file and required to be root. The main configuration file is default.json. The default configuration runs 2 VMs and 2 tasks (x264) inside each VM.
You can now create a set of virtual machines (you need deboostrap):
# ./run_tests.py --create-vm
Then, build the benchmarks. As they have been updated to run on ChronOS, you need to have libchronos installed:
$ cd kairosvm-benchmarks && ./build.sh
Check that the kairosvm-intel module is loaded. If 'lsmod | grep kairosvm' does not return anything, load it with:
# modprobe kairosvm-intel
If you have an amd processor, launch kairosvm-amd instead. It creates the /proc/kairos/ directory. The content of this directory is described in Michael Drescher's MS thesis.
Finally the benchmarks can be launched using:
# ./run_tests.py -f
For each VM, you can find the results in /proc/kairos. For example for the first VM, the /proc/kairos/0/dsr file will give the Deadline Satisfaction Ratio for this VM.