Re: [PATCH] net: use __GFP_NORETRY for high order allocations

From: Eric W. Biederman
Date: Fri Feb 07 2014 - 19:23:13 EST


David Miller <davem@xxxxxxxxxxxxx> writes:

> From: Eric Dumazet <eric.dumazet@xxxxxxxxx>
> Date: Thu, 06 Feb 2014 10:42:42 -0800
>
>> From: Eric Dumazet <edumazet@xxxxxxxxxx>
>>
>> sock_alloc_send_pskb() & sk_page_frag_refill()
>> have a loop trying high order allocations to prepare
>> skb with low number of fragments as this increases performance.
>>
>> Problem is that under memory pressure/fragmentation, this can
>> trigger OOM while the intent was only to try the high order
>> allocations, then fallback to order-0 allocations.
>>
>> We had various reports from unexpected regressions.
>>
>> According to David, setting __GFP_NORETRY should be fine,
>> as the asynchronous compaction is still enabled, and this
>> will prevent OOM from kicking as in :
> ...
>> Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
>> Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
>
> Applied, do we want this for -stable?

The first hunk goes back to 3.12 and the second hunk goes back to 3.8.

I think so. The change is safe and this class of problem can cause an
external attack to trigger an OOM on your box, by controlling the packet
flow.

Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/