Enabling Huge Pages for Real-World Executables

Hugifier, a userspace solution that enables huge page mappings for existing executables while preserving file-backed memory semantics, achieving over 90% iTLB miss reduction and up to 11.3% speedup.

Operating Systems
Memory Systems
Author

Nadav Amit

Published

June 16, 2026

In ACM SIGPLAN International Symposium on Memory Management (ISMM), 2026.

Abstract

While huge pages can dramatically reduce address translation overhead, their use for executable code remains limited by structural barriers in binary formats, page cache management, and loader mechanisms. Existing solutions copy code into anonymous memory, abandoning file-backed semantics and breaking cross-process sharing, memory reclamation, and debugging tools. Emerging kernel support for file-backed huge pages remains insufficient without relinking and modifying loaders, impractical for deployed and closed-source software.

We present Hugifier, a userspace solution that enables huge page mappings for existing executables while preserving file-backed memory semantics—executable memory sharing, paging, and debugging all continue to work correctly. Hugifier combines a binary transformation that aligns code segments to huge page boundaries without disassembly or relinking, with a runtime component that ensures huge page mappings on current kernels. Evaluation shows over 90% iTLB miss reduction and up to 11.3% speedup—exceeding libhugetlbfs by up to 5.3% and Linux’s current RO-THP by 7.3%; against a stronger “aligned” baseline modeling future kernel/loader support without segment separation, the binary transformation still adds 5.5%.