Hi Dave:

I just got this when rekeying my VPN (2.6.21.1):

events/0: page allocation failure. order:7, mode:0xd0
 [<c0146235>] __alloc_pages+0x1e5/0x2e0
 [<c0146356>] __get_free_pages+0x26/0x50
 [<c02a01ef>] xfrm_hash_alloc+0x2f/0x80
 [<c029a947>] xfrm_bydst_resize+0x37/0xc0
 [<c029aa70>] xfrm_hash_resize+0x0/0x80
 [<c029aae7>] xfrm_hash_resize+0x77/0x80
 [<c012a8ea>] run_workqueue+0x8a/0x190
 [<c012ab17>] worker_thread+0x127/0x160
 [<c0117490>] default_wake_function+0x0/0x10
 [<c01174d7>] __wake_up_common+0x37/0x70
 [<c0117490>] default_wake_function+0x0/0x10
 [<c012a9f0>] worker_thread+0x0/0x160
 [<c012e044>] kthread+0xb4/0xc0
 [<c012df90>] kthread+0x0/0xc0
 [<c0105287>] kernel_thread_helper+0x7/0x10
 =======================

Isn't an order-7 allocation (half a meg) a bit over-the-top for that hash,
especially since I've got a grand total of 4 SAs :)

Anyway, we shouldn't warn about these allocations since they're expected
to fail after the box has been up for a while.  Also, should we try
vmalloc when it does fail?

[IPSEC]: Don't warn if high-order hash resize fails

Multi-page allocations are always likely to fail.  Since such failures
are expected and non-critical in xfrm_hash_alloc, we shouldn't warn about
them.

Signed-off-by: Herbert Xu <[EMAIL PROTECTED]>

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
diff --git a/net/xfrm/xfrm_hash.c b/net/xfrm/xfrm_hash.c
index 37643bb..55ab579 100644
--- a/net/xfrm/xfrm_hash.c
+++ b/net/xfrm/xfrm_hash.c
@@ -22,7 +22,8 @@ struct hlist_head *xfrm_hash_alloc(unsigned int sz)
                n = __vmalloc(sz, GFP_KERNEL, PAGE_KERNEL);
        else
                n = (struct hlist_head *)
-                       __get_free_pages(GFP_KERNEL, get_order(sz));
+                       __get_free_pages(GFP_KERNEL | __GFP_NOWARN,
+                                        get_order(sz));
 
        if (n)
                memset(n, 0, sz);
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to