[merged] mm-page_alloc-fix-potential-false-positive-in-__zone_watermark_ok.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     Subject: mm, page_alloc: fix potential false positive in __zone_watermark_ok
has been removed from the -mm tree.  Its filename was
     mm-page_alloc-fix-potential-false-positive-in-__zone_watermark_ok.patch

This patch was dropped because it was merged into mainline or a subsystem tree

------------------------------------------------------
From: Vlastimil Babka <vbabka@xxxxxxx>
Subject: mm, page_alloc: fix potential false positive in __zone_watermark_ok

Since 97a16fc82a7c ("mm, page_alloc: only enforce watermarks for order-0
allocations"), __zone_watermark_ok() check for high-order allocations will
shortcut per-migratetype free list checks for ALLOC_HARDER allocations,
and return true as long as there's free page of any migratetype.  The
intention is that ALLOC_HARDER can allocate from MIGRATE_HIGHATOMIC free
lists, while normal allocations can't.

However, as a side effect, the watermark check will then also return true
when there are pages only on the MIGRATE_ISOLATE list, or (prior to CMA
conversion to ZONE_MOVABLE) on the MIGRATE_CMA list.  Since the allocation
cannot actually obtain isolated pages, and might not be able to obtain CMA
pages, this can result in a false positive.

The condition should be rare and perhaps the outcome is not a fatal one. 
Still, it's better if the watermark check is correct.  There also
shouldn't be a performance tradeoff here.

Link: http://lkml.kernel.org/r/20171102125001.23708-1-vbabka@xxxxxxx
Fixes: 97a16fc82a7c ("mm, page_alloc: only enforce watermarks for order-0 allocations")
Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Acked-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 mm/page_alloc.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff -puN mm/page_alloc.c~mm-page_alloc-fix-potential-false-positive-in-__zone_watermark_ok mm/page_alloc.c
--- a/mm/page_alloc.c~mm-page_alloc-fix-potential-false-positive-in-__zone_watermark_ok
+++ a/mm/page_alloc.c
@@ -3041,9 +3041,6 @@ bool __zone_watermark_ok(struct zone *z,
 		if (!area->nr_free)
 			continue;
 
-		if (alloc_harder)
-			return true;
-
 		for (mt = 0; mt < MIGRATE_PCPTYPES; mt++) {
 			if (!list_empty(&area->free_list[mt]))
 				return true;
@@ -3055,6 +3052,9 @@ bool __zone_watermark_ok(struct zone *z,
 			return true;
 		}
 #endif
+		if (alloc_harder &&
+			!list_empty(&area->free_list[MIGRATE_HIGHATOMIC]))
+			return true;
 	}
 	return false;
 }
_

Patches currently in -mm which might be from vbabka@xxxxxxx are

mm-compaction-extend-pageblock_skip_persistent-to-all-compound-pages.patch
mm-compaction-split-off-flag-for-not-updating-skip-hints.patch
mm-compaction-remove-unneeded-pageblock_skip_persistent-checks.patch

--
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux