本文将mark下dma_buf相关notes。

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的介绍非常好!


参考资料:

  1. dma-buf 由浅入深(一) —— 最简单的 dma-buf 驱动程序
  2. dma-buf
  3. Linux内核笔记之DMA_BUF
  4. DMA Buffer Sharing Framework:An Introduction
  5. RDMA WITH GPU MEMORY VIA DMA-BUF
  6. dma-buf学习分享