On Tue 14-07-15 17:14:40, Xishi Qiu wrote: > On 2015/7/14 17:00, Michal Hocko wrote: > > > On Tue 14-07-15 16:42:16, Xishi Qiu wrote: > >> On 2015/7/14 16:15, Michal Hocko wrote: > >> > >>> On Tue 14-07-15 07:11:34, Xuzhichuang wrote: > > [...] > >>>> Jul 10 12:33:03 BMS_CNA04 kernel: [18136514.138968] DMA32: 188513*4kB > >>>> 29459*8kB 2*16kB 2*32kB 1*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB > >>>> 0*4096kB = 990396kB > >>> > >>> Moreover your allocation request was oreder 2 and you do not have much > >>> memory there because most of the free memory is in order-0-2. > >>> > >> > >> Hi Michal, > >> > >> order=2 -> alloc 16kb memory, and DMA32 still has 2*16kB 2*32kB 1*64kB > >> 1*512kB, > >> so you mean this large buddy block was reclaimed during the moment of oom > >> and > >> print, right? > > > > Not really. Those high order blocks are inaccessible for your GFP_KERNEL > > allocation. See __zone_watermark_ok. > > > > I know, some of them are from reserved memory(MIGRATE_RESERVE), right?
No. The watermark is calculated per order. And you have almost all the free memory in the lower orders. From a quick glance it seems that even order-1 allocations wouldn't fit into min watermark. -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

