Title | : | Integrating Read-Copy-Update Synchronization and Memory Allocation |
Speaker | : | Aravinda Prasad (IBM) |
Details | : | Tue, 11 Dec, 2018 11:00 AM @ A M Turing Hall |
Abstract: | : | The evolution of large multicore systems with thousands of cores
has led to the exploration of non-traditional procrastination-based
synchronization techniques such as Read-Copy-Update (RCU). Deferred
destruction is the fundamental technique used in such techniques where
writers in order to synchronize with the readers defer the freeing of
the objects until the completion of all pre-existing readers. The
readers, as a consequence, need not explicitly synchronize with the
writers resulting in low overhead read-side synchronization primitives.
We observe that the deferred destruction of objects leads to newer and
complex forms of interactions between the synchronization technique and
the memory allocator. In this talk I will present the impact of such
interactions in the operating system kernels for enterprise workloads.
RCU determines when the deferred object is safe to reclaim and when it
is actually reclaimed. As a result, the memory reclamation of the
deferred objects are completely oblivious of the memory allocator state
leading to poor memory allocator performance. Furthermore, we observe
that the deferred objects provide hints about the future that inform
memory regions that are about to be freed. Although useful, hints are
not exploited as the deferred objects are not visible to memory
allocator. We design Prudence, a new dynamic memory allocator, that is
tightly integrated with RCU to ensure visibility of deferred objects to
the memory allocator. Prudence exploits optimizations based on the hints
about the future during important state transitions. Our evaluation in
the Linux kernel shows that Prudence performs 3.9x to 28x better in
micro benchmarks compared to SLUB allocator. It also improves the
overall performance perceptibly (4%-18%) for a mix of widely used
synthetic and application benchmarks.
Speaker Bio : Aravinda Prasad completed his PhD from the Department of Computer Science and Automation at Indian Institute of Science (IISc), Bangalore. He is currently working at IBM Linux Technology Center, Bangalore as a senior engineer. His area of interest include multicore scalability, memory management and reliability, availability and serviceability (RAS) of operating systems. |