Re: [RFC] oom, but there is enough memory

From: Michal Hocko
Date: Thu Mar 31 2016 - 05:30:26 EST


On Thu 31-03-16 17:16:00, Xishi Qiu wrote:
> It triggers a lot of ooms, but there is enough memory(many large blocks).
> And at last "Kernel panic - not syncing: Out of memory and no killable processes..."
>
> I find almost the every call trace include "pagefault_out_of_memory" and "gfp_mask=0x0".
> If it does oom, why not it triger in mm core path?

It seems that somebody in the page fault path has returned with
VM_FAULT_OOM without invoking the page allocator and kept returning the
same error until there is nothing killable and so the oom killer panics.

[...]
> <4>[63651.040374s][pid:2912,cpu3,sh]DMA free:550600kB min:5244kB low:27580kB high:28892kB active_anon:343060kB inactive_anon:1224kB active_file:107596kB inactive_file:465156kB unevictable:1040kB isolated(anon):0kB isolated(file):0kB present:2016252kB managed:1720040kB mlocked:1040kB dirty:40kB writeback:0kB mapped:200420kB shmem:1312kB slab_reclaimable:27048kB slab_unreclaimable:73300kB kernel_stack:15248kB pagetables:14484kB unstable:0kB bounce:0kB free_cma:30896kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no

This is rather weird. DMA zone with 2GB? What kind of architecture is
this?
--
Michal Hocko
SUSE Labs