AnsweredAssumed Answered

IMX6Solo Android 5.0 - Out of memory and no killable processes...

Question asked by F L on Oct 22, 2015
Latest reply on Dec 14, 2015 by F L

Hello

 

I am trying to prepare a custom Android 5.0 build with slight changes from Sabre board (Hummingboard from Solidrun).

I have a booting kernel that runs out of memory after starting to kill a number of processes. I have several "main" processes that are consuming RAM. When I lower the kernel "cma" parameter from 380MB to 250M and down to 64M, I see that more processes can be accomodated, but I in the case below I have 8 "main" processes each of them consuming about 30MB each. Can you please point me to what is this "main" process, and what I could look at?

 

request_suspend_state: wakeup (0->0) at 101799750344 (1970-01-01 00:02:28.868573678 UTC)
init: untracked pid 930 killed by signal 9
mediaserver invoked oom-killer: gfp_mask=0x2084d0, order=0, oom_score_adj=-1000
CPU: 0 PID: 932 Comm: mediaserver Tainted: G        W    3.10.53-88204-g4f0dd92-dirty #7
[<80014404>] (unwind_backtrace+0x0/0xf8) from [<80011964>] (show_stack+0x10/0x14)
[<80011964>] (show_stack+0x10/0x14) from [<807f0098>] (dump_header.isra.10+0x6c/0x188)
[<807f0098>] (dump_header.isra.10+0x6c/0x188) from [<800ac1f0>] (out_of_memory+0x29c/0x2d4)
[<800ac1f0>] (out_of_memory+0x29c/0x2d4) from [<800b07bc>] (__alloc_pages_nodemask+0x848/0x870)
[<800b07bc>] (__alloc_pages_nodemask+0x848/0x870) from [<800c64f8>] (__pte_alloc+0x24/0x144)
[<800c64f8>] (__pte_alloc+0x24/0x144) from [<800c9414>] (handle_mm_fault+0xb0/0xc4)
[<800c9414>] (handle_mm_fault+0xb0/0xc4) from [<80019180>] (do_page_fault+0x240/0x37c)
[<80019180>] (do_page_fault+0x240/0x37c) from [<800083c4>] (do_DataAbort+0x34/0x9c)
[<800083c4>] (do_DataAbort+0x34/0x9c) from [<8000deb4>] (__dabt_usr+0x34/0x40)
Exception stack(0x853effb0 to 0x853efff8)
ffa0:                                     767b7034 767b7134 767b7000 76c7cbdc
ffc0: 7ebc7650 7ebc7654 00000008 7ebc7640 00000000 00000000 767b7034 00000000
ffe0: 76c7cbc3 7ebc7628 76fe3551 76fe5372 800d0030 ffffffff
Mem-info:
DMA per-cpu:
CPU    0: hi:  186, btch:  31 usd:  24
active_anon:104052 inactive_anon:3 isolated_anon:0
 active_file:152 inactive_file:615 isolated_file:19
 unevictable:334 dirty:0 writeback:0 unstable:0
 free:662 slab_reclaimable:756 slab_unreclaimable:1631
 mapped:338 shmem:9 pagetables:423 bounce:0
 free_cma:616
