【发布时间】:2013-02-05 10:22:44
【问题描述】:
我正在尝试测试 DMA 映射框架的连续内存分配器。我已经编译了支持 CMA 的内核 3.5.7,我知道它是实验性的,但它应该可以工作。 我的目标是在内核模块中为没有分散/收集功能的设备分配几个 32MB 物理上连续的内存块。
我正在使用 Barry Song 的测试补丁测试我的系统:http://thread.gmane.org/gmane.linux.kernel/1263136
但是当我尝试使用echo 1024 > /dev/cma_test 分配内存时。我得到bash: echo: write error: No space left on device。并在 dmesg:misc cma_test: no mem in CMA area
可能是什么问题?我错过了什么?系统刚刚重新启动,应该有至少 350mb 的可用连续内存,因为内核 3.2 上的 bigphysarea 补丁能够在类似系统上分配该数量。
感谢您的宝贵时间!
【问题讨论】:
-
尝试使用启动时内存分配...
-
我更喜欢(这是要求之一)将它放在内核模块中,我认为启动时内存分配不支持这一点。
标签: linux linux-kernel linux-device-driver embedded-linux