Scheduler-aware locks

Scheduler-aware locks

Efficient lock algorithms are key to ensuring application scalability on
multi-core architectures [1, 2, 3]. While many lock algorithms have been
proposed in the past decades to improve lock handover times under high
contention as well as cache and NUMA locality, even the best lock algorithms
can perform poorly due to unfortunate decisions from the OS scheduler.

The Berkeley Packet Filter (BPF) makes it possible to inject verified code
inside the Linux kernel. While BPF was historically used for packet filtering,
it is now commonly used for profiling, and it has recently been used in more
exotic use cases (e.g., [4]).

We would like to use BPF to design a new family of lock algorithms that
communicate and cooperate with the OS scheduler to overcome the limitations of
the current state of the art.

As an intern at Inria, you will help implement and evaluate this idea, with the
objective to publish the results in a top systems conference such as USENIX ATC
or EuroSys.

Inria Paris is located near the Gare de Lyon in Paris. This internship can be
done at Inria Paris or remotely. The internship is suitable for M2 students,
with the possibility to do a Master's internship and a PhD thesis at Inria
afterward. The necessary background on lock algorithms and BPF can be acquired
during the internship.


Jean-Pierre Lozi (


[1] Jean-Pierre Lozi, Florian David, Gaël Thomas, Julia Lawall, Gilles Muller:
Remote Core Locking: migrating critical-section execution to improve the
performance of multithreaded applications. USENIX Annual Technical Conference
2012: 65-72

[2] Tudor David, Rachid Guerraoui, Vasileios Trigonakis:
Everything you always wanted to know about synchronization but were afraid to
ask. Symposium on Operating Systems Principles 2013: 34-38

[3] Hugo Guiroux, Renaud Lachaize, Vivien Quéma:
Multicore locks: the case is not closed yet. USENIX Annual Technical Conference
2016: 649-662

[4] Yoann Ghigoff, Julien Sopena, Kahina Lazri, Antoine Blin, Gilles Muller:
BMC: accelerating Memcached using safe in-kernel caching and pre-stack
processing. Symposium on Networked Systems Design and Implementation 2021: