分析__pa和__va代码定义

arm64/kernel3.18的定义在arch/arm64/include/asm/memory.h里 #ifndef __ASSEMBLY__#define __pa(x) __virt_to_phys((unsigned long)(x))#define __va(x) ...

阅读全文

lowmemorykiller misc notes

I’m reading code about in kernel lowmemorykiller, lets know about some concepts related. vmpressure: monitor Linux virtual memory management pressure kernel page reclaim: backgr...

阅读全文

Android UX性能测试

目标就是找到一种简单的量化测试方法 apk启动时间测量方法一:利用am start一般看TotalTime,多取几次算平均。 // adb shell am start -w packagename/MainActivityxxx:/ # am start -W com.android.settings/com.android.settings.Settin...

阅读全文

Get Weather Forecasts on Raspberry Pi

take a picture No module named pywapi download address: https://github.com/kapt/pywapi No module named psutil download address: https://github.com/packages/psutil No file n...

阅读全文

ARMv7多核中断调试

之前调了在Bootloader下bring up secondary cpu, arch是armv7, gic v2,记录下。 Hardware logic+----------+ +------------+ +-------------+ +------------+ +----+|soc timer ...

阅读全文

ARM Linux高端内存分析(下)

上半部分分析了kmap_atomic里的low memory page地址的获取,那如何获取high memory page的virtual address呢。 kmap_atomic分析入口就是pagefault_disable,查看定义: /* * These routines enable/disable the pagefault handler i...

阅读全文

ARM Linux高端内存分析(上)

目录 What is high memory kmap_atomic kunmap_atomic What is high memory先看下内核文档kernel3.18 vm/highmem.txt的说明: High memory (highmem) is used when the size of physical memory appr...

阅读全文

在Windows VirtualBox虚拟的Ubuntu中使用adb

背景Android手机有些脚本需要在Linux环境中用,有些场景下还是需要在Windows中用VirtualBox虚拟一个Linux/Ubuntu来使用。 主机虚拟机互访在VirutalBox安装好Ubuntu后,adb命令包是没有的,虚拟机也是不能上网的,不可能用apt-get了,一个简单的方法就是先在主机上下好deb包,把deb包传输到Ubun...

阅读全文

分析ZRAM数据流操作

ZRAM基本 kernel3.18下代码路径在driver/block/zram下,主要是三部分:zram块设备驱动zram_drv.c,zram数据流操作zcomp.c以及压缩后台lzo/lz4接口 zram sysfs node path: /sys/block/zram0/ zram...

阅读全文

分析adaptive lmk特性

特性来源ALMK: adaptive lowmemorykiller,是Qualcomm针对安卓LMK的优化,当系统lmk还没有杀进程时,如果发现有过高的vmpressure,就有可能会造成卡顿,此时杀掉某个进程是个比较好的选择。 代码分析msm kernel3.18 lowmemorykiller.c 主体函数如下: static unsigned lon...

阅读全文