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

DMAengine 最佳实践

如何解决DMAengine 最佳实践

我已经实现了一个 Linux 内核驱动程序来使用 DMAEngine 执行一些 DMA_MEMcpy 操作。 据观察,DMA 初始化/准备(例如,dma_request_channel)和 DMA 释放(dma_release_channel)比实际复制(20x-100x 的数量级)花费了非常长的时间(使用 ktime 测量)。这使得 DMA 对我来说是不可取的。

  • 自从我知道以来,dma_request_channel/dma_release_channel 一直是我延迟的主要来源。我可以以某种方式减少它吗?
  • 我想在加载模块时请求一个通道(在 module_init 中)并在卸载时释放它。可以接受吗? (考虑到模块可能一直保持加载状态,但偶尔会执行 DMA_MEMcpy 操作)并且我读取 DMA 通道是稀缺资源。
  • 使用 DMAengine 的最佳做法是什么?我想知道我是否以正确的方式使用 DMA。

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