DMA free:2860kB min:2636kB low:3292kB high:3952kB active_anon:416712kB inactive_anon:12kB active_file:748kB inactive_file:944kB unevictable:1336kB isolated(anon):0kB isolated(file):132kB present:523264kB managed:435032kB mlocked:0kB dirty:0kB writeback:0kB mapped:1312kB shmem:36kB slab_reclaimable:3024kB slab_unreclaimable:6524kB kernel_stack:904kB pagetables:1692kB unstable:0kB bounce:0kB free_cma:2492kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
DMA: 587*4kB (EC) 24*8kB (UEC) 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB 0*8192kB 0*16384kB 0*32768kB = 2540kB
362 total pagecache pages
0 pages in swap cache
Swap cache stats: add 0, delete 0, find 0/0
Free swap  = 0kB
Total swap = 0kB
131072 pages of RAM
889 free pages
5658 reserved pages
1918 slab pages
321 pages shared
0 pages swap cached
[ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name
[  130]     0   130      655      150       4        0         -1000 ueventd
[  131]     0   131      654       59       4        0         -1000 watchdogd
[  142]  1036   142     2292      233       6        0         -1000 logd
[  143]     0   143      922       86       4        0         -1000 healthd
[  144]     0   144     1118       78       4        0         -1000 lmkd
[  145]  1000   145      812       67       3        0         -1000 servicemanager
[  146]     0   146     1933      163       5        0         -1000 vold
[  149]     0   149     1228      176       5        0         -1000 debuggerd
[  150]  1019   150     3239      260       8        0         -1000 drmserver
[  152]  1012   152      801       60       3        0         -1000 installd
[  153]  1017   153     1571      141       5        0         -1000 keystore
[  154]     0   154     1310      100       4        0         -1000 rild
[  157]  1023   157     2317       55       6        0         -1000 sdcard
[  159]  2000   159     1423       79       5        0         -1000 adbd
[  409]     0   409    30250    15637      43        0         -1000 main
[  449]     0   449    29226    14440      41        0         -1000 main
[  489]     0   489    29226    13917      42        0         -1000 main
[  531]     0   531    29226    13263      39        0         -1000 main
[  571]     0   571    29226    11503      36        0         -1000 main
[  612]     0   612    29226     8682      31        0         -1000 main
[  653]     0   653    29226     7539      29        0         -1000 main
[  692]     0   692    29226     6435      28        0         -1000 main
[  734]     0   734     9112     5292      20        0         -1000 dex2oat
[  772]     0   772     8593     5222      19        0         -1000 dex2oat
[  929]  1000   929     2699      179       6        0         -1000 surfaceflinger
[  931]     0   931     1103       92       4        0         -1000 netd
[  932]  1013   932     2142      198       5        0         -1000 mediaserver
[  933]     0   933     4671      170       7        0         -1000 app_process
[  941]     0   941      643       44       3        0         -1000 iptables
Kernel panic - not syncing: Out of memory and no killable processes...

CPU: 0 PID: 932 Comm: mediaserver Tainted: G        W    3.10.53-88204-g4f0dd92-dirty #7
[<80014404>] (unwind_backtrace+0x0/0xf8) from [<80011964>] (show_stack+0x10/0x14)
[<80011964>] (show_stack+0x10/0x14) from [<807ef26c>] (panic+0x8c/0x1e4)
[<807ef26c>] (panic+0x8c/0x1e4) from [<800ac1f8>] (out_of_memory+0x2a4/0x2d4)
[<800ac1f8>] (out_of_memory+0x2a4/0x2d4) from [<800b07bc>] (__alloc_pages_nodemask+0x848/0x870)
[<800b07bc>] (__alloc_pages_nodemask+0x848/0x870) from [<800c64f8>] (__pte_alloc+0x24/0x144)
[<800c64f8>] (__pte_alloc+0x24/0x144) from [<800c9414>] (handle_mm_fault+0xb0/0xc4)
[<800c9414>] (handle_mm_fault+0xb0/0xc4) from [<80019180>] (do_page_fault+0x240/0x37c)
[<80019180>] (do_page_fault+0x240/0x37c) from [<800083c4>] (do_DataAbort+0x34/0x9c)
[<800083c4>] (do_DataAbort+0x34/0x9c) from [<8000deb4>] (__dabt_usr+0x34/0x40)
Exception stack(0x853effb0 to 0x853efff8)
ffa0:                                     767b7034 767b7134 767b7000 76c7cbdc
ffc0: 7ebc7650 7ebc7654 00000008 7ebc7640 00000000 00000000 767b7034 00000000
ffe0: 76c7cbc3 7ebc7628 76fe3551 76fe5372 800d0030 ffffffff
Rebooting in 5 seconds..

 

Probably I am using a wrong init script (can you confirm that the above "main" processes are services initialized from init script?). However, I did not find in the documentation the proper lunch settings for an imx6solo android build. I am comparing the init scripts for dual/quad version with the ones provided for the soloX evk. But I see that the binary distribution files are avilable for both Solo and Dual/Quad Android versions. What kind of lunch settings could be required for IMX6SOLO board (I am recreating bootimage with kernel, dtb files and ramdisk)?

Outcomes