第50讲 perfetto 内存分析之分析dmabuf内存|极客笔记-凯发k8旗舰厅

本讲是android camera性能分析专题的第50讲,我们介绍perfetto内存分析之使用perfetto来分析dmabuf内存。

更多资源:

资源 描述
在线课程
知识星球 星球名称:深入浅出android camera
星球id: 17296815
wechat 极客笔记圈

什么是dmabuf

dmabuf 的出现就是为了解决各个驱动之间 buffer 共享的问题,它本质上是 buffer 与 file 的结合,即 dmabuf 既是块物理 buffer,又是个 linux file。

buffer 是内容,file 是媒介,只有通过 file 这个媒介才能实现同一 buffer 在不同驱动之间的流转。

什么是dmabuf

  • exporter: 分配 buffer 的模块
  • importer/user:使用 buffer 的模块

通过命令行dump dmabuf

dmabuf_dump是一个可执行文件,接收参数调用libdmabufinfo.a的接口完成dump功能,代码在:

包含如下功能:

  1. dump整个系统dma-buf per-buffer, per-exporter (dmabuf_dump -b),在kernel版本>= 5.10上生效。
  2. dump整个系统的dmabuf info (dmabuf_dump)

  3. dump某个pid的dmabuf info (dmabuf_dump <****pid****>)

  4. 以table[buffer x process]方式呈现dmabuf info (dmabuf_dump -a)

视频实战演示dump

通过perfetto抓取dmabuf dump

traceconfig

data_sources: {
    config {
        name: "linux.ftrace"
        ftrace_config {
            ftrace_events: "ion/ion_stat"
            ftrace_events: "dmabuf_heap/dma_heap_stat"
            ftrace_events: "kmem/ion_heap_grow"
            ftrace_events: "kmem/ion_heap_shrink"
        }
    }
}

视频实战讲解trace

camera课程

python教程

java教程

web教程

数据库教程

图形图像教程

办公软件教程

linux教程

计算机教程

大数据教程

开发工具教程

android camera性能分析

网站地图