Skip to content

DMA buf leak by media.c2@1.1-service #926

Description

@jacketzc

Describe the bug

  • redroid 12
  • 长时间观看抖音直播/视频的时候发生绿屏
  • 32G内存运行一台手机,一段时间后剩余内存仅1.3G,并且计算进程RSS之和为5.7G
  • 如果创建多台手机,现象将更快复现
  • 出现该问题时,kill该进程( media.c2@1.1-service)绿屏现象立马消失

make sure the required kernel modules present

  • grep binder /proc/filesystems
  • grep ashmem /proc/misc (optional)

分析信息

执行该分析脚本:test_mem_leakage.sh,随后发现:

  • count=1说明目前只有创建者持有该buffer
  • 绝大部分记录都是类似的
  • 类似的记录只增不减(说明有程序在疯狂分配内存但不释放)
--- DMA-BUF total size ---
Total DMA-BUF: 27594.29 MB (3406 buffers)

Dma-buf Objects:现
size    	flags   	mode    	count   	exp_name	ino     
00004096	00000002	00080007	00000001	system	00673261	
	Attached Devices:
Total 0 devices attached
...

继续执行adb shell dmabuf_dump,随后发现:

  • c2@1.1-service:该进程占用28G大小的dma-buf
----------------------
 droid.ugc.aweme:20101
                  Name              Rss              Pss         nr_procs            Inode
             <unknown>         14044 kB             0 kB                3           674514
             ...
         PROCESS TOTAL        172272 kB          9116 kB                 
----------------------
  c2@1.1-service:88   
                  Name              Rss              Pss         nr_procs            Inode
             <unknown>           356 kB             0 kB                1           603235
             ...
          PROCESS TOTAL      28213724 kB          2164 kB                 
----------------------
dmabuf total: 28492484 kB kernel_rss: 0 kB userspace_rss: 28873428 kB userspace_pss: 11280 kB

Screenshots

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions