A Non-blocking Buddy System for Scalable Memory Allocation on Multi-core Machines
Romolo Marotta, Mauro Ianni, Alessandro Pellegrini, Andrea Scarselli,, Francesco Quaglia

TL;DR
This paper introduces a non-blocking buddy system that enhances scalability and performance in multi-core memory allocation by avoiding spin-locks and using atomic instructions, suitable for high concurrency environments.
Contribution
It proposes a novel non-blocking buddy system that improves scalability and concurrency in memory allocation on multi-core machines, compatible with existing layered approaches.
Findings
Reduces contention in memory allocation
Improves scalability with high thread counts
Avoids spin-lock delays
Abstract
Common implementations of core memory allocation components, like the Linux buddy system, handle concurrent allocation/release requests by synchronizing threads via spin-locks. This approach is clearly not prone to scale with large thread counts, a problem that has been addressed in the literature by introducing layered allocation services or replicating the core allocators-the bottom most ones within the layered architecture. Both these solutions tend to reduce the pressure of actual concurrent accesses to each individual core allocator. In this article we explore an alternative approach to scalability of memory allocation/release, which can be still combined with those literature proposals. Conflict detection relies on conventional atomic machine instructions in the Read-Modify-Write (RMW) class. Furthermore, beyond improving scalability and performance, it can also avoid wasting…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
