Measurement-Directed Application of Compiler-Assisted Dynamic Variability Management in the Linux Kernel

Linux can be considered as a prime example of variability and configurability in software systems. In many cases, variability requirements are resolved statically, during the compilation of the kernel, by selecting and inserting the configured features into the final compilation product. Although, static variability being the backbone of the kernel's flexibility, it is not sufficient for all configuration determinations. Sometimes, it is required or simply more convenient to defer a variation decision to the run-time. This dynamic form of variability is, due to its application at run-time, often linked to considerable performance penalties, arising from branches in the control flow.

Function Multiverse is a new compiler-assisted approach to realize dynamic variability efficiently by utilising binary patching. It has been shown that Multiverse can be successfully applied in the Linux kernel.

The goal of this thesis is to find areas of application in the Linux kernel where the use of Multiverse results in measurable performance benefits. Potential candidates are determined by measuring access frequencies of variables in the kernel. In a second step, Multiverse is applied in certain promising cases. Benchmarks will be employed to assess and evaluate the solution's performance.

Relevant Publications

DSPL Workshop
Function Multiverses for Dynamic Variability
Valentin Rothberg, Christian Dietrich, Alexander Graf, Daniel LohmannFoundations and Applications of Self* Systems2016.
PDF [BibTex]