From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754565Ab3EUPbY (ORCPT ); Tue, 21 May 2013 11:31:24 -0400 Received: from mail-da0-f48.google.com ([209.85.210.48]:45032 "EHLO mail-da0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754107Ab3EUPbW (ORCPT ); Tue, 21 May 2013 11:31:22 -0400 Message-ID: <1369150280.3301.230.camel@edumazet-glaptop> Subject: Re: sk_page_frag_refill OOM killing spree From: Eric Dumazet To: Florian Westphal Cc: netdev@vger.kernel.org, "linux-kernel@vger.kernel.org" Date: Tue, 21 May 2013 08:31:20 -0700 In-Reply-To: <20130521122845.GD16412@breakpoint.cc> References: <20130521122845.GD16412@breakpoint.cc> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 Content-Transfer-Encoding: 7bit Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2013-05-21 at 14:28 +0200, Florian Westphal wrote: > Hi Eric, > > seems like sk_page_frag_refill() can cause oom-killer invocation: > > postgres invoked oom-killer: gfp_mask=0x42d0, order=3, oom_score_adj=0 > Pid: 10551, comm: postgres Tainted: G O 3.8.6-5.g613ca40-smp #1 > Call Trace: > [] ? dump_header+0x60/0x191 > [] ? ___ratelimit+0xb2/0xc4 > [] ? oom_kill_process+0x61/0x2d1 > [] ? has_capability_noaudit+0x1c/0x23 > [] ? oom_badness+0x8c/0xef > [] ? out_of_memory+0x203/0x247 > [] ? __alloc_pages_nodemask+0x42b/0x4c3 > [] ? sk_page_frag_refill+0x6a/0xd2 > [] ? tcp_sendmsg+0x3e8/0x7c6 > [] ? inet_sendmsg+0x6b/0x75 > [] ? sock_sendmsg+0x8d/0xa6 > [] ? sys_sendto+0x105/0x130 > [] ? __kunmap_atomic+0x62/0x8a > [] ? __kunmap_atomic+0x7b/0x8a > [] ? __lru_cache_add+0x18/0x47 > [] ? handle_pte_fault+0x745/0x751 > [] ? kmap_atomic_prot+0xd3/0xf1 > [] ? handle_mm_fault+0x112/0x121 > [] ? sys_send+0x37/0x3b > > The system is busy, so, order-3 alloc failure doesn't strike me as odd. > > There are no allocation failures with order != 3. > > Sometimes this can happen in very short sucession, i.e. > and oom-killer did end up zapping 30 processes or so. > > My question is, should sk_page_frag_refill use __GFP_NORETRY, at least > for order 3 requests? Yes, you may be right, but I prefer some mm expertise here, so I CC lkml