为了与正在构建的 PCI 设备进行一些交互,我们希望创建主板可以访问的大块连续内存。就目前情况而言,我能够分配的最大内存大小为 4 MB。我想知道是否有任何方法可以创建更大的区域。
我知道我可以使用启动选项mem=
这样做,但出于 numa 的原因,我宁愿不走这条路。另一方面,如果有人知道一种方法来做到这一点,但将其分布在 numa 节点上,那就没问题了。
正如我最初所说,目前我的内存限制为 4 MB。目前的分配是由__alloc_pages http://lxr.linux.no/linux+v2.6.38/include/linux/gfp.h#L302,其限制为MAX_ORDER http://lxr.linux.no/linux+v2.6.38/include/linux/mmzone.h#L24. MAX_ORDER
是一个编译时常量,我还担心编辑它可能会影响其他地方。
Thanks.
如果您可以将 PCI 设备驱动程序编译到内核中(即不作为模块链接),则可以尝试在启动时分配内存。这应该可以让您绕过动态分配的上限。参考Linux 设备驱动程序,编辑。 3 通道。 8 http://www.makelinux.net/ldd3/chp-8-sect-6了解详情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)