Linux 4.18 Landing Restartable Sequences System Call, Yields Performance Benefits

Written by Michael Larabel in Linux Kernel on 10 June 2018 at 07:25 AM EDT. 3 Comments
LINUX KERNEL
Adding to the list of new features for Linux 4.18 is the long-in-development work on the restartable sequences system call.

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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week