Large pages are commonly deployed to reduce address translation overheads for big-memory workloads. Modern x86-64 processors from Intel and AMD support two large page sizes -- 1GB and 2MB. However, previous works on large pages have primarily focused on 2MB pages, partly due to lack of substantial evidence on the profitability of 1GB pages to real-world applications. We argue that in fact, inadequate system software support is responsible for a decade of underutilized hardware support for 1GB pages. Through extensive experimentation on a real system, we demonstrate that 1GB pages can improve performance over 2MB pages, and when used in tandem with 2MB pages for an important set of applications; the support for the latter is crucial but missing in current systems. Our design and implementation of \trident{} in Linux fully exploit hardware supported large pages by dynamically and transparently allocating 1GB, 2MB, and 4KB pages as deemed suitable. \trident{} speeds up eight memory-intensive applications by {$18\%$}, on average, over Linux's use of 2MB pages. We also propose \tridentpv{}, an extension to \trident{} that effectively virtualizes 1GB pages via copy-less promotion and compaction in the guest OS. Overall, this paper shows that even GB-sized pages have considerable practical significance with adequate software enablement, in turn motivating architects to continue investing/innovating in large pages.
翻译:通常部署大页用于减少大模量工作量的翻译管理费。 来自英特尔和AMD的现代x86-64处理器可以改进2个大页尺寸 -- -- 1GB和2MB。然而,以前大页的工程主要侧重于2MB页,部分原因是缺乏大量证据证明1GB页对现实世界应用程序的盈利性。我们争辩说,事实上,系统软件支持不足是10年来对1GB页硬件支持利用不足的原因。通过对一个真正的系统的广泛试验,我们证明1GB页可以提高2MB页的性能,如果与2MB页一起用于一套重要的应用程序;对后者的支持至关重要,但在目前的系统中却缺少。我们设计和实施Linux的\ tritdent * 充分利用硬件,通过动态和透明地分配 1GB、 2MB 和 4KB 页面的适宜性能支持。\triddc% 加快了八个记忆密集型应用程序的进度 {18_} 平均速度, 超过Linux 的2MB页的使用。我们还提议将大量硬页翻版的硬页, 翻版。