On 02/13/2018 07:52 PM, Alexey Kuznetsov wrote:
> 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