编写大文件可防止大型DMA分配



我正在使用带有ARM的处理器运行Linux的板(3.0.35)。板有1GB RAM,并连接到快速SSD HD,并连接到5MP相机。

我的目标是捕获高分辨率图像并将其直接写入磁盘。

一切顺利,直到我试图保存一个很长的视频(超过1GB的数据),

保存一个大文件后,似乎我无法重新加载相机驱动程序 - 它失败了,将大量的DMA存储器块分配用于流式传输(调用DMA_ALLOC_COHERENT())。

我将其范围缩小到Linux靴子(大多数内存可用时)的情况,然后将随机数据写入一个大文件(> 1GB),当我尝试加载相机驱动程序时,它会失败。<<<<<<<<<<<<<<<<

我的问题 -

当我打开一个用于写作的文件,编写大量数据并关闭文件时,不是用来将数据写入HD应该释放的内存吗?

我可以理解为什么内存在高清访问过程中变成碎片,但是当完成HD的交易完成时 - 为什么内存仍然如此碎片,以至于我无法分配15MB的连续RAM?

谢谢

[...]关闭文件,不是用来将数据写入高清的内存吗?

否,它将是缓存,您可以检查/proc/meminfodma_alloc_coherent()功能是否仅使用免费内存是一个很好的问题。

相关内容

  • 没有找到相关文章

最新更新