Re: [PATCH]mm/compation.c: checking page in lru twice

From: Mel Gorman
Date: Fri May 06 2011 - 09:10:04 EST


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 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/