认识Kernel 内存泄漏
dumpsys meminfo 看到内核内存Used RAM中,kernel达到了800+MB,这就是内存泄漏~
[10:53:13]Total PSS by category:
[10:53:13] 276,057K: Native
[10:53:13] 78,172K: GL mtrack
[10:53:13] 63,058K: .dex mmap
[10:53:13] 56,870K: Unknown
[10:53:13] 46,834K: Dalvik
[10:53:13] 35,119K: .so mmap
[10:53:13] 34,881K: .art mmap
[10:53:13] 24,976K: Dalvik Other
[10:53:13] 18,604K: .oat mmap
[10:53:13] 9,460K: .jar mmap
[10:53:13] 7,773K: .apk mmap
[10:53:13] 7,699K: Other mmap
[10:53:13] 2,136K: Stack
[10:53:13] 1,023K: Other dev
[10:53:13] 280K: Ashmem
[10:53:13] 131K: .ttf mmap
[10:53:13] 0K: Cursor
[10:53:13] 0K: Gfx dev
[10:53:13] 0K: EGL mtrack
[10:53:13] 0K: Other mtrack
[10:53:13]
[10:53:13]Total RAM: 2,038,688K (status normal)
[10:53:13] Free RAM: 555,318K ( 105,538K cached pss + 327,000K cached kernel + 122,780K free)
[10:53:13] Used RAM: 1,451,497K ( 626,861K used pss + 824,636K kernel)
[10:53:13] Lost RAM: 24,665K
[10:53:13] ZRAM: 19,464K physical used for 78,176K in swap ( 511,996K total swap)
[10:53:13] Tuning: 192 (large 512), oom 184,320K, restore limit 61,440K (high-end-gfx)
对比看下P212版本正常的 Used RAM: 758,045K ( 576,505K used pss + 181,540K kernel)
再看内核里面init_pic_list已经有500MB了,这是播放H265视频时内核对应的函数栈
cat /proc/pagetrace
[10:53:36]Node 0, zone DMA
[10:53:36]count(KB) kaddr function
[10:53:36]------------------------------
[10:53:36] 529160, ffffff8001f84078, init_pic_list [amvdec_h265]
[10:53:36] 117856, ffffff80020ae8e8, kbase_mem_alloc_page [mali_kbase]
[10:53:36] 41420, ffffff800909e8e8, copy_process.isra.68.part.69
[10:53:36] 25380, ffffff8009784864, ion_page_pool_alloc
[10:53:36] 20968, ffffff80091dec40, __pte_alloc
[10:53:36] 9548, ffffff80091e1f0c, handle_mm_fault
[10:53:36] 6592, ffffff8009a151cc, __kmalloc_reserve.isra.48
[10:53:36] 5392, ffffff8009094350, module_alloc
[10:53:36] 4352, ffffff8001d01640, firmware_pre_load [firmware]
[10:53:36] 3476, ffffff80093ec7a8, selinux_inode_alloc_security
[10:53:36] 3204, ffffff80091e80b4, mmap_region
[10:53:36] 3028, ffffff80092983ec, __kernfs_new_node
[10:53:36] 2856, ffffff80091ec3dc, anon_vma_fork
[10:53:36] 2612, ffffff80091e5fd8, __split_vma.isra.41
echo m > proc/sysrq-trigger
p212:/ # echo m > proc/sysrq-trigger
[46376.695948@1] sysrq: SysRq : Show Memory
[46376.696065@2] Mem-Info:
[46376.696720@2] active_anon:77726 inactive_anon:155 isolated_anon:0
[46376.696720@2] active_file:60437 inactive_file:129125 isolated_file:0
[46376.696720@2] unevictable:63 dirty:0 writeback:0 unstable:0
[46376.696720@2] slab_reclaimable:9932 slab_unreclaimable:12665
[46376.696720@2] mapped:66913 shmem:253 pagetables:5866 bounce:0
[46376.696720@2] [cma] driver:14173 anon:22650 file:68189 isolate:0 total:128000
[46376.696720@2] free:156313 free_pcp:426 free_cma:22834
[46376.738875@2] Node 0 active_anon:310904kB inactive_anon:620kB active_file:241748kB inactive_file:516500kB unevictable:252kB isolated(anon):0kB isolated(file):0kB mapped:267652kB dirty:0kB writeback:0kB shmem:1012kB writeback_tmp:0kB unstable:0kB pages_scanned:0 all_unreclaimable? no
[46376.763567@2] DMA free:625248kB min:4928kB low:35492kB high:66056kB active_anon:310904kB inactive_anon:620kB active_file:241748kB inactive_file:516500kB unevictable:252kB writepending:0kB present:2096128kB managed:2037652kB mlocked:256kB slab_reclaimable:39728kB slab_unreclaimable:50660kB kernel_stack:16896kB pagetables:23464kB bounce:0kB free_pcp:1704kB local_pcp:364kB free_unmovable:31120kB free_movable:501588kB free_reclaimable:1144kB free_highatomic:0kB free_isolate:0kB free_cma:91324kB
[46376.806588@2] lowmem_reserve[]: 0 0 0
[46376.810016@2] DMA: 5476*4kB (UMEC) 2278*8kB (UMEC) 997*16kB (UMEC) 546*32kB (UMEC) 343*64kB (UMC) 156*128kB (UMC) 81*256kB (UMC) 25*512kB (UMC) 25*1024kB (UMEC) 20*2048kB (UMC) 100*4096kB (MC) = 625168kB
189806 total pagecache pages
[46376.830543@2] 0 pages in swap cache
[46376.834025@2] Swap cache stats: add 0, delete 0, find 0/0
[46376.839417@2] Free swap = 511996kB
[46376.842817@2] Total swap = 511996kB
[46376.846274@2] 524032 pages RAM
[46376.849285@2] 0 pages HighMem/MovableOnly
[46376.853256@2] 14619 pages reserved
[46376.856603@2] 128000 pages cma reserved
最后的修改:
new_buf = krealloc(pic->aux_data_buf,
new_size,
GFP_KERNEL);
----->
new_buf = vmalloc(new_size);
memcpy(new_buf, pic->aux_data_buf, pic->aux_data_size);
if (pic->aux_data_buf)
vfree(pic->aux_data_buf);
if (pbi->fw)
vfree(pbi->fw);
pbi->fw = NULL;
认识Kernel 内存泄漏相关推荐
- 内存泄漏排查攻略之:Show me your Memory
以下文章来源方志朋的博客,回复"666"获面试宝典 来源| cnblogs.com/yougewe/p/11334342.html java 语言有个神奇的地方,那就是你时不时会去 ...
- linux工具之检测内存泄漏-valgrind
0.前言 内存泄漏是c++程序常见的问题了,特别是服务类程序,当系统模块过多或者逻辑复杂后,很难通过代码看出内存泄漏: valgrind是一个开源的,检测c++程序内存泄漏有效工具,编译时加上-g选项 ...
- Kaldi内存泄漏问题排查
转载自:https://www.baidu.com/link?url=uUnBEi2XoXwkMYf_mLzKuZmdz8auQ5mjvwYE0c5zsKS2kUcEMv3fo9wUmva2S84mX ...
- 18 | 案例篇:内存泄漏了,我该如何定位和处理?
通过前几节对内存基础的学习,我相信你对 Linux 内存的工作原理,已经有了初步了解. 对普通进程来说,能看到的其实是内核提供的虚拟内存,这些虚拟内存还需要通过页表,由系统映射为物理 当进程通过 ma ...
- 如何自动检查内存泄漏和句柄耗尽
如何自动检查内存泄漏和句柄耗尽 1. 背景 当程序的子模块数量和规模扩大之后,在开发阶段,系统长时间允许后经常会碰到下面一些bug: 内存泄漏.随着时间允许,系统可用的内存越来越少,最后kernel ...
- 【Linux进程、线程、任务调度】一 Linux进程生命周期 僵尸进程的含义 停止状态与作业控制 内存泄漏的真实含义 task_struct以及task_struct之间的关系
学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2: 780902027 文章目录 1 ...
- AliOS Things 维测典型案例分析 —— 内存泄漏
维测典型案例分析1 -- 内存泄漏 在系统运行的过程中,内存泄漏是较为常见但是很难复现的现象,一般的内存泄漏点都是比较隐蔽的,每次几十个字节的泄漏,往往需要压测很久才能复现问题.本节案例分析,我们从一 ...
- linux pmap 内存泄露,一个驱动导致的内存泄漏问题的分析过程(meminfo-pmap-slabtop-alloc_calls)...
关键词:sqllite.meminfo.slabinfo.alloc_calls.nand.SUnreclaim等等. 下面记录一个由于驱动导致的内存泄漏问题分析过程. 首先介绍问题背景,在一款嵌入式 ...
- 【华为云技术分享】技术干货丨通过wrap malloc定位C/C++的内存泄漏问题
摘要:用C/C++开发的程序执行效率很高,但却经常受到内存泄漏的困扰.本文提供一种通过wrap malloc查找memory leak的思路. 用C/C++开发的程序执行效率很高,但却经常受到内存泄漏 ...
最新文章
- Windows核心编程 第七章 线程的调度、优先级和亲缘性(下)
- JVM资源分析工具jprofiler使用简介
- java maven 读写pdf_Java 在PDF中加盖骑缝章
- 【SpringBoot】查看运行环境中所有的spring bean
- 剑桥少儿英语预备级教案(上) unit10 Let's do it.
- a8处理器相当于骁龙几_天玑820相当于骁龙什么处理器?天梯图秒懂联发科天玑820性能排名...
- fasta文件中DNA to RNA
- 物联网通信之Coap 协议
- 矩池云上缺少curand.h、cublas_v2.h、cusolverDn.h头文件解决方法
- 中级通信工程师考试之六移动通信
- python----根据共振峰频率绘制二阶谐振曲线
- 网络共享中心的计算机名,电脑提示“请启用网络和共享中心中的网络发现”解决方法...
- 项目接入支付宝接口,验签出错
- Harbor镜像清理
- 拼多多玩出花的社交电商 你知道多少?四川海昇智深度解析来啦
- 中点画线完整算法c语言,中点画线算法
- SDL介绍----4、S-SDLC安全开发生命周期
- 想健身该怎么做?要练出肌肉需要多久?
- 已有一个已排好序的数组,要求输入一个数,将它插入数组中,保持数组依然有序。
- Java基础之 Scanner 扫描器
热门文章
- 疫情面试了13家企业软件测试岗位,面试题整理汇总,真的牛
- project2010根据法定节假日更改工作时间
- 腾讯视频qlv转mp4
- GD32W515系列Wi-Fi MCU资料
- 360 2015校园招聘
- 苹果主题商店_苹果手机怎么换铃声?全网最简单的教程来了,小白秒学会
- X Window 程式设计入门--第三章 绘图(Graphic)
- 【Python_绘图】折线图与散点图
- 使用opencv进行USB摄像头参数配置
- Xcode升级以后构建ios出现 “unable to find utility PackageApplication, not a developer tool or in PATH”的报错解决