On Mon, Mar 6, 2017 at 2:33 AM, Michal Hocko <mhocko@xxxxxxxxxx> wrote: > From: Michal Hocko <mhocko@xxxxxxxx> > > fq_alloc_node, alloc_netdev_mqs and netif_alloc* open code kmalloc > with vmalloc fallback. Use the kvmalloc variant instead. Keep the > __GFP_REPEAT flag based on explanation from Eric: > " > At the time, tests on the hardware I had in my labs showed that > vmalloc() could deliver pages spread all over the memory and that was a > small penalty (once memory is fragmented enough, not at boot time) > " > > The way how the code is constructed means, however, that we prefer to go > and hit the OOM killer before we fall back to the vmalloc for requests > <=32kB (with 4kB pages) in the current code. This is rather disruptive for > something that can be achived with the fallback. On the other hand > __GFP_REPEAT doesn't have any useful semantic for these requests. So the > effect of this patch is that requests smaller than 64kB will fallback to I am a bit confused about this 64kB, shouldn't it be <=32kB (with 4kB pages & PAGE_ALLOC_COSTLY_ORDER = 3)? > vmalloc easier now. > > Cc: Eric Dumazet <edumazet@xxxxxxxxxx> > Cc: netdev@xxxxxxxxxxxxxxx > Acked-by: Vlastimil Babka <vbabka@xxxxxxx> > Signed-off-by: Michal Hocko <mhocko@xxxxxxxx> > --- -- 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>