GNU Cauldron 2019 - Adding Linux restartable sequence (rseq) support in glibc

Restartable Sequences, a system call speeding up user-space operations on per-CPU data, made its way into the 4.18 Linux kernel.

This talk describes the basics of the rseq algorithm, going through the integration proposed for glibc 2.31. It presents the use-cases covered by the rseq system call, including memory allocators, per-CPU ring buffers, or just speeding up getting the current CPU number. Integration needed within GDB and emulators will also be discussed.

A discussion follows on the limitations of the current rseq system call, presenting missing pieces of kernel infrastructure required to cover additional use-cases.

Back to blog