PagePilot: Synergizing Heterogeneous Backend Devices with Reusability-Aware Page Offloading
Abstract
Page swapping remains the dominant mechanism for extending physical memory in modern operating systems. Despite the emergence of new memory technologies, swap-based memory extension continues to be widely deployed due to its transparency and compatibility with diverse storage backends. However, current Linux swap management relies on a simple priority-based policy when multiple heterogeneous backends are available, and is oblivious to page reuse behavior. As a result, fast devices are often occupied by pages that are rarely reused, while frequently refaulted pages are placed on slow devices, leading to unnecessary performance degradation under memory pressure. We present PagePilot, a reuse-aware page offloading framework for heterogeneous swap systems. PagePilot persistently tracks refault behavior across eviction and refault cycles and uses average refault distance to guide backend selection. In addition, a background migration mechanism corrects misplacements to preserve fast-device capacity for pages with imminent reuse. We implement PagePilot in the Linux 6.3 kernel and evaluate it using representative data-serving and analytics workloads. Our results show that PagePilot improves application throughput and reduces page-fault handling latency under memory pressure, while substantially increasing the fraction of refaults served by fast backends.