usermode linux without MMU
- Track: Kernel
- Room: UA2.114 (Baudoux)
- Day: Sunday
- Start: 13:30
- End: 14:00
- Video only: ua2114
- Chat: Join the conversation!
Usermode Linux (UML) has been developed and maintained in linus tree for decades and well used by kernel developers as an instant way of virtualization within a userspace process, without relying on hypervisor (i.e., qemu/kvm) or software partition (i.e., namespace). Recently unit testing framework for kernel tree, KUnit, bases UML as a underlying infrastructure for the framework, which brings us more opportunities to use UML. However, UML is known as low syscall performance, mainly derived from the overhead of context switches caused with ptrace(2) syscall hook implementation. Additionally its dependency to the underlying environment (e.g., processor architecture, operating systems) makes it hard to refactor its implementation.
This talk introduces yet-another extension to UML, based on the architecture without MMU emulation. The kernel is configured with the option CONFIG_MMU=n, and we can apply alternate syscall hook mechanisms such as seccomp and zpoline in order to eliminate the bottlenecks of ptrace-based one. As a bonus, we can exercise nommu subsystem with a plenty of testing framework implemented with KUnit.
I will briefly overview its implementation, the comparison with the original UML architecture, and share several measurement results obtained during the development. We will also share the upstreaming status which we have been proposed [*1].
*1: https://lore.kernel.org/all/cover.1762075876.git.thehajime@gmail.com/
Speakers
| Hajime Tazaki |