Title
Prudent Memory Reclamation in Procrastination-Based Synchronization.
Abstract
Procrastination is the fundamental technique used in synchronization mechanisms such as Read-Copy-Update (RCU) where writers, in order to synchronize with readers, defer the freeing of an object until there are no readers referring to the object. The synchronization mechanism determines when the deferred object is safe to reclaim and when it is actually reclaimed. Hence, such memory reclamations are completely oblivious of the memory allocator state. This induces poor memory allocator performance, for instance, when the reclamations are ill-timed. Furthermore, deferred objects provide hints about the future that inform memory regions that are about to be freed. Although useful, hints are not exploited as deferred objects are not visible to memory allocators. We introduce Prudence, a dynamic memory allocator, that is tightly integrated with the synchronization mechanism to ensure visibility of deferred objects to the memory allocator. Such an integration enables Prudence to (i) identify the safe time to reclaim deferred objectsu0027 memory, (ii) have an inclusive view of the allocated, free and about-to-be-freed objects, and (iii) exploit optimizations based on the hints about the future during important state transitions. Our evaluation in the Linux kernel shows that Prudence integrated with RCU performs 3.9X to 28X better in micro-benchmarks compared to SLUB, a recent memory allocator in the Linux kernel. It also improves the overall performance perceptibly (4%-18%) for a mix of widely used synthetic and application benchmarks. Further, it performs better (up to 98%) in terms of object hits in caches, object cache churns, slab churns, peak memory usage and total fragmentation, when compared with the SLUB allocator.
Year
DOI
Venue
2016
10.1145/2872362.2872405
ASPLOS
Keywords
Field
DocType
dynamic memory allocator, memory reclamation, read-copy-update (RCU)
Dynamic random-access memory,Registered memory,Interleaved memory,Computer science,Cache,Parallel computing,Real-time computing,Memory management,Memory map,Allocator,Linux kernel
Conference
Volume
Issue
ISSN
51
4
0163-5964
ISBN
Citations 
PageRank 
978-1-4503-4091-5
3
0.43
References 
Authors
12
2
Name
Order
Citations
PageRank
Aravinda Prasad130.43
K. Gopinath2488.17