linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Pekka Enberg <penberg@kernel.org>
To: Stan Hoeppner <stan@hardwarefreak.com>
Cc: Christoph Lameter <cl@linux.com>,
	Mikael Abrahamsson <swmike@swm.pp.se>,
	Linux Kernel List <linux-kernel@vger.kernel.org>,
	linux-mm@kvack.org, Mel Gorman <mel@csn.ul.ie>,
	Linux Netdev List <netdev@vger.kernel.org>
Subject: Re: 2.6.34.1 page allocation failure
Date: Tue, 24 Aug 2010 21:03:38 +0300	[thread overview]
Message-ID: <4C74097A.5020504@kernel.org> (raw)
In-Reply-To: <4C72F7C6.3020109@hardwarefreak.com>

  [ I'm CC'ing netdev. ]

On 24.8.2010 1.35, Stan Hoeppner wrote:
> Pekka Enberg put forth on 8/23/2010 4:37 AM:
>>   On 8/23/10 1:40 AM, Christoph Lameter wrote:
>>> On Sun, 22 Aug 2010, Pekka Enberg wrote:
>>>
>>>> In Stan's case, it's a order-1 GFP_ATOMIC allocation but there are
>>>> only order-0 pages available. Mel, any recent page allocator fixes in
>>>> 2.6.35 or 2.6.36-rc1 that Stan/Mikael should test?
>>> This is the TCP slab? Best fix would be in the page allocator. However,
>>> in this particular case the slub allocator would be able to fall back to
>>> an order 0 allocation and still satisfy the request.
>> Looking at the stack trace of the oops, I think Stan has CONFIG_SLAB
>> which doesn't have order-0 fallback.
> That is correct.  The menuconfig help screen led me to believe the SLAB
> allocator was the "safe" choice:
>
> "CONFIG_SLAB:
> The regular slab allocator that is established and known to work well in
> all environments"
>
> Should I be using SLUB instead?  Any downsides to SLUB on an old and
> slow (500 MHz) single core dual CPU box with<512MB RAM?
I don't think the problem here is SLAB so it shouldn't matter which one 
you use. You might not see the problems with SLUB, though, because it 
falls back to 0-order allocations.
> Also, what is the impact of these oopses?  Despite the entries in dmesg,
> the system "seems" to be running ok.  Or is this simply the calm before
> the impending storm?
The page allocation failure in question is this:

kswapd0: page allocation failure. order:1, mode:0x20
Pid: 139, comm: kswapd0 Not tainted 2.6.34.1 #1
Call Trace:
  [<c104b6b3>] ? __alloc_pages_nodemask+0x448/0x48a
  [<c1062ffb>] ? cache_alloc_refill+0x22f/0x422
  [<c11a9a73>] ? tcp_v4_send_check+0x6e/0xa4
  [<c10632c3>] ? kmem_cache_alloc+0x41/0x6a
  [<c11773a5>] ? sk_prot_alloc+0x19/0x55
  [<c117744b>] ? sk_clone+0x16/0x1cc
  [<c119a71d>] ? inet_csk_clone+0xf/0x80
  [<c11ac0e3>] ? tcp_create_openreq_child+0x1a/0x3c8
  [<c11aaf0a>] ? tcp_v4_syn_recv_sock+0x4b/0x151
  [<c11abf9d>] ? tcp_check_req+0x209/0x335
  [<c11aa892>] ? tcp_v4_do_rcv+0x8d/0x14d
  [<c11aacd5>] ? tcp_v4_rcv+0x383/0x56d
  [<c1193ba4>] ? ip_local_deliver+0x76/0xc0
  [<c1193b10>] ? ip_rcv+0x3dc/0x3fa
  [<c103655e>] ? ktime_get_real+0xf/0x2b
  [<c117f8d3>] ? netif_receive_skb+0x219/0x234
  [<c115ff46>] ? e100_poll+0x1d0/0x47e
  [<c117fa98>] ? net_rx_action+0x58/0xf8
  [<c102539c>] ? __do_softirq+0x78/0xe5
  [<c102542c>] ? do_softirq+0x23/0x27
  [<c1003955>] ? do_IRQ+0x7d/0x8e
  [<c1002aa9>] ? common_interrupt+0x29/0x30
  [<c1062870>] ? kmem_cache_free+0xbd/0xc5
  [<c10fa7d1>] ? __xfs_inode_set_reclaim_tag+0x29/0x2f
  [<c1075215>] ? destroy_inode+0x1c/0x2b
  [<c10752ce>] ? dispose_list+0xaa/0xd0
  [<c107548c>] ? shrink_icache_memory+0x198/0x1c5
  [<c104f76b>] ? shrink_slab+0xda/0x12f
  [<c104fc28>] ? kswapd+0x468/0x63b
  [<c104dca3>] ? isolate_pages_global+0x0/0x1bc
  [<c10304d6>] ? autoremove_wake_function+0x0/0x2d
  [<c1018faf>] ? complete+0x28/0x36
  [<c104f7c0>] ? kswapd+0x0/0x63b
  [<c10301cd>] ? kthread+0x61/0x66
  [<c103016c>] ? kthread+0x0/0x66
  [<c1002ab6>] ? kernel_thread_helper+0x6/0x10

It looks to me as if tcp_create_openreq_child() is able to cope with the 
situation so the warning could be harmless. If that's the case, we 
should probably stick a __GFP_NOWARN there.

                 Pekka

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2010-08-24 18:02 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4C70BFF3.8030507@hardwarefreak.com>
2010-08-22  6:47 ` Mikael Abrahamsson
2010-08-22 19:51   ` Pekka Enberg
2010-08-22 22:40     ` Christoph Lameter
2010-08-23  9:37       ` Pekka Enberg
2010-08-23 22:35         ` Stan Hoeppner
2010-08-24 17:13           ` Christoph Lameter
2010-08-24 18:03           ` Pekka Enberg [this message]
2010-08-24 19:08             ` Stan Hoeppner
2010-08-24 19:21             ` Mikael Abrahamsson
2010-08-29 10:49               ` Pekka Enberg
2010-08-29 12:38                 ` Mikael Abrahamsson
2010-08-29 13:17                   ` Pekka Enberg
2010-08-29 15:37                     ` Mikael Abrahamsson
2010-08-31 20:28                       ` Mikael Abrahamsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C74097A.5020504@kernel.org \
    --to=penberg@kernel.org \
    --cc=cl@linux.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mel@csn.ul.ie \
    --cc=netdev@vger.kernel.org \
    --cc=stan@hardwarefreak.com \
    --cc=swmike@swm.pp.se \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox