gpt4 book ai didi

linux - 使用大页面映射编写映射文件

转载 作者:太空狗 更新时间:2023-10-29 12:39:32 24 4
gpt4 key购买 nike

据我了解,目前,在 Linux 上,没有办法映射一个文件(无论是在 xfs 还是 ext4 上)然后写入它并以某种方式使用大页面。

这是正确的还是过时的信息,现在有办法做到这一点吗?

谢谢。

最佳答案

如果您使用 MAP_HUGETLB 映射一个不是来自“hugetlbfs”的文件,则映射将失败。来自 ksys_mmap_pgoff()

if (!(flags & MAP_ANONYMOUS)) {
...
if (unlikely(flags & MAP_HUGETLB && !is_file_hugepages(file)))
goto out_fput;

is_file_hugepages() 检查文件操作是否为 hugetlbfs_file_operations,这对于例如ext4.

但是,您可以使用透明大页面。目前(4.19 左右),您还必须使用 DAX(直接访问,通常与 nvdimms 和持久内存一起使用)。我还没有这样做,但那是通过跟踪代码。具体来说,要使大页面正常工作,您至少需要一个大页面对齐的地址,该地址来自 thp_get_unmapped_area(),如果您不使用 DAX,该地址将退出:

 if (!IS_DAX(filp->f_mapping->host) || !IS_ENABLED(CONFIG_FS_DAX_PMD))
goto out;

关于linux - 使用大页面映射编写映射文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51718419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com