ARM64 上的 HugeTLBpage

Hugepage 依赖于有效利用 TLB 以提高地址转换的性能。好处取决于 -

  • hugepage 的大小

  • TLB 支持的条目大小

ARM64 端口支持两种 hugepage 风格。

1) pud/pmd 级别的块映射

这些是常规的 hugepage,其中 pmd 或 pud 页表条目指向一块内存。 无论 TLB 中支持的条目大小如何,块映射都会减少转换 hugepage 地址所需的页表查找深度。

2) 使用 Contiguous 位

该架构在转换表条目中提供了一个连续位(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