Re: [Patch] New zone ZONE_EASY_RECLAIM take 4. (disable gfp_easy_reclaim bit)[5/8]

From: Mel Gorman
Date: Thu Jan 05 2006 - 06:22:11 EST


On (05/01/06 19:59), Yasunori Goto didst pronounce:
> > On (05/01/06 14:43), Yasunori Goto didst pronounce:
> > > >
> > > > > ===================================================================
> > > > > --- zone_reclaim.orig/fs/pipe.c 2005-12-16 18:36:20.000000000 +0900
> > > > > +++ zone_reclaim/fs/pipe.c 2005-12-16 19:15:35.000000000 +0900
> > > > > @@ -284,7 +284,7 @@ pipe_writev(struct file *filp, const str
> > > > > int error;
> > > > >
> > > > > if (!page) {
> > > > > - page = alloc_page(GFP_HIGHUSER);
> > > > > + page = alloc_page(GFP_HIGHUSER & ~__GFP_EASY_RECLAIM);
> > > > > if (unlikely(!page)) {
> > > > > ret = ret ? : -ENOMEM;
> > > > > break;
> > > >
> > > > That is a bit hard to understand. How about a new GFP_HIGHUSER_HARD or
> > > > somesuch define back in patch 1, then use it here?
> > >
> > > It looks better. Thanks for your idea.
> > >
> >
> > There are other places where GFP_HIGHUSER is used for pages that are not easily
> > reclaimed. It is easier clearer to add __GFP_EASY_RECLAIM at the places you
> > know pages are easily reclaimed rather than removing __GFP_EASY_RECLAIM from
> > awkward places.
>
> I thought that other pages can be migrated by Chlistoph-san's (and
> Kame-san's) patch.

Then the pages are not "easily reclaimed", they can just be moved by
some other mechanism.

> May I ask which page should be no EASY_RECLAIM?

Based on http://lxr.linux.no/ident?i=GFP_HIGHUSER, examples include HugeTLB
pages, pages allocated by the infiniband driver, pages allocated by the NFS
driver and inode pages.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/