Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux在编译时支持2MB页面吗?_Linux_Linux Kernel_Operating System_Kernel_Page Tables - Fatal编程技术网

Linux在编译时支持2MB页面吗?

Linux在编译时支持2MB页面吗?,linux,linux-kernel,operating-system,kernel,page-tables,Linux,Linux Kernel,Operating System,Kernel,Page Tables,我知道现在的处理器,其中一些支持2MB和1GB页面大小。是否可以编译Linux内核,使其本机支持2MB而不是标准的4Kb页面 谢谢。嗯,我可以说是和否 页面大小是固定的。但这取决于你对你将遇到的错误和问题的耐心 大小是已知的,由硬件决定,因此操作系统会考虑到这一点。但是,请注意,一些Linux系统(和硬件!)已经安装了,Linux可能会接受MAP_HUGETLB(但是您的代码应该处理没有巨大页面支持的处理器或内核的情况,例如,当第一个带有MAP_HUGETLB的mmap失败时,在没有MAP_HU

我知道现在的处理器,其中一些支持2MB和1GB页面大小。是否可以编译Linux内核,使其本机支持2MB而不是标准的4Kb页面


谢谢。

嗯,我可以说是和否

页面大小是固定的。但这取决于你对你将遇到的错误和问题的耐心

大小是已知的,由硬件决定,因此操作系统会考虑到这一点。但是,请注意,一些Linux系统(和硬件!)已经安装了,Linux可能会接受
MAP_HUGETLB
(但是您的代码应该处理没有巨大页面支持的处理器或内核的情况,例如,当第一个带有
MAP_HUGETLB
的mmap失败时,在没有
MAP_HUGETLB
的情况下再次调用mmap)

您可能会对以下链接感兴趣:


您的意思是总是使用2MB页面而不是4KB页面来进行所有分配?是的,不仅仅是“内存分配”…我指的是所有内容…操作系统本身和其他所有内容都使用2MB页面。目标体系结构是x86?因为我不知道还有哪种体系结构支持2MB页面。是的。这是正确的。默认页面大小由中定义的宏
page\u size
指定。我不确定你是否可以在不破坏东西的情况下轻松修改它。这根本不能回答问题。甚至很难理解你想说什么。对我来说,这就是答案。但可能存在一些误解,即CPU中的页面是什么(以及如何实现不同级别的页面)和“块”大小(分页的I/O部分)。