
The new RSEQ system call allows for faster user-space operations on per-CPU data by providing a shared data structure ABI between each user-space thread and the kernel. This allows update operations on per-CPU data without needing expensive atomic operations. The restartable sequences ABI can make faster querying the current CPU number, incrementing per-CPU counters, modifying data protected by per-CPU spinlocks, writing/reading per-CPU ring buffers, and more.
Restartable sequences allows for some significant performance improvements in select micro-benchmarks. Some of the performance details and more technical information outlined in this patch. For Linux 4.18 the restartable sequence system call is supported on ARM, POWER and x86. The restartable sequences support has been of benefit to the Facebook jemalloc allocator as one immediate user.
The five thousand plus lines of code introducing this new functionality is queued via this pull request for Linux 4.18.
3 Comments