From Global to Local Quiescence: Wait-Free Code Patching of Multi-Threaded Processes
Florian Rommel, Christian Dietrich, Birte Friesel, Marcel Köppen, Christoph Borchert, Michael Müller, Olaf Spinczyk, Daniel Lohmann
Abstract
Live patching has become a common technique to keep long-running system services secure and up-to-date without causing downtimes during patch application. However, to safely apply a patch, existing live-update methods require the entire process to enter a state of quiescence, which can be highly disruptive for multi-threaded programs: Having to halt all threads (e.g., at a global barrier) for patching not only hampers quality of service, but can also be tremendously difficult to implement correctly without causing deadlocks or other synchronization issues. this paper, we present WfPatch, a wait-free approach to inject code changes into running multi-threaded programs. Instead of having to stop the world before applying a patch, WfPatch can gradually apply it to each thread individually at a local point of quiescence, while all other threads can make uninterrupted progress. have implemented WfPatch as a kernel service and user-space library for Linux 5.1 and evaluated it with OpenLDAP, Apache, Memcached, Samba, Node.js, and MariaDB on Debian 10 (“buster”). In total, we successfully applied 33 different binary patches into running programs while they were actively servicing requests; 15 patches had a CVE number or were other critical updates. Applying a patch with WfPatch did not lead to any noticeable increase in request latencies — even under high load — while applying the same patch after reaching global quiescence increases tail latencies by a factor of up to 41x for MariaDB.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 48da11fa-f85f-447e-97df-17f8f204049eCited by top-tier papers9
- Save the Bruised Striver: A Reliable Live Patching Framework for Protecting Real-World PLCsMing Zhou, Haining Wang, Ke Li, Hongsong Zhu et al.EuroSys 2024 · 9 citations
- MELF: Multivariant Executables for a Heterogeneous WorldDominik Töllner, Christian Dietrich, Illia Ostapyshyn, Florian Rommel et al.USENIX ATC 2023 · 8 citations
- PYLIVE: On-the-Fly Code Change for Python-based Online ServicesHaochen Huang, Chengcheng Xiang, Li Zhong, Yuanyuan ZhouUSENIX ATC 2021 · 7 citations
- AutoPatch: Automated Generation of Hotpatches for Real-Time Embedded DevicesMohsen Salehi, Karthik PattabiramanCCS 2024 · 3 citations
- Xkernel: Principled Performance Tunability of Operating System KernelsZhongjie Chen, Wentao Zhang, Yulong Tang, Ran Shu et al.OSDI 2026 · 2 citations
Builds on1
Related papers
- The Case for DBMS Live PatchingMichael Fruth, Stefanie ScherzingerVLDB 2024 · 2 citations
- Live Patching for Distributed In-Memory Key-Value StoresMichael Fruth, Stefanie ScherzingerSIGMOD 2025 · 5 citations
- Luci: Loader-based Dynamic Software Updates for Off-the-shelf Shared ObjectsBernhard Heinloth, Peter Wägemann, Wolfgang Schröder-PreikschatUSENIX ATC 2023 · 1 citation
- Efficient Scheduler Live Update for Linux Kernel with ModularizationTeng Ma, Shanpei Chen, Yihao Wu, Erwei Deng et al.ASPLOS 2023 · 9 citations
- Strengthening Supply Chain Security with Fine-grained Safe Patch IdentificationChanghua Luo, Wei Meng, Shuai WangICSE 2024 · 1 citation
