我的自定义 mmap() 如何使用 HUGETLB 页面并将这些页面重新映射到用户?

问题描述

我正在实现一个框架,将连续的物理内存区域映射到用户空间,同时将特定的虚拟地址返回给用户进程。虽然这适用于较小的 kmalloc() 大小,但它不适用于大于 4MB 的连续内存。 我在 Linux(内核 5.0.21)上启用了 HUGETLB 支持,并且通过使用系统 mmap() 和 MAP_HUGETLB 参数,我能够向应用程序返回一个 1GB 大页面。 我的问题是,如何实现可以将如此大的页面映射到用户自定义 mmap()?巨页分配背后的机制是什么? 我的驱动程序需要为用户分配如此大的连续物理内存并返回一个特定的虚拟地址。 非常感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)