Re: __alloc_pages: 0-order allocation failed still in -pre12

Andrea Arcangeli
2001-09-19T22:45:39Z

On Wed, Sep 19, 2001 at 03:34:41PM -0700, Shane Wegner wrote:
> Hi,
>
> I'm getting the same thing here. At least it looks similar
> though I'm not sure what's causing it. Dual PIII 850, 1gb
^^^ perfect
> ram, 300mb swap.
>
> __alloc_pages: 0-order allocation failed (gfp=0x20/0) from
> c012e052
> __alloc_pages: 0-order allocation failed (gfp=0x20/0) from
> c012e052
> __alloc_pages: 0-order allocation failed (gfp=0x20/0) from
> c012e052

yes, please try this fix and let me know if it helps:

--- 2.4.10pre11aa1/mm/page_alloc.c.~1~ Tue Sep 18 15:39:50 2001
+++ 2.4.10pre11aa1/mm/page_alloc.c Thu Sep 20 00:36:11 2001
@@ -369,6 +369,7 @@
return NULL;
}

+ rebalance:
page = balance_classzone(classzone, gfp_mask, order, &freed);
if (page)
return page;
@@ -380,10 +381,13 @@
if (!z)
break;

- page = rmqueue(z, order);
- if (page)
- return page;
+ if (zone_free_pages(z, order) > z->pages_min) {
+ page = rmqueue(z, order);
+ if (page)
+ return page;
+ }
}
+ goto rebalance;
} else {
/*
* Check that no other task is been killed meanwhile,

Andrea