ION debug
ION 在/sys/kernel/debug/ion/ 提供一个debugfs 接口。
每个heap都有自己的debugfs目录,client内存使用状况显示在/sys/kernel/debug/ion/<>
$cat /sys/kernel/debug/ion/ion-heap-1
client pid size
test_ion 2890 16384
每个由pid标识的client也有一个debugfs目录/sys/kernel/debug/ion/<>
$cat /sys/kernel/debug/ion/2890
heap_name: size_in_bytes
ion-heap-1: 40960 11
为什么需要ION
回顾2011年末[2],LWN审查了android kernel patch[3],以期望将这些patch合并到kernel主线中。但是PMEM(android实现的 一个内存分配器)使这个愿望破灭了。为什么PMEM不被linux 社区接受的原因在[3]中有讲到。从那开始,PMEM很明确会被完全抛弃,取而代之的是ION内存管理器。ION是google在Android4.0 ICS为了解决内存碎片管理而引入的通用内存管理器,它会更加融合kernel。目前QCOM MSM, NVDIA Tegra, TI OMAP, MRVL PXA都用ION替换PMEM。
如何获取source code
ION codes reside in drivers/gpu/ion
Specific usage examples on omap4:
ION 框架[1]
ION 定义了四种不同的heap,实现不同的内存分配策略。
ION_HEAP_TYPE_S