众所周知,x86 上的页面大小为 4KB。如果我们有 64G RAM,那么有 16M 的 page enteries,就会导致过多的 mant tlb miss。在 x86 中,我们可以启用 PAE 访问超过 4GB 的内存。(并且页面大小可以拆分为每页 2MB?)
Hugepagetlbfs 允许我们使用大页面来获得性能优势(例如:更少的 tlb 未命中),但有很多限制:
必须使用共享内存接口来编写 Hugepagetlbfs
并非所有进程都可以使用它
保留内存可能会失败
因此,如果我们可以将页面大小更改为 2M 或 4M,那么我们可以获得性能优势。
以我的方式,我尝试了一些方法来改变它,但失败了。
- 使用 CONFIG_HUGETLBFS 编译内核,失败
- 使用 CONFIG_TRANSPARENT_HUGEPAGE 和 CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS 编译内核,失败
有人可以帮我吗?