On Fri, May 06, 2011 at 07:32:46PM +0800, Figo.zhang wrote: > > in isolate_migratepages() have check page in LRU twice, the next one > at _isolate_lru_page(). > > Signed-off-by: Figo.zhang <figo1802@xxxxxxxxx> Not checking for PageLRU means that PageTransHuge() gets called for each page. While the scanner is active and the lock released, a transparent hugepage can be created and potentially we test PageTransHuge() on a tail page. This will trigger a BUG if CONFIG_DEBUG_VM is set. Nacked-by: Mel Gorman <mel@xxxxxxxxx> > > mm/compaction.c | 3 --- > 1 files changed, 0 insertions(+), 3 deletions(-) > > diff --git a/mm/compaction.c b/mm/compaction.c > index 021a296..ac605cb 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -321,9 +321,6 @@ static unsigned long isolate_migratepages(struct zone *zone, > continue; > } > > - if (!PageLRU(page)) > - continue; > - > /* > * PageLRU is set, and lru_lock excludes isolation, > * splitting and collapsing (collapsing has already > > -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>