Messages in this thread | | | Date | Tue, 27 Sep 2005 15:21:03 +0800 | From | Coywolf Qi Hunt <> | Subject | Re: [PATCH 7/9] try harder on large allocations |
| |
On 9/27/05, Joel Schopp <jschopp@austin.ibm.com> wrote: > Fragmentation avoidance patches increase our chances of satisfying high order > allocations. So this patch takes more than one iteration at trying to fulfill > those allocations because unlike before the extra iterations are often useful. > > Signed-off-by: Mel Gorman <mel@csn.ul.ie> > Signed-off-by: Joel Schopp <jschopp@austin.ibm.com> > > > Index: 2.6.13-joel2/mm/page_alloc.c > =================================================================== > --- 2.6.13-joel2.orig/mm/page_alloc.c 2005-09-21 11:13:14.%N -0500 > +++ 2.6.13-joel2/mm/page_alloc.c 2005-09-21 11:14:49.%N -0500 > @@ -944,7 +944,8 @@ __alloc_pages(unsigned int __nocast gfp_ > int can_try_harder; > int did_some_progress; > int alloctype; > - > + int highorder_retry = 3; > + > alloctype = (gfp_mask & __GFP_RCLM_BITS); > might_sleep_if(wait); > > @@ -1090,7 +1091,14 @@ rebalance: > goto got_pg; > } > > - out_of_memory(gfp_mask, order); > + if (order < MAX_ORDER/2) out_of_memory(gfp_mask, order);
Shouldn't that be written in two lines?
> + /* > + * Due to low fragmentation efforts, we should try a little > + * harder to satisfy high order allocations > + */ > + if (order >= MAX_ORDER/2 && --highorder_retry > 0) > + goto rebalance; > + > goto restart; > }
-- Coywolf Qi Hunt http://sosdg.org/~coywolf/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |