Enabling Fast Per-CPU User-Space Algorithms with Restartable Sequences

Session information has not yet been published for this event.

Refereed Presentation
Scheduled: Thursday, November 3, 2016 from 4:00 – 4:45pm in Sweeney F

One Line Summary

Explanation of the Restartable Sequences (rseq) system call: algorithm, ABI, and use-cases.


In 2012, Paul Turner and Andrew Hunter (Google) proposed a mechanism initially called “PerCpu Atomics”. Its main purpose is to allow performing atomic operations on per-CPU data without the overhead of atomic instructions. After many rounds of feedback, its latest implementation is known as “Restartable Sequences”. It opens the door to implementation of various per-CPU algorithms in user-space, better use of system memory and CPU caches. This presentation is about the current ABI exposed by the proposed system call, its algorithm, how to use it from user-space, and discussion of the use-cases it fulfills, namely:

  • Per-CPU memory allocators,
  • Per-CPU RCU grace period tracking in user-space,
  • Per-CPU ring buffers,
  • Per-CPU spinlocks.


scaling, performance, System Call, Atomic Operations, Per-CPU

Presentation Materials



  • 2950694092_0350657675_z


    Mathieu Desnoyers main contributions are in the area of tracing (monitoring/performance analysis/debugging) and scalability, both at the kernel and user-space levels. He maintains the LTTng project, the Userspace RCU library, as well as the Linux kernel membarrier system call. He works in close collaboration with the telecommunication industry, many Linux distributions, and with customers developing hardware scaling from small embedded devices to
    large-deployment servers. He is CEO and Senior Software Architect at EfficiOS.

Leave a private comment to organizers about this proposal