主题 : Super4412在Android4.2内核上的视频播放Bug 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 113272
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
贡献值: 0 点
综合积分: 8 分
注册时间: 2015-03-10
最后登录: 2015-11-25
楼主  发表于: 2015-06-04 14:17

 Super4412在Android4.2内核上的视频播放Bug

使用资源:
开发板:Super4412   2GMem
内核:Android 4.2.2(2015-01-21)
            Linux 3.5(2015-01-21)

错误现象:
1:自己上层使用VideoView编写一个最简单的视频播放程序,播放1天左右,出现死机现象,并打印一下Bug信息
2:使用已有的使用较频繁的播放器,比如(MxPlayer),播放一天后,也出现死机现象,并打印一下Bug信息
[83500.045000] SurfaceFlinger invoked oom-killer: gfp_mask=0x84d0, order=0, oom_adj=-16, oom_score_adj=-941
[83500.045000] [<c0015484>] (unwind_backtrace+0x0/0xf0) from [<c00b4a08>] (dump_header.clone.10+0x74/0x17c)
[83500.045000] [<c00b4a08>] (dump_header.clone.10+0x74/0x17c) from [<c00b4cfc>] (oom_kill_process.clone.12+0x120/0x234)
[83500.050000] [<c00b4cfc>] (oom_kill_process.clone.12+0x120/0x234) from [<c00b5148>] (out_of_memory+0x1f0/0x310)
[83500.060000] [<c00b5148>] (out_of_memory+0x1f0/0x310) from [<c00b9c44>] (__alloc_pages_nodemask+0x72c/0x768)
[83500.070000] [<c00b9c44>] (__alloc_pages_nodemask+0x72c/0x768) from [<c00d269c>] (__pte_alloc+0x20/0x140)
[83500.080000] [<c00d269c>] (__pte_alloc+0x20/0x140) from [<c00d29c4>] (remap_pfn_range+0x208/0x21c)
[83500.090000] [<c00d29c4>] (remap_pfn_range+0x208/0x21c) from [<c025b26c>] (ion_heap_map_user+0xbc/0xf8)
[83500.100000] [<c025b26c>] (ion_heap_map_user+0xbc/0xf8) from [<c0259918>] (ion_mmap+0x68/0xd4)
[83500.105000] [<c0259918>] (ion_mmap+0x68/0xd4) from [<c027dc50>] (dma_buf_mmap_internal+0x50/0x58)
[83500.115000] [<c027dc50>] (dma_buf_mmap_internal+0x50/0x58) from [<c00d90ec>] (mmap_region+0x2e4/0x478)
[83500.125000] [<c00d90ec>] (mmap_region+0x2e4/0x478) from [<c00ca760>] (vm_mmap_pgoff+0x5c/0x74)
[83500.135000] [<c00ca760>] (vm_mmap_pgoff+0x5c/0x74) from [<c00d82c0>] (sys_mmap_pgoff+0x58/0xac)
[83500.145000] [<c00d82c0>] (sys_mmap_pgoff+0x58/0xac) from [<c000e440>] (ret_fast_syscall+0x0/0x30)
[83500.150000] Mem-info:
[83500.155000] Normal per-cpu:
[83500.155000] CPU    0: hi:  186, btch:  31 usd: 136
[83500.160000] CPU    1: hi:  186, btch:  31 usd:  26
[83500.165000] CPU    2: hi:  186, btch:  31 usd:  89
[83500.170000] CPU    3: hi:  186, btch:  31 usd:  65
[83500.175000] HighMem per-cpu:
[83500.180000] CPU    0: hi:  186, btch:  31 usd: 166
[83500.185000] CPU    1: hi:  186, btch:  31 usd:  17
[83500.190000] CPU    2: hi:  186, btch:  31 usd: 155
[83500.195000] CPU    3: hi:  186, btch:  31 usd:  17
[83500.200000] active_anon:28916 inactive_anon:246 isolated_anon:0
[83500.200000]  active_file:15058 inactive_file:31666 isolated_file:0
[83500.200000]  unevictable:0 dirty:1 writeback:0 unstable:0
[83500.200000]  free:274094 slab_reclaimable:1296 slab_unreclaimable:89074
[83500.200000]  mapped:22726 shmem:259 pagetables:1190 bounce:0
[83500.225000] Normal free:32732kB min:32768kB low:40960kB high:49152kB active_anon:0kB inactive_anon:0kB active_file:76kB inactive_file:92kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:470672kB mlocked:0kB dirty:0kB writeback:0kB mapped:36432kB shmem:0kB slab_reclaimable:5184kB slab_unreclaimable:356296kB kernel_stack:3656kB pagetables:4760kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:1790131 all_unreclaimable? yes
[83500.265000] lowmem_reserve[]: 0 12170 12170
[83500.270000] HighMem free:1063644kB min:512kB low:27624kB high:54740kB active_anon:115664kB inactive_anon:984kB active_file:60156kB inactive_file:126572kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:1557880kB mlocked:0kB dirty:4kB writeback:0kB mapped:54472kB shmem:1036kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[83500.310000] lowmem_reserve[]: 0 0 0
[83500.315000] Normal: 113*4kB 123*8kB 132*16kB 152*32kB 112*64kB 112*128kB 11*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 32732kB
[83500.325000] HighMem: 29*4kB 27*8kB 537*16kB 574*32kB 327*64kB 159*128kB 85*256kB 37*512kB 22*1024kB 13*2048kB 221*4096kB = 1063644kB
[83500.335000] 46976 total pagecache pages
[83500.340000] 0 pages in swap cache
[83500.345000] Swap cache stats: add 0, delete 0, find 0/0
[83500.350000] Free swap  = 0kB
[83500.350000] Total swap = 0kB
[83500.390000] 519936 pages of RAM
[83500.390000] 316367 free pages
[83500.390000] 15308 reserved pages
[83500.390000] 88900 slab pages
[83500.390000] 97504 pages shared
[83500.390000] 0 pages swap cached
[83500.390000] [ pid ]   uid  tgid total_vm      rss cpu oom_adj oom_score_adj name
[83500.390000] [   91]     0    91       89       47   0     -16          -941 ueventd
[83500.400000] [  102]  1023   102      582      103   3     -16          -941 sdcard
[83500.405000] [  103]  1000   103      222       46   0     -16          -941 servicemanager
[83500.415000] [  104]     0   104     1017      176   1     -16          -941 vold
[83500.420000] [  108]  1007   108      186       42   3     -16          -941 logwrapper
[83500.430000] [  109]     0   109     2982      326   3     -16          -941 netd
[83500.435000] [  110]     0   110      233       58   0     -16          -941 debuggerd
[83500.445000] [  112]  1000   112    52755      793   0     -16          -941 surfaceflinger
[83500.455000] [  113]     0   113   159603     9040   3     -16          -941 zygote
[83500.460000] [  114]  1019   114     2249      746   0     -16          -941 drmserver
[83500.470000] [  115]  1013   115    26691     9205   3     -16          -941 mediaserver
[83500.475000] [  116]     0   116      191        1   0     -16          -941 tsd
[83500.485000] [  117]  1002   117      349      121   0     -16          -941 dbus-daemon
[83500.490000] [  118]  1012   118      225       50   1     -16          -941 installd_rel
[83500.500000] [  119]  1017   119      457      168   3     -16          -941 keystore
[83500.510000] [  120]  2000   120      205      116   0     -16          -941 sh
[83500.515000] [  121]     0   121      861        1   3     -16          -941 adbd
[83500.520000] [  332]     0   332     1169       60   1     -16          -941 zygote
[83500.530000] [  370]     0   370      610        8   2     -16          -941 360s
[83500.535000] [  371]     0   371      610        8   0     -16          -941 360s
[83500.545000] [  467]  1000   467   183544     9836   0     -16          -941 system_server
[83500.555000] [  528]     0   528      243      108   1     -16          -941 dhcpcd
[83500.560000] [  547] 10053   547   169063     9117   3     -12          -705 ndroid.systemui
[83500.570000] [  561] 10078   561   169265    10285   0       2           117 fe:GuardService
[83500.575000] [  588] 10027   588   162444     5597   1       2           117 putmethod.latin
[83500.585000] [  606]  1001   606   166239     6087   3     -12          -705 m.android.phone
[83500.595000] [  619] 10029   619   166648     8450   3       6           352 ndroid.launcher
[83500.600000] [  635] 10014   635   161667     4600   3       2           117 .location.fused
[83500.610000] [  698] 10062   698   161699     4545   0       1            58 android.smspush
[83500.620000] [  744] 10078   744      160       21   1       0             0 um.0.2
[83500.625000] [  812]  1010   812      673      370   2     -16          -941 wpa_supplicant
[83500.635000] [ 1338] 10066  1338   165872     6332   0       2           117 om.qihoo.daemon
[83500.645000] [ 1417] 10066  1417   154717     4112   2       0             0 app_process
[83500.650000] [ 1536]     0  1536     1355       83   2       2           117 zygote
[83500.660000] [ 1537]     0  1537   156814     4246   3       2           117 qh_rt_service
[83500.665000] [ 1629] 10080  1629   174242     6528   1       0             0 ple.zfxcaddemon
[83500.675000] [ 1697]     0  1697      208      127   1     -16          -941 sh
[83500.680000] [23376]     0 23376      273      107   1     -16          -941 logcat
[83500.690000] [26039] 10008 26039   164361     5990   0       5           294 e.process.gapps
[83500.700000] [26156] 10026 26156   161680     4292   0       8           470 ndlyarm.LEDDemo
[83500.705000] [26173] 10074 26173   164115     5474   0       8           470 pp:bdservice_v1
[83500.715000] [26201] 10070 26201   162700     4470   3       5           294 xcdevicemanager
[83500.725000] Out of memory: Kill process 26173 (pp:bdservice_v1) score 480 or sacrifice child
[83500.730000] Killed process 26173 (pp:bdservice_v1) total-vm:656460kB, anon-rss:12644kB, file-rss:9252kB

