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 not prone to scale, 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 spin-lock based synchronization. Our solution allows threads to proceed in parallel, and commit their allocations/releases unless a conflict is materialized while handling the allocator metadata. Conflict detection relies on atomic Read-Modify-Write (RMW) machine instructions. 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 allocations/releases in full concurrency.

Marotta, R., Ianni, M., Scarselli, A., Pellegrini, A., Quaglia, F. (2019). NBBS: A non-blocking buddy system for multi-core machines. In Proceedings of the 19th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (pp.11-20). 345 E 47TH ST, NEW YORK, NY 10017 USA : IEEE [10.1109/CCGRID.2019.00011].

NBBS: A non-blocking buddy system for multi-core machines

Alessandro Pellegrini;Francesco Quaglia
2019-05-01

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 not prone to scale, 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 spin-lock based synchronization. Our solution allows threads to proceed in parallel, and commit their allocations/releases unless a conflict is materialized while handling the allocator metadata. Conflict detection relies on atomic Read-Modify-Write (RMW) machine instructions. 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 allocations/releases in full concurrency.
19th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID)
Rilevanza internazionale
mag-2019
Settore ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
English
Intervento a convegno
Marotta, R., Ianni, M., Scarselli, A., Pellegrini, A., Quaglia, F. (2019). NBBS: A non-blocking buddy system for multi-core machines. In Proceedings of the 19th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (pp.11-20). 345 E 47TH ST, NEW YORK, NY 10017 USA : IEEE [10.1109/CCGRID.2019.00011].
Marotta, R; Ianni, M; Scarselli, A; Pellegrini, A; Quaglia, F
File in questo prodotto:
File Dimensione Formato  
Mar19.pdf

solo utenti autorizzati

Tipologia: Documento in Post-print
Licenza: Copyright dell'editore
Dimensione 538.86 kB
Formato Adobe PDF
538.86 kB Adobe PDF   Visualizza/Apri   Richiedi una copia

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/2108/238478
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 0
  • ???jsp.display-item.citation.isi??? 0
social impact