我可以使用1G超级页面来支持共享的地图吗?

时间:2017-09-07 01:38:57

标签: c linux x86-64

到目前为止,当我尝试使用/ mnt / hugepages1G /中的文件作为支持时,我得到了段错误。如果我在/ mnt / hugepages /

中使用2M超级页面,它可以正常工作

我想我读过某个地方,我现在无法发现Linux只支持共享内存的2M页面?但我不能发誓。无法在文档中找到它。

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/vm/hugetlbpage.txt?id=HEAD

$ hugeadm --pool-list 声称拥有2M和1G的页面

mount命令成功。

1 个答案:

答案 0 :(得分:2)

对于下一个可怜的博佐:

你绝对可以使用1G超级页面来支持x86-64 linux上的共享mmaps。

我在正确配置和挂载的/ mnt / hugepages1G中的1G文件的进程之间传输字节,使用发行版(ubu)4.4内核。它更加脆弱,因为它更难以获得正确的代码,或者您获得SIGBUS等长度参数和映射区域的ftruncate大小似乎需要是页面大小的倍数1G - 至少我认为是什么让它发挥作用。没有文档支持它,并且手册页说它不需要(但可能没有超级页面)。

最好的文档在这里: https://lwn.net/Articles/375096/