Re: [PATCH 11/25] Calculate the cold parameter for allocation only once

Mel Gorman
2009-04-21T10:08:17Z

On Tue, Apr 21, 2009 at 06:07:24PM +0900, KOSAKI Motohiro wrote:
> > GFP mask is checked for __GFP_COLD has been specified when deciding which
> > end of the PCP lists to use. However, it is happening multiple times per
> > allocation, at least once per zone traversed. Calculate it once.
> >
> > Signed-off-by: Mel Gorman <mel@csn.ul.ie>
> > ---
> > mm/page_alloc.c | 35 ++++++++++++++++++-----------------
> > 1 files changed, 18 insertions(+), 17 deletions(-)
> >
> > diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> > index 1506cd5..51e1ded 100644
> > --- a/mm/page_alloc.c
> > +++ b/mm/page_alloc.c
> > @@ -1066,11 +1066,10 @@ void split_page(struct page *page, unsigned int order)
> > */
> > static struct page *buffered_rmqueue(struct zone *preferred_zone,
> > struct zone *zone, int order, gfp_t gfp_flags,
> > - int migratetype)
> > + int migratetype, int cold)
> > {
> > unsigned long flags;
> > struct page *page;
> > - int cold = !!(gfp_flags & __GFP_COLD);
> > int cpu;
>
> Honestly, I don't like this ;-)
>
> It seems benefit is too small. It don't win against code ugliness, I think.
>

Ok, I'll drop it for now and then generate figures for it at a later
time. The intention is to have this first set relatively
uncontroversial.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab