[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: __alloc_pages: 2-order allocation failed



Apr 29 08:45:34 psychology kernel: __alloc_pages: 2-order allocation failed (gfp=0x20/0)
Apr 29 08:45:34 psychology kernel: __alloc_pages: task(spamc) pid(25917) caller(000000000046edc0)
Apr 29 08:45:34 psychology kernel: DEBUG: __get_free_pages() order 2 failed called by 000000000046aaa8
Apr 29 08:45:34 psychology kernel: __alloc_pages: 2-order allocation failed (gfp=0x20/0)
Apr 29 08:45:34 psychology kernel: __alloc_pages: task(spamc) pid(25917) caller(000000000046edc0)
Apr 29 08:45:34 psychology kernel: DEBUG: __get_free_pages() order 2 failed called by 000000000046aaa8
Apr 29 08:45:34 psychology kernel: __alloc_pages: 2-order allocation failed (gfp=0x20/0)
Apr 29 08:45:34 psychology kernel: __alloc_pages: task(spamc) pid(25917) caller(000000000046edc0)
Apr 29 08:45:34 psychology kernel: DEBUG: __get_free_pages() order 2 failed called by 000000000046aaa8
Apr 29 08:45:34 psychology kernel: __alloc_pages: 2-order allocation failed (gfp=0x20/0)
Apr 29 08:45:34 psychology kernel: __alloc_pages: task(swapper) pid(0) caller(000000000046edc0)
Apr 29 08:45:34 psychology kernel: DEBUG: __get_free_pages() order 2 failed called by 000000000046aaa8
Apr 29 08:45:35 psychology kernel: __alloc_pages: 2-order allocation failed (gfp=0x20/0)
Apr 29 08:45:35 psychology kernel: __alloc_pages: task(swapper) pid(0) caller(000000000046edc0)
Apr 29 08:45:35 psychology kernel: DEBUG: __get_free_pages() order 2 failed called by 000000000046aaa8


According to System.map:
000000000046a9c0 t kmem_cache_grow
000000000046ad00 T kmem_cache_alloc_batch

Current memory usage:
             total       used       free     shared    buffers     cached
Mem:       4140064    4097720      42344          0     423304     2386400
-/+ buffers/cache:    1288016    2852048
Swap:      2498880      25528    2473352


On Tue, Apr 19, 2005 at 12:45:04PM -0700, David S. Miller said:
> On Tue, 19 Apr 2005 15:40:27 -0400
> Mike Edwards <sauron-debian-sparc@psychology.rutgers.edu> wrote:
> 
> > Erk.  Can you give me a patch for that, or, at the very least, tell me
> > what to modify?  My C is rusty.
> 
> Make mm/page_alloc.c:__get_free_pages() do something like this:
> 
> 	page = alloc_pages(gfp_mask, order);
> 	if (!page) {
> 		if (order > 0)
> 			printk("DEBUG: __get_free_pages() order %d failed "
> 			       "called by %p\n",
> 			       order, __builtin_return_address(0));
> 		return 0;
> 	}
> 
> > As it is, I'm going to have to reboot this box in any case.  Can you
> > think of a reason why an SMP kernel on a dual processor E450 only
> > started one processor at boot time?  (Yes, openprom sees both
> > processors, and the old kernel had no problem with them, either).
> 
> Make sure CONFIG_NR_CPUS is set large enough.
> 
> It must be at least as large as the largest "physical cpu number"
> of all the cpus in your machine.  The physical numbering is not
> necessarily linear, it can be "0 2 4 6" or similar for a 4-cpu
> machine, for example.

-- 
Mike Edwards <sauron-debian-sparc@psychology.rutgers.edu>
System Administrator
Psychology Department, Rutgers University, Newark campus



Reply to: