On 02/13/2018 07:52 PM, Alexey Kuznetsov wrote:
> Hello!
> BTW, check this a few lines above:
>         gfp_head = gfp_mask;
>         if (gfp_head & __GFP_WAIT)
>                 gfp_head |= __GFP_REPEAT;
> What is this??

Can't tell you why this was added and what purpose does it server, but...
__GFP_REPEAT mostly have effect only on costly order allocations (order >= 4)
It means retry allocation attempts until reclaimer makes any progress
(for non costly order (<= 3) allocator retries anyway, see 

gfp_head used only in alloc_skb(), so this basically means try harder to 
large (> 32K) skbs.

Also 'if (gfp_head & __GFP_WAIT)' line is redundant, because __GFP_REPEAT don't 
any effect on !__GFP_WAIT allocations.

Devel mailing list

Reply via email to