如何为页面大小不是 4096 的 x86_64 编译 Linux?

如何为页面大小不是 4096 的 x86_64 编译 Linux?

我试图编译页面大小高于 4096 的 x64 Linux 内核。需要通过 VFS 挂载具有高块大小的文件系统。在其他体系结构上,我可以使用内核配置选择页面大小。它不适用于 x86_64。是否可以更改 x86_64 上的页面大小?我尝试将 PAGE_SHIFT 增加到 16 arch/x86/include/asm/page_types.h,但它只会导致错误。

如果可以在 x86_64 上构建不同的页面大小,那么支持哪些页面大小以及正确的配置是什么?

答案1

x86-64仅支持4KiB、2MiB和1GiB页面;在此架构上,Linux 内核只能为 4KiB“非巨大”页面构建。

构建系统支持其他架构上稍大的页面,因为这些架构支持稍大的页面。例如,64位ARM支持16KiB和64KiB页面。

相关内容