virtme-ng

Building kernels, deploying and booting them can be a very time-consuming part of kernel development.

virtme-ng (https://github.com/arighi/virtme-ng) aims to provide a quick and easy way for kernel developers to expedite this process. It uses a combination of QEMU/KVM, microVM, virtio-fs and overlayfs to boot any recompiled kernel inside a virtualized copy-on-write (CoW) live snapshot of the running system.

This allows to basically “fork” a live system with a new kernel, creating a safe sandbox for executing tests, with performance comparable to native host execution, all while eliminating the need for the deployment and maintenance of dedicated testing systems.

Recently, virtme-ng has gained increased adoption beyond local kernel testing, being integrated into some relevant kernel projects’ CI/CD infrastructure, like netdev, sched-ext, Mutter, etc.

This talk aims to explore some internals of this tool and demonstrate how it can be integrated into CI/CD workflows for faster kernel testing, so that other kernel developers and projects can potentially benefit from it.

Andrea RIGHI