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
WARNING: multiple messages have this Message-ID (diff)
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>
next prev parent reply other threads:[~2010-08-24 18:03 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-22 6:13 2.6.34.1 page allocation failure Stan Hoeppner
2010-08-22 6:47 ` Mikael Abrahamsson
2010-08-22 6:47 ` Mikael Abrahamsson
2010-08-22 19:51 ` Pekka Enberg
2010-08-22 19:51 ` Pekka Enberg
2010-08-22 22:40 ` Christoph Lameter
2010-08-22 22:40 ` Christoph Lameter
2010-08-23 9:37 ` Pekka Enberg
2010-08-23 9:37 ` Pekka Enberg
2010-08-23 22:35 ` Stan Hoeppner
2010-08-23 22:35 ` Stan Hoeppner
2010-08-24 17:13 ` Christoph Lameter
2010-08-24 17:13 ` Christoph Lameter
2010-08-24 18:03 ` Pekka Enberg [this message]
2010-08-24 18:03 ` Pekka Enberg
2010-08-24 19:08 ` Stan Hoeppner
2010-08-24 19:08 ` Stan Hoeppner
2010-08-24 19:21 ` Mikael Abrahamsson
2010-08-24 19:21 ` Mikael Abrahamsson
2010-08-29 10:49 ` Pekka Enberg
2010-08-29 10:49 ` Pekka Enberg
2010-08-29 12:38 ` Mikael Abrahamsson
2010-08-29 12:38 ` Mikael Abrahamsson
2010-08-29 13:17 ` Pekka Enberg
2010-08-29 13:17 ` Pekka Enberg
2010-08-29 15:37 ` Mikael Abrahamsson
2010-08-29 15:37 ` Mikael Abrahamsson
2010-08-31 20:28 ` 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.