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...阅读全文

Git: 如何修复gerrit merge conflict状态

A本地修改了某个文件File,B本地也修改了这个文件File,他们都先后git push到了gerrit上,这个时候reviewer无论先进谁的提交,gerrit上另一笔提交的状态都会显示merge conflict,那如何更新这一笔change,而不是Abandon然后再提一个change呢,假设A的提交了先进了,要修改B的change。先同步服务器代码git remo...阅读全文

内核msleep()耗时过多优化

高通低端平台启动时间发现有个地方耗时达2.5s,Linux内核版本3.18,具体是msm camera driver里使用了如下code:for(i=0;i<128;i++) { do_something(); msleep(delay); do_something(); }增加log,delay是1ms,从log看实际延时多达20ms,整个循环下...阅读全文