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

From: David Miller
Date: Tue Feb 25 2014 - 15:50:36 EST


From: ebiederm@xxxxxxxxxxxx (Eric W. Biederman)
Date: Fri, 07 Feb 2014 16:22:56 -0800

> 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.

Great, I'm working integrating this into my -stable queue right now.
--
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/