"SRM-Buffer: An OS Buffer Management Technique to Prevent 
Last Level Caches from Thrashing in Multicores",  

Xiaoning Ding, Kaibo Wang, and Xiaodong Zhang 

Proceedings of ACM EuroSys'11, Salzburg, Austria, April 10-13, 2011.  


Buffer caches in operating systems keep active file blocks in
memory to reduce disk accesses. Related studies have focused
on minimizing buffer misses and the resulting performance
degradation. However, the side effects and performance
implications of accessing the data in buffer caches
(i.e. buffer cache hits) have been ignored. In this paper, we
show that accessing buffer caches can cause serious performance
degradation on multicores, particularly with shared
last level caches (LLCs). There are two reasons for this problem.
First, data objects in files normally have weaker localities
than data objects in virtual memory spaces. Second, due
to the shared structure of LLCs on multicore processors, an
application accessing the data in a buffer cache may flush
the to-be-reused data of its co-running applications from the
shared LLC and significantly slow down these applications.

The paper proposes a buffer cache design called Selected
Region Mapping Buffer (SRM-buffer) for multicore systems
to address effectively the cache pollution problem caused by
OS buffer. SRM-buffer improves existing OS buffer management
with an enhanced page allocation policy that carefully
selects mapping physical pages upon buffer misses.
For a sequence of blocks accessed by an application, SRMbuffer
allocates physical pages that are mapped to a selected
region consisting of a small portion of sets in the LLC. Thus,
when these blocks are accessed, cache pollution is effectively
limited within the small cache region. We have implemented
a prototype of SRM-buffer into the Linux kernel,
and tested it with extensive workloads. Performance evaluation
shows SRM-buffer can improve system performance
and decrease the execution times of workloads by up to 36%.