Notes about dma_buf
Why
以摄像头采集数据,GPU显示数据为例。摄像头设备将数据DMA到内存中后,GPU需要将这些DMA内存进行显示,也就是说摄像头DMA的输出数据是GPU的DMA输入数据。如果没有DMA buffer sharing机制,则需要将摄像头的DMA数据拷贝一份以搬到GPU的DMA数据中,因此存在内存copy的开销!
dma_buf则提供了一套统一框架,可以实现不同device的驱动之间DMA buffer的sharing,同时还允许userspace mmap共享的DMA buffer!
What
Overview
Usage
总结
强烈建议仔细阅读宋宝华:世上最好的共享内存(Linux共享内存最透彻的一篇),该文对dma-buf的介绍非常好!
参考资料: