news 2026/9/27 21:51:57

5.2.6 dma-buf heaps 与 udmabuf:把分配 dma-buf 的权力交给用户态

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5.2.6 dma-buf heaps 与 udmabuf:把分配 dma-buf 的权力交给用户态

前面几节里,dma-buf 总是由某个内核驱动导出的:GPU 驱动创建一个 GEM BO,再把它包装成 dma-buf 抛出 fd。可现实里常有这样的需求——用户态想直接拿到一块可跨设备共享、零拷贝的缓冲区,却不想(也不该)为此去调某个具体 GPU/摄像头驱动的私有 ioctl。比如一个相机 HAL 要分配一块 buffer,既要喂给 ISP、又要交给 GPU 合成、最后送去视频编码,谁来当这个「中立的分配者」?

内核给出的答案是两条并行的路径:

  • dma-buf heaps:把「分配 dma-buf」抽象成一类标准字符设备/dev/dma_heap/*,用户态一个ioctl就能从指定「堆」里分配出一枚 dma-buf fd。它是 Android ION 的正统继任者。
  • udmabuf:反过来,把一块已有的用户态内存(memfd)包装成 dma-buf,让用户态自己分配的页也能零拷贝地交给内核设备。

两者一个「从内核堆里分配给用户态」,一个「把用户态内存导出给内核」,共同补齐了 dma-buf 在用户态侧的入口。

1. dma-buf heaps:标准化的「dma-buf 分配器」

1.1 一个 ioctl 拿到 fd

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/27 21:50:59

基于微信小程序的本科学生课程规划系统(源码+lw+部署文档+讲解等)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

作者头像 李华
网站建设 2026/9/27 21:50:09

威胁情报工具:更快?更聪明?

近些日子以来, 这几个名称频繁现身于安全工作者的视线范围之内, 它们分别是塔吉特, 还有摩根大通以及家得宝, 另外还有安腾, 并且最近竟然陆续提及到了美国国税局即 IRS 以及人事管理局亦称为 OPM。现如今,网络威胁面向的范围越发广阔, 其渗透的速率也愈发迅速。经由调查得以表…

作者头像 李华
网站建设 2026/9/27 21:49:31

AI 写代码后,你的时间账单

摘要:AI 接手写代码后,纯编码时间变短,但总工时没少。本文把开发者时间拆成五块——讲需求、审代码、修 bug、做集成、管上下文,并给四个可落地的杠杆,讲清时间到底搬去了哪、怎么砍。 现象:写快了&#xf…

作者头像 李华
网站建设 2026/9/27 21:42:21

彻底搞懂模板字符串与 ${} 插值机制

前言 在前端开发的日常编码中,字符串拼接是最基础也最频繁的操作。在 ES5 时代,我们习惯了用 号将变量与文本生硬地缝合在一起,不仅要小心翼翼地处理引号转义,还要忍受多行 HTML 拼接时满屏的 \n 和数组 join。这种“拼接地狱”不…

作者头像 李华