‘错误分析:
通过错误信息可以看出,系统的Lowmem被蚕食殆尽,导致最后系统启动OOM机制来销毁已存在的进程。在不断的销毁进程中,当
Binder进程被销毁时,系统就会死掉(命令行,屏幕都挂掉)
通过cat /proc/zoneinfo命令和cat /proc/meminfo命令分析,可以明显的看到,Lowmem部分的free page在一点点减少,当达到OOM
的销毁级别,只剩(32732kB)32MB的时候,上面Log就会出现。
但是,上述问题在使用4.1.2内核代码后,不会出现Lowmem内存被蚕食的现象。《4.1.2内核配置:Android:4.1.2   Linux:3.0.31》
因此怀疑4.2.2对应的Android或者Linux内核中产生了内存分配(mmap,kmalloc)后没有释放的情况,但是苦于这部分代码繁多,
苦于跟踪,而且对SurfaceFlinger 了解度不够,希望友善之臂或者有了解这方面的人给出建议或者提出解决方案。

谢谢


            
级别: 总版主
UID: 45585
精华: 3
发帖: 628
金钱: 3375 两
威望: 675 点
贡献值: 3 点
综合积分: 1316 分
注册时间: 2011-05-06
最后登录: 2018-10-18
1楼  发表于: 2015-06-04 14:25
有没有用最新的 Android 5.0.2 试一下, 我们现在开发的重心主要在 Android 5上面
级别: 新手上路
UID: 113272
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
贡献值: 0 点
综合积分: 8 分
注册时间: 2015-03-10
最后登录: 2015-11-25
2楼  发表于: 2015-06-04 14:27

 回 1楼(xoom) 的帖子

暂时没有,今天在测试4.1.2.  没发现问题。 明天测试一下 Android 5.0.2
yry
级别: 新手上路
UID: 15789
精华: 0
发帖: 18
金钱: 90 两
威望: 18 点
贡献值: 0 点
综合积分: 36 分
注册时间: 2010-03-09
最后登录: 2015-11-10
3楼  发表于: 2015-07-27 15:08

 回 2楼(635123374) 的帖子

Android 5.0.2 是否有问题?