分类 Memory Management 下的文章

Android P LMKD分析二

关于mp_event_common接受的内存压力事件,是从内核而来,简单说下。先来看下官方的介绍:Historically, Android used in-kernel lowmemorykiller driver to handle memory pressure situations by killing non-essential processes. This ...阅读全文

Android P LMKD分析一

Android P lmkd新增了许多机制和属性,包括引入原来内核的minfree算法等,看样子是越来越复杂了,下面来看看,内核版本4.9,高通平台。how to kill先看下应该杀掉哪个process or 哪些processes(yes, 已经支持)?主要改动是:support kill heaviest processsupport kill multiple p...阅读全文

memcg: understand memory usage

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分析

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

ion简要介绍

Ion是google为了解决不同Android设备的内存碎片问题,在Android4.0中提出的下一代更通用的内存管理器,支持各种不同的内存分配,这些内存种类包括有:carveout, 物理连续的,虚拟连续的,iommu,secure memory,ion也可以在不同进程,user和kernel间共享buffer。Ion把不同的内存空间用heap来分割管理,一般在dts中...阅读全文

解决kmalloc分配失败的问题

最近遇到一个kmalloc内存分配失败的问题,是刚刷完手机第一次开机很大概率出现,重启后就好了,Android7.0/ARM64/kernel3.18。01-09 04:55:23.878 0 0 W Thread-2: page allocation failure: order:4, mode:0xc0d0order-4是16个page了。call s...阅读全文