On Mon 19-09-16 07:31:06, Andi Kleen wrote: > On Mon, Sep 19, 2016 at 08:37:36AM -0500, Christoph Lameter wrote: > > On Sun, 18 Sep 2016, Andi Kleen wrote: > > > > > > Sounds like SLUB. SLAB would use order-0 as long as things fit. I would > > > > hope for SLUB to fallback to order-0 (or order-1 for 8kB) instead of > > > > OOM, though. Guess not... > > > > > > It's already trying to do that, perhaps just some flags need to be > > > changed? > > > > SLUB tries order-N and falls back to order 0 on failure. > > Right it tries, but Linus apparently got an OOM in the order-N > allocation. So somehow the flag combination that it passes first > is not preventing the OOM killer. It does AFAICS: alloc_gfp = (flags | __GFP_NOWARN | __GFP_NORETRY) & ~__GFP_NOFAIL; if ((alloc_gfp & __GFP_DIRECT_RECLAIM) && oo_order(oo) > oo_order(s->min)) alloc_gfp = (alloc_gfp | __GFP_NOMEMALLOC) & ~(__GFP_RECLAIM|__GFP_NOFAIL); page = alloc_slab_page(s, alloc_gfp, node, oo); if (unlikely(!page)) { oo = s->min; alloc_gfp = flags; /* * Allocation may have failed due to fragmentation. * Try a lower order alloc if possible */ page = alloc_slab_page(s, alloc_gfp, node, oo); I think that Linus just see a genuine order-3 request -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>