From mboxrd@z Thu Jan 1 00:00:00 1970 From: Florian Westphal Subject: sk_page_frag_refill OOM killing spree Date: Tue, 21 May 2013 14:28:45 +0200 Message-ID: <20130521122845.GD16412@breakpoint.cc> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: eric.dumazet@gmail.com To: netdev@vger.kernel.org Return-path: Received: from Chamillionaire.breakpoint.cc ([80.244.247.6]:38618 "EHLO Chamillionaire.breakpoint.cc" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751689Ab3EUM2s (ORCPT ); Tue, 21 May 2013 08:28:48 -0400 Content-Disposition: inline Sender: netdev-owner@vger.kernel.org List-ID: 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?