[英]Linux Kernel Driver - physical CPU memory not updated. DMA problem
[英]DMA in Linux and CPU-driver interaction
前幾天,我在閱讀一篇文章時,作者在談論DMA,以及它如何在不涉及CPU的情況下將數據包通過PCI總線復制到內存中。
然后它說:
唯一的開銷是大約每毫秒一次,CPU需要喚醒並告訴驅動程序哪些數據包緩沖區可用。
這部分我不太了解-為什么CPU會告訴驅動程序可用的緩沖區以及它如何工作? 任何鏈接/參考將不勝感激。
謝謝。
調用驅動程序的transmit()
等函數后,硬件將“擁有”內存。 沒有您描述的行為,該內存將被泄漏。 因此,DMA子系統會通知驅動程序/相關子系統,硬件已“完成”訪問內存。 在那時,可以將其回收以供其他人使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.