微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux从用户空间连续的物理内存

有没有办法从 linux中的用户空间分配连续的物理内存?至少几个保证连续的内存页面.一个巨大的页面不是答案.

解决方法

不,那里没有.您需要从内核空间中执行此操作.

如果你说“我们需要从用户空间”这样做 – 在内核空间中没有任何事情就没有意义 – 因为用户空间程序无法控制,甚至不知道底层内存是否连续.

您需要执行此操作的唯一原因是 – 如果您正在与一块硬件或需要此需求的其他一些低级(即内核)服务配合使用.那么再一次,你必须在这个层面上处理它.

所以答案不只是“你不能” – 而是“你永远不需要”.

我已经写过这样的内存管理器,让我可以做到这一点 – 但是它总是因为内核层面的一些基本问题,这在内核层面必须被解决.通常因为总线上的其他一些代理(PCI卡,BIOS,甚至是通过RDMA接口的另一台计算机)具有物理连续的内存要求.再次,所有这一切都必须在内核空间中解决.

当你谈论“缓存行”时,你不用担心.您可以放心,用户空间内存的每个页面都是连续的,每个页面都比缓存行大得多(无论您在讨论什么架构).

原文地址:https://www.jb51.cc/linux/393711.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