Android Go在data分区填近满后不能启动bug分析

最近遇到一个问题:重启压测十来天后出现大量手机不能启动, Android Go/MSM8909,有FWK同事发现空间满了,如下:/dev/block/mmcblk0p39 5.2G 4.8G 340M 94% /data原来是我们自定义的logd一直写满了data分区,删除后立即启动正常,为什么data满了会导致起不来,看了下Z的手机,我折腾了下1h都没起来:msm...阅读全文

SDCardFS: 删除文件后空间未释放问题分析

Android O开始默认使用了sdcardfs,弃用了好多年的fuse,原因就是sdcardfs比fuse性能更优,原生Android sdcardfs的由来:vfs > wrapfs(edu) > sdcardfs(Samsung) > sdcardfs(Google)。sdcardfs有个问题:cp文件到SD卡(fat格式)再删除这个文件,该文件空...阅读全文

Android Go lowmemorykiller分析

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实例分析一

死机分析以前在R平台搞过,基本就是抓到死机时的CPU register等信息,然后用objdump反汇编出来结合源码定位分析,现在到了手机平台,多了个Tracer32,高通分析死机都在用,现在死机都挂我这了,老问高通也不是个事重拾下,我觉得可以不用trace32,基本还是那老一套。先来看死机现场:[ 1256.852648] Unable to handle kernel...阅读全文