ARM64 上的 HugeTLBpage¶
Hugepage 依赖于有效利用 TLB 来提高地址转换的性能。好处取决于以下两点:
hugepage 的大小
TLB 支持的条目大小
ARM64 端口支持两种类型的 hugepage。
1) pud/pmd 级别的块映射¶
这些是常规的 hugepage,其中 pmd 或 pud 页表条目指向一块内存。无论 TLB 中支持的条目大小如何,块映射都会减少转换 hugepage 地址所需的页表遍历深度。
2) 使用连续位¶
该架构在转换表条目中提供了一个连续位(D4.5.3,ARM DDI 0487C.a),向 MMU 提示它是一组连续条目中的一个,可以缓存在单个 TLB 条目中。
连续位在 Linux 中用于增加 pmd 和 pte(最后一级)的映射大小。支持的连续条目数量因页大小和页表级别而异。
支持以下 hugepage 大小:
CONT PTE
PMD
CONT PMD
PUD
4K
64K
2M
32M
1G
16K
2M
32M
1G
64K
2M
512M
16G