Linux内存使用HUGETBL映射文件

问题描述 投票:0回答:1

我对使用内存映射文件进行快速I / O感兴趣,我在没有问题的情况下完成了几次。我认为,只要我访问超过4k的内存,就会遇到页面边界开销(我正在将数据流式传输到此内存映射中)。因此,我想我可以在此处使用大页面来达到2MB的页面大小,以提高效率,并避免小页面大小的开销和代价。当我尝试使用HUGETLB分配内存映射文件时,mmap失败,并出现无效的参数错误。所以我的基本问题是,内存映射文件是否支持巨大的页面?

mmap供参考,memsize是2M的倍数。 mmapfd是文件的文件描述符。请注意,如果我未设置MAP_HUGETLB

,此调用将正常运行

m_mmap = mmap( nullptr, memsize, PROT_READ | PROT_WRITE, MAP_SHARED| MAP_HUGETLB, mmapfd, 0 )

linux mmap memory-mapped-files huge-pages
1个回答
1
投票

我不确定这是您的实际代码还是帖子中的错字,但您的代码中有MAP_HUGETLB而不是MAP_HUGETBL

© www.soinside.com 2019 - 2024. All rights reserved.