  Operating systems rely on system calls to allow the controlled communication
of isolated processes with the kernel and other processes. Every system call
includes a processor mode switch from the unprivileged user mode to the
privileged kernel mode. Although processor mode switches are the essential
isolation mechanism to guarantee the system's integrity, they induce direct and
indirect performance costs as they invalidate parts of the processor state. In
recent years, high-performance networks and storage hardware has made the
user/kernel transition overhead the bottleneck for IO-heavy applications. To
make matters worse, security vulnerabilities in modern processors (e.g.,
Meltdown) have prompted kernel mitigations that further increase the transition
overhead. To decouple system calls from user/kernel transitions we propose
AnyCall, which uses an in-kernel compiler to execute safety-checked user
bytecode in kernel mode. This allows for very fast system calls interleaved
with error checking and processing logic using only a single user/kernel
transition. We have implemented AnyCall based on the Linux kernel's eBPF
subsystem. Our evaluation demonstrates that system call bursts are up to 55
times faster using AnyCall and that real-world applications can be sped up by
24% even if only a minimal part of their code is run by AnyCall.
