繁体   English   中英

Linux中的DMA与CPU驱动程序的交互

[英]DMA in Linux and CPU-driver interaction

前几天,我在阅读一篇文章时,作者在谈论DMA,以及它如何在不涉及CPU的情况下将数据包通过PCI总线复制到内存中。

然后它说:

唯一的开销是大约每毫秒一次,CPU需要唤醒并告诉驱动程序哪些数据包缓冲区可用。

这部分我不太了解-为什么CPU会告诉驱动程序可用的缓冲区以及它如何工作? 任何链接/参考将不胜感激。

谢谢。

调用驱动程序的transmit()等函数后,硬件将“拥有”内存。 没有您描述的行为,该内存将被泄漏。 因此,DMA子系统会通知驱动程序/相关子系统,硬件已“完成”访问内存。 在那时,可以将其回收以供其他人使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM