我试图编译页面大小高于 4096 的 x64 Linux 内核。需要通过 VFS 挂载具有高块大小的文件系统。在其他架构上,我可以使用内核配置选择页面大小。它不适用于 x86_64。是否可以更改 x86_64 上的页面大小?我尝试将 PAGE_SHIFT 增加到 16 arch/x86/include/asm/page_types.h
,但它只会导致错误。
如果可以在 x86_64 上构建不同的页面大小,那么支持哪些页面大小以及正确的配置是什么?
我试图编译页面大小高于 4096 的 x64 Linux 内核。需要通过 VFS 挂载具有高块大小的文件系统。在其他架构上,我可以使用内核配置选择页面大小。它不适用于 x86_64。是否可以更改 x86_64 上的页面大小?我尝试将 PAGE_SHIFT 增加到 16 arch/x86/include/asm/page_types.h
,但它只会导致错误。
如果可以在 x86_64 上构建不同的页面大小,那么支持哪些页面大小以及正确的配置是什么?
x86-64仅支持4KiB、2MiB和1GiB页面;在此架构上,Linux 内核只能为 4KiB“非巨大”页面构建。
构建系统支持其他体系结构上稍大的页面,因为这些体系结构支持稍大的页面。例如,64位ARM支持16KiB和64KiB页面。