memory
文章平均质量分 93
maze.ma
向wuxiaowen学习!!!
向何小龙学习!!!
展开
-
display:Buffer Sharing and Synchronization
缓冲区共享和同步dma-buf子系统提供了用于在多个设备驱动程序和子系统之间共享用于硬件(DMA)访问的缓冲区以及用于同步异步硬件访问的框架。例如,drm的“prime”多GPU支持可使用此功能,但当然不限于GPU用例。它的三个主要组成部分是:(1)dma-buf,表示一个sg_table,并作为文件描述符公开给用户空间,以允许在设备之间传递;(2)fence,该机制提供了一种机制,用于在一个设备完成访问时发出信号, (3)保留,它管理与缓冲区关联的共享或专用fence。NOTE:dma翻译 2021-03-26 11:16:38 · 1459 阅读 · 1 评论 -
Dynamic DMA mapping Guide
作者:linuxer发布于:2017-7-20 19:23 分类:内存管理一、前言这是一篇指导驱动工程师如何使用DMA API的文档,为了方便理解,文档中给出了伪代码的例程。另外一篇文档dma-api.txt给出了相关API的简明描述,有兴趣也可以看看那一篇,这两份文档在DMA API的描述方面是一致的。二、从CPU角度看到的地址和从DMA控制器看到的地址有什么不同?在DMA API中涉及好几个地址的概念(物理地址、虚拟地址和总线地址),正确的理解这些地址是非常重要的。内核通常使..转载 2021-03-09 19:47:11 · 1012 阅读 · 2 评论 -
display:Driver porting: DMA changes-2003
直接内存访问(DMA)支持层在2.6中已进行了广泛更改,但是在许多情况下,设备驱动程序应保持不变。对于使用新驱动程序的开发人员,或希望使用最新API保持其代码最新的开发人员,有很多更改需要注意。最明显的变化是创建了新的通用DMA层。大多数驱动程序程序员都知道pci_* DMA支持函数;。SPARC程序员可能也遇到过类似的sbus_*函数集。从2.5.53开始,添加了一组新的通用DMA函数,目的是提供一个DMA支持API,而不是特定于任何特定总线。新的功能看起来很像旧的功能;从一个API切换到另一个...翻译 2021-03-08 14:54:09 · 225 阅读 · 2 评论 -
memory:DMA-BUF cache handling: Off the DMA API map (part 1/2)
最近,DMA-BUF堆接口已添加到5.6内核。此API接口类似于ION,Android供应商已使用ION多年。但是,在尝试供应商转移使用DMA-BUF堆的过程中,我们已经开始了解DMA API模型如何不适合现代移动设备。此外,由于缺乏关于如何有效处理缓存操作的明确指导,导致供应商使用定制的特定于设备的优化,而这些优化对于上游解决方案而言不够通用。本文将描述问题的性质。接下来的第二期将探讨解决方案。内核的DMA api都是为CPU和设备之间的内存共享而提供的。近年来,传统的DMA API加入了ION、DM翻译 2021-02-25 14:21:42 · 596 阅读 · 2 评论 -
display:3.3中的DMA缓冲区共享-2012
早在2011年8月,LWN就研究了Marek Szyprowski发布的DMA缓冲区共享补丁集。从那以后,Sumit Semwal拾起了该补丁,他对大量开发人员的评论做出了很大的修改。合并为3.3的此修补程序的版本与以前的版本有很大不同,因此值得在此进行其他介绍。但是,核心思想仍然是相同的:这种机制允许DMA缓冲区在可能不知道彼此的驱动程序之间共享。最初的目标用途是在视频流的生产者和消费者之间共享缓冲区;例如,摄像头设备可以将帧流捕获到与图形适配器共享的一系列缓冲区中,从而无需在内核中进行复制就可以捕获翻译 2021-02-03 19:12:15 · 563 阅读 · 2 评论 -
ION基本概念介绍和原理分析[转]
转载前的话:ION将内核态形形色色的内存分配纳入统一的管理接口之中,更重要的设计意图是为内存在不同用户态进程之间传递和访问提供了支持。每个ion_buffer与一个struct file关联,其handle纳入进程file desc空间而不是/dev/ion设备内单独的handle空间,方便之处如下:每个buffer一个handle,便于更灵活地细粒度地控制每个buffer的使用周期;...转载 2020-04-23 18:16:17 · 3166 阅读 · 0 评论 -
display:Android ION内存分配器-2012
早在2011年12月,LWN审查了linux-next登台目录中的Android内核补丁列表。这些驱动程序的合并(其中之一是称为PMEM的内存分配器)可以保证主线内核发行版有一天可以引导Android用户空间。从那时起,很明显PMEM被视为过时的,并将由ION内存管理器替换。ION是Google在Android 4.0 ICS(冰淇淋三明治)版本中引入的一种通用内存管理器,旨在解决跨不同Android设备的内存管理碎片化问题。至少有三个(可能更多)类似PMEM的接口。在使用NVIDIA Tegra的An..翻译 2021-02-03 17:31:24 · 1178 阅读 · 2 评论 -
display:Destaging ION-2019
多年来,Android系统已经为DMA缓冲区提供了几个分配器;首先是PMEM,然后是其替代ION。ION分配器在2012年左右就开始使用了,但是它仍然停留在内核的staging树中。将ION加入主线的工作始于2013年;在那个时候,分配程序有多个问题,这使得mianline包含ION仍然不可能。最近,John Stultz发布了一个补丁集,引入了DMA-BUF堆,这是ION的一个进化,它的设计就是要做到这一点——将Android的dma缓冲区分配程序合入到主流Linux内核中。翻译 2021-02-23 20:25:35 · 771 阅读 · 5 评论