On Tue, Aug 6, 2019 at 3:34 PM Vlastimil Babka wrote: > > On 8/5/19 5:34 PM, Pankaj Suryawanshi wrote: > > On Mon, Aug 5, 2019 at 5:35 PM Michal Hocko wrote: > >> > >> On Mon 05-08-19 13:56:20, Vlastimil Babka wrote: > >> > On 8/5/19 1:24 PM, Michal Hocko wrote: > >> > >> [ 727.954355] CPU: 0 PID: 56 Comm: kworker/u8:2 Tainted: P O 4.14.65 #606 > >> > > [...] > >> > >> [ 728.029390] [] (oom_kill_process) from [] (out_of_memory+0x140/0x368) > >> > >> [ 728.037569] r10:00000001 r9:c12169bc r8:00000041 r7:c121e680 r6:c1216588 r5:dd347d7c > [ 728.045392] r4:d5737080 > >> > >> [ 728.047929] [] (out_of_memory) from [] (__alloc_pages_nodemask+0x1178/0x124c) > >> > >> [ 728.056798] r7:c141e7d0 r6:c12166a4 r5:00000000 r4:00001155 > >> > >> [ 728.062460] [] (__alloc_pages_nodemask) from [] (copy_process.part.5+0x114/0x1a28) > >> > >> [ 728.071764] r10:00000000 r9:dd358000 r8:00000000 r7:c1447e08 r6:c1216588 r5:00808111 > >> > >> [ 728.079587] r4:d1063c00 > >> > >> [ 728.082119] [] (copy_process.part.5) from [] (_do_fork+0xd0/0x464) > >> > >> [ 728.090034] r10:00000000 r9:00000000 r8:dd008400 r7:00000000 r6:c1216588 r5:d2d58ac0 > >> > >> [ 728.097857] r4:00808111 > >> > > > >> > > The call trace tells that this is a fork (of a usermodhlper but that is > >> > > not all that important. > >> > > [...] > >> > >> [ 728.260031] DMA free:17960kB min:16384kB low:25664kB high:29760kB active_anon:3556kB inactive_anon:0kB active_file:280kB inactive_file:28kB unevictable:0kB writepending:0kB present:458752kB managed:422896kB mlocked:0kB kernel_stack:6496kB pagetables:9904kB bounce:0kB free_pcp:348kB local_pcp:0kB free_cma:0kB > >> > >> [ 728.287402] lowmem_reserve[]: 0 0 579 579 > >> > > > >> > > So this is the only usable zone and you are close to the min watermark > >> > > which means that your system is under a serious memory pressure but not > >> > > yet under OOM for order-0 request. The situation is not great though > >> > > >> > Looking at lowmem_reserve above, wonder if 579 applies here? What does > >> > /proc/zoneinfo say? > > > > > > What is lowmem_reserve[]: 0 0 579 579 ? > > > > $cat /proc/sys/vm/lowmem_reserve_ratio > > 256 32 32 > > > > $cat /proc/sys/vm/min_free_kbytes > > 16384 > > > > here is cat /proc/zoneinfo (in normal situation not when oom) > > Thanks, that shows the lowmem reserve was indeed 0 for the GFP_KERNEL allocation > checking watermarks in the DMA zone. The zone was probably genuinely below min > watermark when the check happened, and things changed while the allocation > failure was printing memory info. Thanks Vlastimil. lowmem reserve ? it is min_free_kbytes or something else.