NBBS: A Non-Blocking Buddy System for Multi-Core Machines
Common implementations of core memory allocation components 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 co...
Saved in:
| Published in: | IEEE transactions on computers Vol. 71; no. 3; pp. 599 - 612 |
|---|---|
| Main Authors: | , , , |
| Format: | Journal Article |
| Language: | English |
| Published: |
New York
IEEE
01.03.2022
The Institute of Electrical and Electronics Engineers, Inc. (IEEE) |
| Subjects: | |
| ISSN: | 0018-9340, 1557-9956 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | Common implementations of core memory allocation components 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-memory fragmentation and coalescing are also carried out in a fully non-blocking manner. Conflict detection relies in our solution on atomic Read-Modify-Write (RMW) machine instructions, guaranteed to execute atomically by the processor firmware. We also provide a proof of the correctness of our non-blocking buddy system and show the results of an experimental study that outlines the effectiveness of our solution. |
|---|---|
| AbstractList | Common implementations of core memory allocation components 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-memory fragmentation and coalescing are also carried out in a fully non-blocking manner. Conflict detection relies in our solution on atomic Read-Modify-Write (RMW) machine instructions, guaranteed to execute atomically by the processor firmware. We also provide a proof of the correctness of our non-blocking buddy system and show the results of an experimental study that outlines the effectiveness of our solution. |
| Author | Marotta, Romolo Ianni, Mauro Pellegrini, Alessandro Quaglia, Francesco |
| Author_xml | – sequence: 1 givenname: Romolo orcidid: 0000-0001-7589-9274 surname: Marotta fullname: Marotta, Romolo email: marotta@diag.uniroma1.it organization: University of Rome La Sapienza, Roma, Italy – sequence: 2 givenname: Mauro orcidid: 0000-0001-8727-1329 surname: Ianni fullname: Ianni, Mauro email: mianni@diag.uniroma1.it organization: University of Rome La Sapienza, Roma, Italy – sequence: 3 givenname: Alessandro orcidid: 0000-0002-0179-9868 surname: Pellegrini fullname: Pellegrini, Alessandro email: pellegrini@lockless.it organization: Lockless s.r.l, Roma, Italy – sequence: 4 givenname: Francesco orcidid: 0000-0002-5616-7980 surname: Quaglia fullname: Quaglia, Francesco email: francesco.quaglia@uniroma2.it organization: University of Rome Tor Vergata, Roma, Italy |
| BookMark | eNp9kDtvwjAURq2KSgXauUOXSJ0D13Yc290g6ksCOkDnyEns1jTE1E4G_n2DQB06dLrLOd-VzggNGtdohG4xTDAGOd1kEwIETyikQCW9QEPMGI-lZOkADQGwiCVN4AqNQtgCQEpADpFczefrh2gWrVwTz2tXftnmI5p3VXWI1ofQ6l1knI-WXd3aOHNeR0tVftpGh2t0aVQd9M35jtH70-Mme4kXb8-v2WwRl0TINjYal5ziAoRJKm44M5IWTGBTgEpNYlImeMEqhpOqoIqXPSUqrJgsjCFFktIxuj_t7r377nRo863rfNO_zElKuKA84dBT7ESV3oXgtclL26rWuqb1ytY5hvxYKd9k-bFSfq7Ue9M_3t7bnfKHf4y7k2G11r-0pEwAEPoDC0dxiA |
| CODEN | ITCOB4 |
| CitedBy_id | crossref_primary_10_1016_j_comnet_2024_110982 crossref_primary_10_1109_TPDS_2025_3568688 |
| Cites_doi | 10.1145/2555243.2555256 10.1109/TPDS.2004.8 10.1145/1837853.1693488 10.1145/1412228.1455262 10.1007/978-3-642-25873-2_22 10.1145/3064911.3064926 10.1007/978-3-319-03850-6_15 10.1109/ICCSA.2011.46 10.1007/11561927_10 10.1007/3-540-45414-4_21 10.1145/3018743.3019022 10.1145/773039.512451 10.1145/3315573.3329982 10.1007/s00453-008-9268-x 10.1145/356989.357000 10.1145/996841.996848 10.1007/978-3-030-15996-2_17 10.2316/P.2010.676-052 10.1109/PACT.2011.57 10.1109/TPDS.2018.2865932 10.1145/114005.102808 |
| ContentType | Journal Article |
| Copyright | Copyright The Institute of Electrical and Electronics Engineers, Inc. (IEEE) 2022 |
| Copyright_xml | – notice: Copyright The Institute of Electrical and Electronics Engineers, Inc. (IEEE) 2022 |
| DBID | 97E RIA RIE AAYXX CITATION 7SC 7SP 8FD JQ2 L7M L~C L~D |
| DOI | 10.1109/TC.2021.3060393 |
| DatabaseName | IEEE All-Society Periodicals Package (ASPP) 2005–Present IEEE All-Society Periodicals Package (ASPP) 1998–Present IEEE Xplore CrossRef Computer and Information Systems Abstracts Electronics & Communications Abstracts Technology Research Database ProQuest Computer Science Collection Advanced Technologies Database with Aerospace Computer and Information Systems Abstracts Academic Computer and Information Systems Abstracts Professional |
| DatabaseTitle | CrossRef Technology Research Database Computer and Information Systems Abstracts – Academic Electronics & Communications Abstracts ProQuest Computer Science Collection Computer and Information Systems Abstracts Advanced Technologies Database with Aerospace Computer and Information Systems Abstracts Professional |
| DatabaseTitleList | Technology Research Database |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Engineering Computer Science |
| EISSN | 1557-9956 |
| EndPage | 612 |
| ExternalDocumentID | 10_1109_TC_2021_3060393 9358002 |
| Genre | orig-research |
| GroupedDBID | --Z -DZ -~X .DC 0R~ 29I 4.4 5GY 6IK 85S 97E AAJGR AARMG AASAJ AAWTH ABAZT ABQJQ ABVLG ACGFO ACIWK ACNCT AENEX AETEA AGQYO AHBIQ AKJIK AKQYR ALMA_UNASSIGNED_HOLDINGS ASUFR ATWAV BEFXN BFFAM BGNUA BKEBE BPEOZ CS3 DU5 EBS EJD HZ~ IEDLZ IFIPE IPLJI JAVBF LAI M43 MS~ O9- OCL P2P PQQKQ RIA RIE RNS RXW TAE TN5 TWZ UHB UPT XZL YZZ AAYXX ABUFD CITATION 7SC 7SP 8FD JQ2 L7M L~C L~D |
| ID | FETCH-LOGICAL-c289t-fe1c731b08f4d7f75f93b581fb0a6f4f6587b5d514db3a7cf4d8d1a59bff2b463 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 4 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000754244400008&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 0018-9340 |
| IngestDate | Sun Nov 30 04:55:30 EST 2025 Sat Nov 29 01:35:42 EST 2025 Tue Nov 18 22:18:33 EST 2025 Wed Aug 27 02:49:39 EDT 2025 |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 3 |
| Language | English |
| License | https://ieeexplore.ieee.org/Xplorehelp/downloads/license-information/IEEE.html https://doi.org/10.15223/policy-029 https://doi.org/10.15223/policy-037 |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-c289t-fe1c731b08f4d7f75f93b581fb0a6f4f6587b5d514db3a7cf4d8d1a59bff2b463 |
| Notes | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 |
| ORCID | 0000-0001-7589-9274 0000-0002-5616-7980 0000-0002-0179-9868 0000-0001-8727-1329 |
| PQID | 2627837470 |
| PQPubID | 85452 |
| PageCount | 14 |
| ParticipantIDs | ieee_primary_9358002 crossref_citationtrail_10_1109_TC_2021_3060393 proquest_journals_2627837470 crossref_primary_10_1109_TC_2021_3060393 |
| PublicationCentury | 2000 |
| PublicationDate | 2022-03-01 |
| PublicationDateYYYYMMDD | 2022-03-01 |
| PublicationDate_xml | – month: 03 year: 2022 text: 2022-03-01 day: 01 |
| PublicationDecade | 2020 |
| PublicationPlace | New York |
| PublicationPlace_xml | – name: New York |
| PublicationTitle | IEEE transactions on computers |
| PublicationTitleAbbrev | TC |
| PublicationYear | 2022 |
| Publisher | IEEE The Institute of Electrical and Electronics Engineers, Inc. (IEEE) |
| Publisher_xml | – name: IEEE – name: The Institute of Electrical and Electronics Engineers, Inc. (IEEE) |
| References | ref13 ref12 ref15 ref14 ref11 ref10 Buck (ref19) ref17 ref16 ref18 Bonwick (ref2) Gorman (ref1) 2004 Fraser (ref23) 2004 ref24 ref26 Knuth (ref25) 1997; 1 ref20 ref22 ref28 ref8 ref7 ref9 ref4 ref3 ref6 ref5 Blelloch (ref21) 2020; 179 Lever (ref27) |
| References_xml | – volume: 1 volume-title: The Art of Computer Programming: Fundamental Algorithms year: 1997 ident: ref25 – ident: ref10 doi: 10.1145/2555243.2555256 – ident: ref24 doi: 10.1109/TPDS.2004.8 – ident: ref9 doi: 10.1145/1837853.1693488 – start-page: 1134 volume-title: Proc. IEEE 10th Int. Conf. Comput. Inf. Technol. ident: ref19 article-title: XMalloc: A scalable lock-free dynamic memory allocator for many-core machines – volume-title: Understanding the Linux Virtual Memory Manager year: 2004 ident: ref1 – ident: ref8 doi: 10.1145/1412228.1455262 – ident: ref26 doi: 10.1007/978-3-642-25873-2_22 – ident: ref12 doi: 10.1145/3064911.3064926 – volume: 179 year: 2020 ident: ref21 article-title: Brief announcement: Concurrent fixed-size allocation and free in constant time – ident: ref11 doi: 10.1007/978-3-319-03850-6_15 – start-page: 56 volume-title: Proc. Annu. Conf. USENIX Annu. Tech. Conf. ident: ref27 article-title: Malloc() performance in a multithreaded Linux environment – ident: ref28 doi: 10.1109/ICCSA.2011.46 – ident: ref6 doi: 10.1007/11561927_10 – ident: ref4 doi: 10.1007/3-540-45414-4_21 – ident: ref5 doi: 10.1145/3018743.3019022 – year: 2004 ident: ref23 article-title: Practical lock-freedom – ident: ref14 doi: 10.1145/773039.512451 – volume-title: Proc. USENIX Summer Tech. Conf. ident: ref2 article-title: The slab allocator: An object-caching kernel memory allocator – ident: ref22 doi: 10.1145/3315573.3329982 – ident: ref16 doi: 10.1007/s00453-008-9268-x – ident: ref13 doi: 10.1145/356989.357000 – ident: ref15 doi: 10.1145/996841.996848 – ident: ref18 doi: 10.1007/978-3-030-15996-2_17 – ident: ref20 doi: 10.2316/P.2010.676-052 – ident: ref17 doi: 10.1109/PACT.2011.57 – ident: ref7 doi: 10.1109/TPDS.2018.2865932 – ident: ref3 doi: 10.1145/114005.102808 |
| SSID | ssj0006209 |
| Score | 2.3888834 |
| Snippet | Common implementations of core memory allocation components handle concurrent allocation/release requests by synchronizing threads via spin-locks. This... |
| SourceID | proquest crossref ieee |
| SourceType | Aggregation Database Enrichment Source Index Database Publisher |
| StartPage | 599 |
| SubjectTerms | back-end memory allocation buddy system Data structures Firmware Instruction sets Materials handling Memory management Message systems Microprocessors Non-blocking algorithms Proposals Resource management Scalability shared-memory algorithms Synchronism |
| Title | NBBS: A Non-Blocking Buddy System for Multi-Core Machines |
| URI | https://ieeexplore.ieee.org/document/9358002 https://www.proquest.com/docview/2627837470 |
| Volume | 71 |
| WOSCitedRecordID | wos000754244400008&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVIEE databaseName: IEEE Electronic Library (IEL) customDbUrl: eissn: 1557-9956 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0006209 issn: 0018-9340 databaseCode: RIE dateStart: 19680101 isFulltext: true titleUrlDefault: https://ieeexplore.ieee.org/ providerName: IEEE |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LSwMxEB5q8aAHq61itUoOHjyYus9k4627WDzoIliht2WzSUCQrfQh-O9Nsg8U9eBtDxMIk53MN0nm-wAuolDxMCcBFspTOCBBhLnO1Jj5innELxyaW9WSe5qm0XzOHjtw1fbCSCnt4zM5Np_2Ll8sio05Kru2d3aGOXKLUlr1arW7Lmmec7g6gP3AqWl8XIddzxJdB3ruWKNj04n6LQNZSZUf-7BNLtPe_6a1D3s1iESTatUPoCPLPvQagQZUx2sfdr-wDQ6ApXH8dIMmKF2UONZJzJySo3gjxAeqiMuRRrDItuTiRE8CPdiXlnJ1CM_T21lyh2vlBFzoAmqNlXQL6rvciVQgqKKhYj4PI1dxJycqUBp2UB4KDZYE93NaaKtIuHnIuFIeD4h_BN1yUcpjQMIvlCTcM1RhRtpKm1BCopAxpaEHk0MYN97MippW3KhbvGa2vHBYNksy4_6sdv8QLtsBbxWjxt-mA-Pt1qx29BBGzXJldcStMo8YzRBdHDknv486hR3PaPdaUswRdNfLjTyD7eJ9_bJantuf6RO5QMPS |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NSwMxEB1KFdSD1VaxWjUHDx5Mux_Z7MZbWywV20Vwhd6WzSYBQVrph-C_N0m3i6IevO1hAmGyybxJZt4DuIoCxYOMEiyUpzChJMJcR2rMfMU86udOmFnVklEYx9Fkwh4rcFP2wkgpbfGZbJtP-5YvZvnKXJV17JudYY7cCgjx3HW3Vnnu0k1Bh6u3sE-cgsjHdVgn6etM0HPbGh-bXtRvMciKqvw4iW14GdT-N7ED2C9gJOqu1_0QKnJah9pGogEVO7YOe1_4BhvA4l7v6RZ1UTyb4p4OY-aeHPVWQnygNXU50hgW2aZc3NeTQGNbaykXR_A8uEv6Q1xoJ-Bcp1BLrKSbh77LnUgREaowUMznQeQq7mRUEaWBR8gDoeGS4H4W5toqEm4WMK6Uxwn1j6E6nU3lCSDh50pS7hmyMCNupU1CSqOAMaXBB5NNaG-8meYFsbjRt3hNbYLhsDTpp8b9aeH-JlyXA97WnBp_mzaMt0uzwtFNaG2WKy323CL1qFEN0emRc_r7qEvYGSbjUTq6jx_OYNczjQy2mqwF1eV8Jc9hO39fvizmF_bH-gQVY8cL |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=NBBS%3A+A+Non-Blocking+Buddy+System+for+Multi-Core+Machines&rft.jtitle=IEEE+transactions+on+computers&rft.au=Marotta%2C+Romolo&rft.au=Ianni%2C+Mauro&rft.au=Pellegrini%2C+Alessandro&rft.au=Quaglia%2C+Francesco&rft.date=2022-03-01&rft.pub=IEEE&rft.issn=0018-9340&rft.volume=71&rft.issue=3&rft.spage=599&rft.epage=612&rft_id=info:doi/10.1109%2FTC.2021.3060393&rft.externalDocID=9358002 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0018-9340&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0018-9340&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0018-9340&client=summon |