Android Go在data分区填近满后不能启动bug分析 2018-08-08 | Stability - zygote, ART | 评论 (7) 最近遇到一个问题:重启压测十来天后出现大量手机不能启动, Android Go/MSM8909,有FWK同事发现空间满了,如下:/dev/block/mmcblk0p39 5.2G 4.8G 340M 94% /data原来是我们自定义的logd一直写满了data分区,删除后立即启动正常,为什么data满了会导致起不来,看了下Z的手机,我折腾了下1h都没起来:msm...阅读全文
Fix a strange kernel crash issue on custom driver 2018-07-27 | Stability - crash 最近在从msm_A/kernel3.18 port自定义mmc driver到msm_B/kernel4.9时,出现了kernel crash,log如下:[ 18.739259] Unable to handle kernel paging request at virtual address ffffffc08b8c4f40 [ 18.743483] pgd ...阅读全文
SDCardFS: 删除文件后空间未释放问题分析 2018-07-13 | File System - unlink | 评论 (3) Android O开始默认使用了sdcardfs,弃用了好多年的fuse,原因就是sdcardfs比fuse性能更优,原生Android sdcardfs的由来:vfs > wrapfs(edu) > sdcardfs(Samsung) > sdcardfs(Google)。sdcardfs有个问题:cp文件到SD卡(fat格式)再删除这个文件,该文件空...阅读全文
memcg: understand memory usage 2018-06-21 | Memory Management - memcg Android Go的用户态lmk在探测内存压力时用到了memcg的如下内存使用统计:#define MEMCG_MEMORY_USAGE "/dev/memcg/memory.usage_in_bytes" #define MEMCG_MEMORYSW_USAGE "/dev/memcg/memory.memsw.usage_in_byte...阅读全文
Android Go lowmemorykiller分析 2018-05-25 | Memory Management - LMK, memcg Android Go是a feature of Android O MR1(8.1),它已经不再使用in kernel lowmemorykiller了,取而代之的是user space的基于memory pressure的killer。这个user space的代码就是system/core/lmkd/lmkd.c,它是如何detect memory pressure的...阅读全文
System Crash实例分析一 2018-05-08 | Stability - crash 死机分析以前在R平台搞过,基本就是抓到死机时的CPU register等信息,然后用objdump反汇编出来结合源码定位分析,现在到了手机平台,多了个Tracer32,高通分析死机都在用,现在死机都挂我这了,老问高通也不是个事重拾下,我觉得可以不用trace32,基本还是那老一套。先来看死机现场:[ 1256.852648] Unable to handle kernel...阅读全文
SELinux: fix an issue about "context_to_sid returned 12" 2018-04-26 | Security - file_contexts.bin 前方用户提了个故障说手机发热低电下重启后发现有SD掉卡提示,Android_N/Kernel_3.18,离线日志找了半天,logcat日志里发现:434 439 E vold : Failed to pclose /system/bin/sgdisk --android-dump /dev/block/vold/disk:179:64 : Success 434...阅读全文
分析ueventd Coldboot耗时问题 2018-04-13 | Performance - ueventd 安卓go平台启动时间发现如下ueventd耗时1.907s问题:01-11 00:20:02.854 0 0 I init : Parsing file /odm/etc/init... 01-11 00:20:02.854 0 0 E init : Unable to open '/odm/etc/init': No such...阅读全文