Recent 3.x kernels: Memory leak causing OOMs

David Rientjes rientjes at google.com
Sun Feb 16 17:17:44 EST 2014


On Sun, 16 Feb 2014, Russell King - ARM Linux wrote:

> Mem-info:
> Normal per-cpu:
> CPU    0: hi:   42, btch:   7 usd:  36
> active_anon:28041 inactive_anon:104 isolated_anon:0
>  active_file:11 inactive_file:11 isolated_file:0
>  unevictable:0 dirty:1 writeback:6 unstable:0
>  free:342 slab_reclaimable:170 slab_unreclaimable:570
>  mapped:13 shmem:139 pagetables:95 bounce:0
>  free_cma:0
> Normal free:1368kB min:1384kB low:1728kB high:2076kB active_anon:112164kB inactive_anon:416kB active_file:44kB inactive_file:44kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:131072kB managed:120152kB mlocked:0kB dirty:4kB
> writeback:24kB mapped:52kB shmem:556kB slab_reclaimable:680kB slab_unreclaimable:2280kB kernel_stack:248kB pagetables:380kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:136 all_unreclaimable? yes

All memory is accounted for here, there appears to be no leakage.

> [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name
...
> [  756]     0   756    28163    27776      57        0             0 ld-linux.so.2

This is taking ~108MB of your ~117MB memory.

Three possibilies that immediately jump to mind:

 - if this is an SMP kernel, then too much free memory is being accounted
   for in cpu-0 vmstat differential and not returned to the ZVC pages 
   count,

 - there is a too little amount of "managed" memory attributed to 
   ZONE_NORMAL, the ~10MB difference between "present" and "managed"
   memory, or

 - ld-linux.so.2 is using too much memory.



More information about the linux-arm-kernel mailing list