Re: [PATCH 3/3] mm,vmscan: Reclaim order-0 and compact instead oflumpy reclaim when under light pressure
From: Mel Gorman
Date: Mon Nov 15 2010 - 04:23:16 EST
On Sun, Nov 14, 2010 at 03:02:03PM +0900, KOSAKI Motohiro wrote:
> > On Thu, Nov 11, 2010 at 07:07:04PM +0000, Mel Gorman wrote:
> > > + if (COMPACTION_BUILD)
> > > + sc->lumpy_reclaim_mode = LUMPY_MODE_COMPACTION;
> > > + else
> > > + sc->lumpy_reclaim_mode = LUMPY_MODE_CONTIGRECLAIM;
> > >
> >
> > Gack, I posted the slightly wrong version. This version prevents lumpy
> > reclaim ever being used. The figures I posted were for a patch where
> > this condition looked like
> >
> > if (COMPACTION_BUILD && priority > DEF_PRIORITY - 2)
> > sc->lumpy_reclaim_mode = LUMPY_MODE_COMPACTION;
> > else
> > sc->lumpy_reclaim_mode = LUMPY_MODE_CONTIGRECLAIM;
>
> Can you please tell us your opinition which is better 1) automatically turn lumby on
> by priority (this approach) 2) introduce GFP_LUMPY (andrea proposed). I'm not
> sure which is better, then I'd like to hear both pros/cons concern.
>
That's a very good question!
The main "pro" of using lumpy reclaim is that it has been tested. It's known
to be very heavy and disrupt the system but it's also known to work. Lumpy
reclaim is also less suspectible to allocation races than compaction is
i.e. if memory is low, compaction requires that X number of pages be free
where as lumpy frees the pages it requires.
GFP_LUMPY is something else and is only partially related. Transparent Huge
Pages (THP) does not want to hit lumpy reclaim no matter what the circumstances
are - It is always better for THP to not use lumpy reclaim. It's debatable
whether it should even reclaim order-0 pages for compaction so even with
this series, THP might still introduce GFP_LUMPY.
Does this answer your question?
--
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/