dma-buf

以高通camera 申请ion内存看dma-buf 1 fd 与ion buffer, file绑定 简单总结就是申请一个buffer,再创建一个dmabuf 结构体然后将,然后将dmabuf中得指针指向buffer,dmabuf 再传递给一个匿名的inode,获取到一个file,这样file和dmabuf绑定起来,也就和buffer关联上。然后再从进程中分配一个空闲的fd,将fd 和file囊绑定。这样就能通过fd 快速查找到buffer。file 是个全系统的,他和进程无关,但是fd 是每个进程都是自己独立的,所以再跨进程传输时只需要保证fd ... 阅读详情

system_heap_do_allocate

cache 怎么理解

int BufferAllocator::AllocSystem(bool cpu_access_needed, size_t len, unsigned int heap_flags,
                                 size_t legacy_align) {
    if (!cpu_access_needed) {
        /*
         * CPU does not need to access allocated buffer so we try to allocate in
         * the 'system-uncached' heap after querying for its existence.
         */

https://cs.android.com/android/platform/superproject/+/master:system/memory/libdmabufheap/BufferAllocator.cpp;l=274?q=cpu_access_needed&sq=&ss=android%2Fplatform%2Fsuperproject

How to transition ION to DMA-BUF heaps 阅读详情

相关推荐

Android使用dma_buf分析Low Memory问题

Android使用dma_buf分析Low Memory问题。可以分析一些卡顿场景。

漂流瓶の海岸 3778

Linux Graphics 周刊(第 7 期)

* drm/crtc: 关于使用 kthread worker 来实现 non-blocking commit 的讨论 * drm/cma-helper: 默认使用 drm_gem_cma_default_funcs callbacks * drm/atomic: 让 CRTC & Connector atomic 函数统一使用 drm_atomic_state 参数 * Vulkan 1.2.158 新增 VK_KHR_fragment_shading_rate 扩展

hexiaolong2009的专栏 3330

dma_buf学习记录之二核心接口

`DEFINE_DMA_BUF_EXPORT_INFO`:定义并初始化 `dma_buf_export_info` 结构体。

huntenganwei的博客 1278

201_DMA-BUF简单介绍

首先需要明确DMA-BUF,Dma buffer,ION和DMA-BUF Heap是不同的概念。在Android 多媒体系统中为了减少因不同进程之间内存的多次拷贝而产生的不必要的开销,最直接的想法是希望跟硬件设备进行交互的应用能有一个内存能跟设备驱动程序共享数据,理想情况是这个buffer能够直接是通过memory map得到,并且是物理连续的,这样就能让DMA直接读写这块buffer,减少CPU或者外设来访问内存的开销。

踏雪寻春的专栏 1万+

缓冲区共享和同步dma_buf 之二

可以使用作为一个sync_file的dma-buf 文件描述符, 执行 DMA_BUF_IOCTL_EXPORT_SYNC_FILE,以获得当前围栏集。在访问映射之前,客户端必须使用 DMA_BUF_SYNC_START 和适当的读/写标志调用 DMA_BUF_IOCTL_SYNC。为实现与其他 dma-buf 使用者的隐式同步,用户空间可以执行 DMA_BUF_IOCTL_IMPORT_SYNC_FILE 将sync_file 插入到 dma-buf 中。将sync_file插入到dma-buf中。

IT_Beijing_BIT的博客 1886

Linux DMA-Buf驱动框架

dmabuf 是一个驱动间共享buf 的机制,他的简单使用场景如下:用户从DRM(显示驱动)申请一个dmabuf,把dmabuf 设置给GPU驱动,并启动GPU将数据输出到dmabuf,GPU输出完成后,再将dmabuf设置到DRM 驱动,完成画面的显示。在这个过程中通过共享dmabuf的方式,避免了GPU输出数据拷贝到drm frame buff的动作。

杀手的博客 4936

dma-buf 由浅入深(一) —— 最简单的 dma-buf 驱动程序

如果你和我一样,是一位从事Android多媒体底层开发的工程师,那么你对 dma-buf 这个词语一定不会陌生,因为不管是 Video、Camera 还是 Display、GPU,它们的buffer都来自于ION,而 ION 正是基于 dma-buf 实现的。 假如你对 dma-buf 的理解并不深刻,又期望找个时间来彻底公关一下,那么很高兴,这几篇文章一定能让你对 dma-buf 有个更深入、更透彻的理解。

hexiaolong2009的专栏 8万+

dma_buf学习记录之一基础知识

对于 GPU,这构成了一个问题,因为当前 Linux 上的桌面合成协议依赖于 DMA 栅栏,这意味着如果没有基于用户空间栅栏的全新用户空间堆栈,它们无法从可恢复页错误中受益。甚至页错误问题也不是新的,因为用户空间中的某些其他 CPU 线程可能会遇到导致用户空间栅栏挂起的页错误 - 支持 GPU 上的页错误并没有引入任何根本性的新内容。因此,导出驱动程序提供的任何创建 dmabuf fd 的 API 必须提供一种方式,让用户空间控制传递给 dma_buf_fd() 的 O_CLOEXEC 标志。

huntenganwei的博客 1497

dma-buf 由浅入深(三) —— map attachment

在上一篇《kmap/vmap》中,我们学习了如何使用 CPU 在 kernel 空间访问 dma-buf 物理内存,但如果使用CPU直接去访问 memory,那么性能会大大降低。因此,dma-buf 在内核中出现频率最高的还是它的 dma_buf_attach() 和 dma_buf_map_attachment() 接口。本篇我们就一起来学习如何通过这两个 API 来实现 DMA 硬件对 dma-buf 物理内存的访问。

hexiaolong2009的专栏 3万+

RK3588 Android上应用使用OpenCL,所需的所有so

主要是提供能在RK3588开发板上,应用开发能使用OPenCL来进行GPU加速所需的所有so

【Photoshop JSX脚本】强大的事件监听器脚本 - event_listener.jsx

新手第一次了解的事件监听一定是ScriptingListener.8bi插件,如果你对此插件有了基本运用,那么现在了解一款更方便的时间监听脚本event_listener.jsx。不再像ScriptingListener.8bi插件那样晦涩难懂。 1、准备event_listener.jsx文件到 F:\Program Files\Adobe Photoshop 2020\Presets\...

Greless的后花园 8205

dma-buf 由浅入深(四) —— mmap

前面的两篇文章《dma-buf 由浅入深(二) —— kmap/vmap》和《dma-buf 由浅入深(三) —— map attachment》都是在 kernel space 对 dma-buf 进行访问的,本篇我们将一起来学习,如何在 user space 访问 dma-buf。当然,user space 访问 dma-buf 也属于 CPU Access 的一种。

hexiaolong2009的专栏 2万+

【Android】条形码/二维码扫描——ZXing源码分析

正在更新中 针对3.2.1版本源码 与其他版本代码可能会有出入,但核心思想基本不变。 首先从com.google.zxing.client.android包中的目录结构分析:Book:这个文件夹中有5个类: BrowseBookListener 实现了adapter的点击事项响应,通过获取ISBN,然后跳转到Google books中查询响应的详细信息。 SearchBookContents

年轻的学徒 2453

DMA-BUF

模块初始化函数,注册dma_buf_fs,初始化db_list,初始化debugfs。初始化一个attach节点,并把它加入到dmabuf的attachments列表中。成功会返回&dma_buf的指针,失败会返回一个负数(通过ERR_PTR包装)。创建一个dmabuf,并把它关联到一个anon file上,以便暴露这块内存。锁住一块dmabuf。从系统中获取一个可用的fd,并把它跟dmabuf->file绑定起来。调用用户定义的unmap_dma_buf回调。调用用户定义的map_dma_buf回调。

weixin_39592381的博客 858

SAP S4 MM模块自动记账全流程解析:从评估范围到科目分组的实战配置

本文深入解析SAP S4 MM模块自动记账的全流程,从核心概念评估范围与评估控制入手,详细阐述了评估类、科目分组等关键配置的逻辑关系。通过实战配置步骤,指导如何建立从物料移动(如收货、发料)到自动生成准确财务凭证的完整体系,确保库存价值与总账实时同步,为企业构建可靠的财务业务一体化基石。

weixin_29313547的博客 421

Cadence PSpice 仿真11:电感型低通滤波器最坏情况分析仿真实战图文教程

在进行蒙特卡罗分析时会将元器件的容差考虑进去,然后通过运行多次的随机仿真,得到电路输出的一个范围。但是多数情况下设计师关注的只是电路的最坏情况是否满足设计要求。PSpice的最坏情况分析是取在容差的边界点元件参数进行仿真以计算出电路输出的最坏情况。所以如果如果电路中有10个元件的话,需要先取10个元件的标准值仿真1次,然后再分别在10个元件的容差边界处各仿真1次,然后再对仿真结果进行统计和计算,再最坏情况下再仿真1次。

fydar的博客 1944

dma_buf api

DMA-BUF是Linux内核实现跨驱动/进程共享内存缓冲区的核心机制,通过文件描述符(fd)作为载体传递共享内存。内核态通过dma_buf结构体管理缓冲区生命周期,提供导出/接入API,支持CPU与DMA访问同步;用户态则通过标准POSIX接口和特定IOCTL命令(如DMA_BUF_QUERY/SYNC)完成缓冲区信息查询、同步操作和跨进程传递。该机制避免了数据拷贝,实现了不同硬件子系统间的高效内存共享,但需注意缓存一致性和权限控制问题。

tangzhangyin的专栏 571

公文流转系统

公文录入区 | QLineEdit(文号/标题)、QComboBox(公文类型/紧急程度)、QTextEdit(正文)、QListWidget(附件列表)、QPushButton(上传附件/保存草稿/提交审批) |// 按时间范围获取。QStringList userNames = {"张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑十一", "王十二"};

寒寒豆豆软件公司的博客 549

dma-buf 由浅入深(二) —— kmap / vmap

在上一篇《最简单的 dma-buf 驱动程序》中,我们学习了编写 dma-buf 驱动程序的三个基本步骤,即 dma_buf_ops 、 dma_buf_export_info、 dma_buf_export()。在本篇中,我们将在 exporter-dummy 驱动的基础上,对其 dma_buf_ops 的 kmap / vmap 接口进行扩展,以此来演示这两个接口的使用方法。

hexiaolong2009的专栏 3万+

STM32开发笔记85: SX1268驱动程序设计(芯片唤醒)

单片机型号:STM32L053R8T6 本系列开发日志,将详述SX1268驱动程序的整个设计过程,本篇介绍芯片唤醒驱动程序。 一、RxDutyCycle模式 在讲述本篇内容之前,我们先来看一下SX1268的一种模式RxDutyCycle,译为中文为接收占空比模式。其可使用SetRxDutyCycle命令进入RxDutyCycle模式,我们来看一下该命令的详细解释。 该命令具有2个参数,...

snmplink的博客 4065

104、母线电容设计与选型

母线电容选型,容值不是最关键的,纹波电流和温度才是。很多炸机事故,不是容值不够,而是纹波电流超标导致过热。选电容时,多花点时间算纹波电流,比盲目加大容值有效得多。另外,别迷信进口品牌。国产电容(如江海、艾华)在常规应用里完全够用,价格只有进口的1/3。但高频特性确实有差距,所以高频去耦一定要用薄膜电容。最后,留个调试技巧:用示波器测母线电容两端的电压纹波,同时用电流探头测电容的纹波电流。如果纹波电流波形有尖峰,说明ESL太大,需要并联高频电容。如果纹波电压是低频波动,说明容值不够。

2401_88858637的博客 46

linux 之dma_buf (3)- dma_buf_attach/dma_buf_map_attachment

在上一篇中,我们学习了如何使用 CPU 在 kernel 空间访问 dma-buf 物理内存,但通常这种操作方法在内核中出现的频率并不高,因为 dma-buf 设计之初就是为满足那些大内存访问需求的硬件而设计的,如GPU/DPU。在这种场景下,如果使用CPU直接去访问 memory,那么性能会大大降低。因此,dma-buf 在内核中出现频率最高的还是它的 dma_buf_attach() 和 dma_buf_map_attachment() 接口。

z20230508的博客 1926

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

DMA_BUF

考虑这样一种场景,摄像头采集的视频数据需要送到GPU中进行编码、显示。负责数据采集和编码的模块是Linux下不同的驱动设备,将采集设备中的数据送到编码设备中 需要一种方法。最简单的方法可能就是进行一次内存拷贝,但是我们这里需要寻求一种免拷贝的通用方法。dma_buf是内核中一个独立的子系统,可以让不同设备、子系统之间进行内存共享的统一机制。 DMA_BUF框架下主要有两个角色对象,一个是expo...

LIEY 3087

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

缓冲区共享和同步dma_buf 之一

dma-buf 子系统提供了用于跨多个设备驱动程序和子系统共享硬件 (DMA) 访问缓冲区以及同步异步硬件访问的框架。

IT_Beijing_BIT的博客 2527

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

dma-buf 由浅入深(五) —— File

在上一篇《dma-buf 由浅入深(四)—— mmap》中,曾提到过 dma_buf_fd() 这个函数,该函数用于创建一个新的 fd,并与 dma-buf 的文件关联起来。本篇我们一起来重点学习 dma-buf 与 file 相关的操作接口,以及它们的注意事项。

hexiaolong2009的专栏 2万+
上一篇: 那些路径备忘
下一篇: 内存规整how
文心叼虫
博客等级 码龄16年 116粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值