我正在尝试测试 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 补丁能够在类似系统上分配该数量。
感谢您的时间!