Linux Plumber Conference 2019 - Beyond per-CPU atomics and rseq syscall: subset of eBPF bytecode for the do_on_cpu syscall
on 11 September 2019
The Restartable Sequences system call introduced in Linux 4.18 has limitations
which can be solved by introducing a bytecode interpreter running in
inter-processor interrupt context which accesses user-space data.
This discussion is about the subset of the eBPF bytecode and context needed by
this interpreter, and extensions of that bytecode to cover load-acquire and
store-conditional memory accesses, as well as memory barrier instructions. The
fact that the interpreter needs to allow loading data from userspace (tainted
data), which can then be used as address for loads and stores, as well as
conditional branches source register, will also be discussed.