Re: 2.6.9 page allocation failure. order:0, mode:0x20

From: Michael Clark
Date: Thu Oct 28 2004 - 09:14:55 EST


On 10/28/04 17:40, Andrew Morton wrote:
Michael Clark <michael@xxxxxxxxxxxxxxxx> wrote:
cc1: page allocation failure. order:0, mode:0x20
[<c013ba43>] __alloc_pages+0x1c3/0x390
[<c013bc35>] __get_free_pages+0x25/0x40
[<c013f283>] kmem_getpages+0x23/0xd0
[<c013ffcf>] cache_grow+0xaf/0x160
[<c0140202>] cache_alloc_refill+0x182/0x230
[<c0140499>] kmem_cache_alloc+0x49/0x50
[<c01c07df>] radix_tree_node_alloc+0x1f/0x70
[<c01c0aad>] radix_tree_insert+0xed/0x110
[<c014d841>] __add_to_swap_cache+0x71/0x100
[<c014da5f>] add_to_swap+0x5f/0xc0
[<c0142d32>] shrink_list+0x442/0x480
[<c014bf7c>] page_referenced_anon+0x7c/0x90
[<c01419c8>] __pagevec_release+0x28/0x40


I'm confused. 2.6.9 uses __GFP_NOWARN in add_to_swap() so the messages
should be suppressed. Are you sure you're using 2.6.9?

Ya is 2.6.9, has uml-skas patch also but that doesn't touch swap_state.c

Ah, I see I think, radix_tree_node_alloc first calls kmem_cache_alloc
with root->gfp_mask and only if this fails dips into the preloaded
percpu node stash. Perhaps root->gfp_mask has !__GFP_NOWARN

Shouldn't it use the preloaded nodes that have been reserved anyway.

~mc
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/