All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 01/10] mm, compaction: do not recheck suitable_migration_target under lock
@ 2014-06-09  9:26 ` Vlastimil Babka
  0 siblings, 0 replies; 88+ messages in thread
From: Vlastimil Babka @ 2014-06-09  9:26 UTC (permalink / raw)
  To: David Rientjes, linux-mm
  Cc: linux-kernel, Andrew Morton, Greg Thelen, Vlastimil Babka,
	Minchan Kim, Mel Gorman, Joonsoo Kim, Michal Nazarewicz,
	Naoya Horiguchi, Christoph Lameter, Rik van Riel

isolate_freepages_block() rechecks if the pageblock is suitable to be a target
for migration after it has taken the zone->lock. However, the check has been
optimized to occur only once per pageblock, and compact_checklock_irqsave()
might be dropping and reacquiring lock, which means somebody else might have
changed the pageblock's migratetype meanwhile.

Furthermore, nothing prevents the migratetype to change right after
isolate_freepages_block() has finished isolating. Given how imperfect this is,
it's simpler to just rely on the check done in isolate_freepages() without
lock, and not pretend that the recheck under lock guarantees anything. It is
just a heuristic after all.

Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Michal Nazarewicz <mina86@mina86.com>
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: David Rientjes <rientjes@google.com>
---
I suggest folding mm-compactionc-isolate_freepages_block-small-tuneup.patch into this

 mm/compaction.c | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/mm/compaction.c b/mm/compaction.c
index 5175019..b73b182 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -276,7 +276,6 @@ static unsigned long isolate_freepages_block(struct compact_control *cc,
 	struct page *cursor, *valid_page = NULL;
 	unsigned long flags;
 	bool locked = false;
-	bool checked_pageblock = false;
 
 	cursor = pfn_to_page(blockpfn);
 
@@ -307,18 +306,6 @@ static unsigned long isolate_freepages_block(struct compact_control *cc,
 		if (!locked)
 			break;
 
-		/* Recheck this is a suitable migration target under lock */
-		if (!strict && !checked_pageblock) {
-			/*
-			 * We need to check suitability of pageblock only once
-			 * and this isolate_freepages_block() is called with
-			 * pageblock range, so just check once is sufficient.
-			 */
-			checked_pageblock = true;
-			if (!suitable_migration_target(page))
-				break;
-		}
-
 		/* Recheck this is a buddy page under lock */
 		if (!PageBuddy(page))
 			goto isolate_fail;
-- 
1.8.4.5


^ permalink raw reply related	[flat|nested] 88+ messages in thread

end of thread, other threads:[~2014-06-20 11:47 UTC | newest]

Thread overview: 88+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-09  9:26 [PATCH 01/10] mm, compaction: do not recheck suitable_migration_target under lock Vlastimil Babka
2014-06-09  9:26 ` Vlastimil Babka
2014-06-09  9:26 ` [PATCH 02/10] mm, compaction: report compaction as contended only due to lock contention Vlastimil Babka
2014-06-09  9:26   ` Vlastimil Babka
2014-06-09 23:50   ` David Rientjes
2014-06-09 23:50     ` David Rientjes
2014-06-10  7:11     ` Vlastimil Babka
2014-06-10  7:11       ` Vlastimil Babka
2014-06-10 23:40       ` David Rientjes
2014-06-10 23:40         ` David Rientjes
2014-06-11  1:10   ` Minchan Kim
2014-06-11  1:10     ` Minchan Kim
2014-06-11 12:22     ` Vlastimil Babka
2014-06-11 12:22       ` Vlastimil Babka
2014-06-11 23:49       ` Minchan Kim
2014-06-11 23:49         ` Minchan Kim
2014-06-12 14:02         ` Vlastimil Babka
2014-06-12 14:02           ` Vlastimil Babka
2014-06-13  2:40           ` Minchan Kim
2014-06-13  2:40             ` Minchan Kim
2014-06-20 11:47             ` Vlastimil Babka
2014-06-20 11:47               ` Vlastimil Babka
2014-06-09  9:26 ` [PATCH 03/10] mm, compaction: periodically drop lock and restore IRQs in scanners Vlastimil Babka
2014-06-09  9:26   ` Vlastimil Babka
2014-06-09 23:58   ` David Rientjes
2014-06-09 23:58     ` David Rientjes
2014-06-10  7:15     ` Vlastimil Babka
2014-06-10  7:15       ` Vlastimil Babka
2014-06-10 23:41       ` David Rientjes
2014-06-10 23:41         ` David Rientjes
2014-06-11  1:32   ` Minchan Kim
2014-06-11  1:32     ` Minchan Kim
2014-06-11 11:24     ` Vlastimil Babka
2014-06-11 11:24       ` Vlastimil Babka
2014-06-09  9:26 ` [PATCH 04/10] mm, compaction: skip rechecks when lock was already held Vlastimil Babka
2014-06-09  9:26   ` Vlastimil Babka
2014-06-10  0:00   ` David Rientjes
2014-06-10  0:00     ` David Rientjes
2014-06-11  1:50   ` Minchan Kim
2014-06-11  1:50     ` Minchan Kim
2014-06-09  9:26 ` [PATCH 05/10] mm, compaction: remember position within pageblock in free pages scanner Vlastimil Babka
2014-06-09  9:26   ` Vlastimil Babka
2014-06-10  0:07   ` David Rientjes
2014-06-10  0:07     ` David Rientjes
2014-06-11  2:12   ` Minchan Kim
2014-06-11  2:12     ` Minchan Kim
2014-06-11  8:16     ` Joonsoo Kim
2014-06-11  8:16       ` Joonsoo Kim
2014-06-11 11:41       ` Vlastimil Babka
2014-06-11 11:41         ` Vlastimil Babka
2014-06-11 11:33     ` Vlastimil Babka
2014-06-11 11:33       ` Vlastimil Babka
2014-06-11  3:29   ` Zhang Yanfei
2014-06-11  3:29     ` Zhang Yanfei
2014-06-09  9:26 ` [PATCH 06/10] mm, compaction: skip buddy pages by their order in the migrate scanner Vlastimil Babka
2014-06-09  9:26   ` Vlastimil Babka
2014-06-10  0:08   ` David Rientjes
2014-06-10  0:08     ` David Rientjes
2014-06-09  9:26 ` [PATCH 07/10] mm: rename allocflags_to_migratetype for clarity Vlastimil Babka
2014-06-09  9:26   ` Vlastimil Babka
2014-06-11  2:41   ` Minchan Kim
2014-06-11  2:41     ` Minchan Kim
2014-06-11  3:38     ` Zhang Yanfei
2014-06-11  3:38       ` Zhang Yanfei
2014-06-09  9:26 ` [PATCH 08/10] mm, compaction: pass gfp mask to compact_control Vlastimil Babka
2014-06-09  9:26   ` Vlastimil Babka
2014-06-11  2:48   ` Minchan Kim
2014-06-11  2:48     ` Minchan Kim
2014-06-11 11:46     ` Vlastimil Babka
2014-06-11 11:46       ` Vlastimil Babka
2014-06-12  0:24       ` David Rientjes
2014-06-12  0:24         ` David Rientjes
2014-06-09  9:26 ` [RFC PATCH 09/10] mm, compaction: try to capture the just-created high-order freepage Vlastimil Babka
2014-06-09  9:26   ` Vlastimil Babka
2014-06-11 14:56   ` Vlastimil Babka
2014-06-11 14:56     ` Vlastimil Babka
2014-06-12  2:20     ` Minchan Kim
2014-06-12  2:20       ` Minchan Kim
2014-06-12  8:21       ` Vlastimil Babka
2014-06-12  8:21         ` Vlastimil Babka
2014-06-09  9:26 ` [RFC PATCH 10/10] mm, compaction: do not migrate pages when that cannot satisfy page fault allocation Vlastimil Babka
2014-06-09  9:26   ` Vlastimil Babka
2014-06-09 23:41 ` [PATCH 01/10] mm, compaction: do not recheck suitable_migration_target under lock David Rientjes
2014-06-09 23:41   ` David Rientjes
2014-06-11  0:33 ` Minchan Kim
2014-06-11  0:33   ` Minchan Kim
2014-06-11  2:45 ` Zhang Yanfei
2014-06-11  2:45   ` Zhang Yanfei

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.