Common implementations of core memory allocation components, like the Linux buddy system, handle concurrent allocation/release requests by synchronizing threads via spinlocks. This approach is 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. We present a fully non-blocking buddy-system, where threads performing concurrent allocations/releases do not undergo any spinlock based synchronization. Our solution allows threads to proceed in parallel, and commit their allocations/releases unless a conflict is materialized while handling its metadata. Conflict detection relies on conventional atomic machine instructions in the Read-Modify-Write (RMW) class. Beyond improving scalability and performance, our solution can also avoid wasting clock cycles for spin-lock operations by threads that could in principle carry out their memory allocation/release in full concurrency. Thus, it is resilient to performance degradation—in face of concurrent accesses—independently of the current level of fragmentation of the handled memory blocks.

NBBS: A Non-blocking Buddy System for Multi-core Machines / Marotta, Romolo; Ianni, Mauro; Scarselli, Andrea; Pellegrini, Alessandro; Quaglia, Francesco. - (2019), pp. 11-20. (Intervento presentato al convegno 19th Annual IEEE/ACM International Symposium in Cluster, Cloud, and Grid Computing tenutosi a Larnaca; Cyprus).

NBBS: A Non-blocking Buddy System for Multi-core Machines

marotta romolo;ianni mauro;scarselli andrea;pellegrini alessandro
;
quaglia francesco
2019

Abstract

Common implementations of core memory allocation components, like the Linux buddy system, handle concurrent allocation/release requests by synchronizing threads via spinlocks. This approach is 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. We present a fully non-blocking buddy-system, where threads performing concurrent allocations/releases do not undergo any spinlock based synchronization. Our solution allows threads to proceed in parallel, and commit their allocations/releases unless a conflict is materialized while handling its metadata. Conflict detection relies on conventional atomic machine instructions in the Read-Modify-Write (RMW) class. Beyond improving scalability and performance, our solution can also avoid wasting clock cycles for spin-lock operations by threads that could in principle carry out their memory allocation/release in full concurrency. Thus, it is resilient to performance degradation—in face of concurrent accesses—independently of the current level of fragmentation of the handled memory blocks.
2019
19th Annual IEEE/ACM International Symposium in Cluster, Cloud, and Grid Computing
memory allocators; buddy system; non-blocking algorithms
04 Pubblicazione in atti di convegno::04b Atto di convegno in volume
NBBS: A Non-blocking Buddy System for Multi-core Machines / Marotta, Romolo; Ianni, Mauro; Scarselli, Andrea; Pellegrini, Alessandro; Quaglia, Francesco. - (2019), pp. 11-20. (Intervento presentato al convegno 19th Annual IEEE/ACM International Symposium in Cluster, Cloud, and Grid Computing tenutosi a Larnaca; Cyprus).
File allegati a questo prodotto
File Dimensione Formato  
Marotta_Postprint_NBBS_2019.pdf

accesso aperto

Note: https://ieeexplore.ieee.org/document/8752730
Tipologia: Documento in Post-print (versione successiva alla peer review e accettata per la pubblicazione)
Licenza: Tutti i diritti riservati (All rights reserved)
Dimensione 543.79 kB
Formato Unknown
543.79 kB Unknown
Marotta_NBBS_2019.pdf

solo gestori archivio

Tipologia: Versione editoriale (versione pubblicata con il layout dell'editore)
Licenza: Tutti i diritti riservati (All rights reserved)
Dimensione 245.64 kB
Formato Adobe PDF
245.64 kB Adobe PDF   Contatta l'autore

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11573/1261792
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 0
  • ???jsp.display-item.citation.isi??? 0
social impact