[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1414002630.2179.0.camel@jtkirshe-mobl>
Date: Wed, 22 Oct 2014 11:30:30 -0700
From: Jeff Kirsher <jeffrey.t.kirsher@...el.com>
To: Roman Gushchin <klamm@...dex-team.ru>
Cc: jesse.brandeburg@...el.com, bruce.w.allan@...el.com,
carolyn.wyborny@...el.com, donald.c.skidmore@...el.com,
gregory.v.rose@...el.com, peter.p.waskiewicz.jr@...el.com,
alexander.h.duyck@...el.com, john.ronciak@...el.com,
tushar.n.dave@...el.com, davem@...emloft.net, sassmann@...nic.de,
gregkh@...uxfoundation.org, e1000-devel@...ts.sourceforge.net,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] igb: don't reuse pages with pfmemalloc flag
On Wed, 2014-10-22 at 17:50 +0400, Roman Gushchin wrote:
> Incoming packet is dropped silently by sk_filter(), if the skb was
> allocated from pfmemalloc reserves and the corresponding socket is
> not marked with the SOCK_MEMALLOC flag.
>
> Igb driver allocates pages for DMA with __skb_alloc_page(), which
> calls alloc_pages_node() with the __GFP_MEMALLOC flag. So, in case
> of OOM condition, igb can get pages with pfmemalloc flag set.
>
> If an incoming packet hits the pfmemalloc page and is large enough
> (small packets are copying into the memory, allocated with
> netdev_alloc_skb_ip_align(), so they are not affected), it will be
> dropped.
>
> This behavior is ok under high memory pressure, but the problem is
> that the igb driver reuses these mapped pages. So, packets are still
> dropping even if all memory issues are gone and there is a plenty
> of free memory.
>
> In my case, some TCP sessions hang on a small percentage (< 0.1%)
> of machines days after OOMs.
>
> Fix this by avoiding reuse of such pages.
>
> Signed-off-by: Roman Gushchin <klamm@...dex-team.ru>
> ---
> drivers/net/ethernet/intel/igb/igb_main.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
Thanks Roman, I have added you patch to my queue.
Download attachment "signature.asc" of type "application/pgp-signature" (820 bytes)
Powered by blists - more mailing lists