Reducing Minor Page Fault Overheads through Enhanced Page Walker

12/28/2021
by   Chandrahas Tirumalasetty, et al.
0

Application virtual memory footprints are growing rapidly in all systems from servers to smartphones. To address this growing demand, system integrators are incorporating larger amounts of main memory, warranting rethinking of memory management. In current systems, applications produce page faults whenever they access virtual memory regions that are not backed by a physical page. As application memory footprints grow, they induce more and more minor pagefaults. Handling of each minor page fault can take few 1000's of CPU-cycles and blocks the application till OS kernel finds a free physical frame. These page faults can be detrimental to the performance when their frequency of occurrence is high and spread across application run-time. Our evaluation of several workloads indicates an overhead due to minor page faults as high as 29 execution time. In this paper, we propose to mitigate this problem through a HW/SW co-design approach. Specifically, we first propose to parallelize portions of the kernel page allocation to run ahead of fault time in a separate thread. Then we propose the Minor Fault Offload Engine(MFOE), a per-core HW accelerator for minor fault handling. MFOE is equipped with pre-allocated frame table that it uses to service a page fault. On a page fault, MFOE quickly picks a pre-allocated page frame from this table, makes an entry for it in the TLB, and updates the page table entry to satisfy the page fault. The pre-allocation frame tables are periodically refreshed by a background thread, which also updates the data structures in the kernel to account for the handled page faults. We evaluate this system in the gem5 simulator with a modified Linux kernel running on top of simulated hardware. Our results show that MFOE improves the critical-path fault handling latency by 37x and improves the run-time amongst the evaluated applications, by an average of 7.5

READ FULL TEXT

page 5

page 16

research
05/30/2019

ExplFrame: Exploiting Page Frame Cache for Fault Analysis of Block Ciphers

Page Frame Cache (PFC) is a purely software cache, present in modern Lin...
research
07/29/2021

Revisiting Swapping in User-space with Lightweight Threading

Memory-intensive applications, such as in-memory databases, caching syst...
research
12/21/2011

Quest-V: A Virtualized Multikernel for High-Confidence Systems

This paper outlines the design of `Quest-V', which is implemented as a c...
research
04/06/2014

An Enhanced Multi-Pager Environment Support for Second Generation Microkernels

The main objective of this paper is to present a mechanism of enhanced p...
research
03/05/2010

FIFO anomaly is unbounded

Virtual memory of computers is usually implemented by demand paging. For...
research
05/09/2011

User Mode Memory Page Management: An old idea applied anew to the memory wall problem

It is often said that one of the biggest limitations on computer perform...
research
01/14/2023

Async-fork: Mitigating Query Latency Spikes Incurred by the Fork-based Snapshot Mechanism from the OS Level

In-memory key-value stores (IMKVSes) serve many online applications beca...

Please sign up or login with your details

Forgot password? Click here to reset