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: