|
@@ -673,7 +673,7 @@ static void free_pcppages_bulk(struct zone *zone, int count,
|
|
|
/* MIGRATE_MOVABLE list may include MIGRATE_RESERVEs */
|
|
|
__free_one_page(page, zone, 0, mt);
|
|
|
trace_mm_page_pcpu_drain(page, 0, mt);
|
|
|
- if (likely(get_pageblock_migratetype(page) != MIGRATE_ISOLATE)) {
|
|
|
+ if (likely(!is_migrate_isolate_page(page))) {
|
|
|
__mod_zone_page_state(zone, NR_FREE_PAGES, 1);
|
|
|
if (is_migrate_cma(mt))
|
|
|
__mod_zone_page_state(zone, NR_FREE_CMA_PAGES, 1);
|
|
@@ -691,7 +691,7 @@ static void free_one_page(struct zone *zone, struct page *page, int order,
|
|
|
zone->pages_scanned = 0;
|
|
|
|
|
|
__free_one_page(page, zone, order, migratetype);
|
|
|
- if (unlikely(migratetype != MIGRATE_ISOLATE))
|
|
|
+ if (unlikely(!is_migrate_isolate(migratetype)))
|
|
|
__mod_zone_freepage_state(zone, 1 << order, migratetype);
|
|
|
spin_unlock(&zone->lock);
|
|
|
}
|
|
@@ -923,7 +923,9 @@ static int fallbacks[MIGRATE_TYPES][4] = {
|
|
|
[MIGRATE_MOVABLE] = { MIGRATE_RECLAIMABLE, MIGRATE_UNMOVABLE, MIGRATE_RESERVE },
|
|
|
#endif
|
|
|
[MIGRATE_RESERVE] = { MIGRATE_RESERVE }, /* Never used */
|
|
|
+#ifdef CONFIG_MEMORY_ISOLATION
|
|
|
[MIGRATE_ISOLATE] = { MIGRATE_RESERVE }, /* Never used */
|
|
|
+#endif
|
|
|
};
|
|
|
|
|
|
/*
|
|
@@ -1149,7 +1151,7 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order,
|
|
|
list_add_tail(&page->lru, list);
|
|
|
if (IS_ENABLED(CONFIG_CMA)) {
|
|
|
mt = get_pageblock_migratetype(page);
|
|
|
- if (!is_migrate_cma(mt) && mt != MIGRATE_ISOLATE)
|
|
|
+ if (!is_migrate_cma(mt) && !is_migrate_isolate(mt))
|
|
|
mt = migratetype;
|
|
|
}
|
|
|
set_freepage_migratetype(page, mt);
|
|
@@ -1333,7 +1335,7 @@ void free_hot_cold_page(struct page *page, int cold)
|
|
|
* excessively into the page allocator
|
|
|
*/
|
|
|
if (migratetype >= MIGRATE_PCPTYPES) {
|
|
|
- if (unlikely(migratetype == MIGRATE_ISOLATE)) {
|
|
|
+ if (unlikely(is_migrate_isolate(migratetype))) {
|
|
|
free_one_page(zone, page, 0, migratetype);
|
|
|
goto out;
|
|
|
}
|
|
@@ -1407,7 +1409,7 @@ static int __isolate_free_page(struct page *page, unsigned int order)
|
|
|
zone = page_zone(page);
|
|
|
mt = get_pageblock_migratetype(page);
|
|
|
|
|
|
- if (mt != MIGRATE_ISOLATE) {
|
|
|
+ if (!is_migrate_isolate(mt)) {
|
|
|
/* Obey watermarks as if the page was being allocated */
|
|
|
watermark = low_wmark_pages(zone) + (1 << order);
|
|
|
if (!zone_watermark_ok(zone, 0, watermark, 0, 0))
|
|
@@ -1426,7 +1428,7 @@ static int __isolate_free_page(struct page *page, unsigned int order)
|
|
|
struct page *endpage = page + (1 << order) - 1;
|
|
|
for (; page < endpage; page += pageblock_nr_pages) {
|
|
|
int mt = get_pageblock_migratetype(page);
|
|
|
- if (mt != MIGRATE_ISOLATE && !is_migrate_cma(mt))
|
|
|
+ if (!is_migrate_isolate(mt) && !is_migrate_cma(mt))
|
|
|
set_pageblock_migratetype(page,
|
|
|
MIGRATE_MOVABLE);
|
|
|
}
|
|
@@ -2904,7 +2906,9 @@ static void show_migration_types(unsigned char type)
|
|
|
#ifdef CONFIG_CMA
|
|
|
[MIGRATE_CMA] = 'C',
|
|
|
#endif
|
|
|
+#ifdef CONFIG_MEMORY_ISOLATION
|
|
|
[MIGRATE_ISOLATE] = 'I',
|
|
|
+#endif
|
|
|
};
|
|
|
char tmp[MIGRATE_TYPES + 1];
|
|
|
char *p = tmp;
|