From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757427Ab1LNPlj (ORCPT ); Wed, 14 Dec 2011 10:41:39 -0500 Received: from cantor2.suse.de ([195.135.220.15]:40407 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756953Ab1LNPlh (ORCPT ); Wed, 14 Dec 2011 10:41:37 -0500 From: Mel Gorman To: Andrew Morton Cc: Andrea Arcangeli , Minchan Kim , Dave Jones , Jan Kara , Andy Isaacson , Johannes Weiner , Mel Gorman , Rik van Riel , Nai Xia , Linux-MM , LKML Subject: [PATCH 01/11] mm: compaction: Allow compaction to isolate dirty pages Date: Wed, 14 Dec 2011 15:41:23 +0000 Message-Id: <1323877293-15401-2-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1323877293-15401-1-git-send-email-mgorman@suse.de> References: <1323877293-15401-1-git-send-email-mgorman@suse.de> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit [39deaf85: mm: compaction: make isolate_lru_page() filter-aware] noted that compaction does not migrate dirty or writeback pages and that is was meaningless to pick the page and re-add it to the LRU list. What was missed during review is that asynchronous migration moves dirty pages if their ->migratepage callback is migrate_page() because these can be moved without blocking. This potentially impacted hugepage allocation success rates by a factor depending on how many dirty pages are in the system. This patch partially reverts 39deaf85 to allow migration to isolate dirty pages again. This increases how much compaction disrupts the LRU but that is addressed later in the series. Signed-off-by: Mel Gorman Reviewed-by: Andrea Arcangeli Reviewed-by: Rik van Riel Reviewed-by: Minchan Kim --- mm/compaction.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/mm/compaction.c b/mm/compaction.c index 899d956..237560e 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -349,9 +349,6 @@ static isolate_migrate_t isolate_migratepages(struct zone *zone, continue; } - if (!cc->sync) - mode |= ISOLATE_CLEAN; - /* Try isolate the page */ if (__isolate_lru_page(page, mode, 0) != 0) continue; -- 1.7.3.4