mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
mm: rejig pageblock mask definitions
- Add a PAGEBLOCK_ prefix to the names to avoid polluting the "global namespace" too much. - This new prefix makes MIGRATETYPE_AND_ISO_MASK look pretty long. Well, that global mask only exists for quite a specific purpose, and is quite a weird thing to have a name for anyway. So drop it and take advantage of the newly-defined PAGEBLOCK_ISO_MASK. Link: https://lore.kernel.org/20260513-page_alloc-unmapped-prep-v1-3-dacdf5402be8@google.com Signed-off-by: Brendan Jackman <jackmanb@google.com> Reviewed-by: Vlastimil Babka (SUSE) <vbabka@kernel.org> Cc: Axel Rasmussen <axelrasmussen@google.com> Cc: Barry Song <baohua@kernel.org> Cc: David Hildenbrand <david@kernel.org> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Kairui Song <kasong@tencent.com> Cc: Len Brown <lenb@kernel.org> Cc: Liam R. Howlett <liam@infradead.org> Cc: Lorenzo Stoakes <ljs@kernel.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Mike Rapoport (Microsoft) <rppt@kernel.org> Cc: "Rafael J. Wysocki" <rafael@kernel.org> Cc: Shakeel Butt <shakeel.butt@linux.dev> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Wei Xu <weixugc@google.com> Cc: Yuanchu Xie <yuanchu@google.com> Cc: Zi Yan <ziy@nvidia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
23378be820
commit
3687c0fd67
|
|
@ -36,12 +36,12 @@ enum pageblock_bits {
|
|||
|
||||
#define NR_PAGEBLOCK_BITS (roundup_pow_of_two(__NR_PAGEBLOCK_BITS))
|
||||
|
||||
#define MIGRATETYPE_MASK (BIT(PB_migrate_0)|BIT(PB_migrate_1)|BIT(PB_migrate_2))
|
||||
#define PAGEBLOCK_MIGRATETYPE_MASK (BIT(PB_migrate_0)|BIT(PB_migrate_1)|BIT(PB_migrate_2))
|
||||
|
||||
#ifdef CONFIG_MEMORY_ISOLATION
|
||||
#define MIGRATETYPE_AND_ISO_MASK (MIGRATETYPE_MASK | BIT(PB_migrate_isolate))
|
||||
#define PAGEBLOCK_ISO_MASK BIT(PB_migrate_isolate)
|
||||
#else
|
||||
#define MIGRATETYPE_AND_ISO_MASK MIGRATETYPE_MASK
|
||||
#define PAGEBLOCK_ISO_MASK 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_HUGETLB_PAGE)
|
||||
|
|
|
|||
|
|
@ -364,7 +364,7 @@ get_pfnblock_bitmap_bitidx(const struct page *page, unsigned long pfn,
|
|||
#else
|
||||
BUILD_BUG_ON(NR_PAGEBLOCK_BITS != 4);
|
||||
#endif
|
||||
BUILD_BUG_ON(__MIGRATE_TYPE_END > MIGRATETYPE_MASK);
|
||||
BUILD_BUG_ON(__MIGRATE_TYPE_END > PAGEBLOCK_MIGRATETYPE_MASK);
|
||||
VM_BUG_ON_PAGE(!zone_spans_pfn(page_zone(page), pfn), page);
|
||||
|
||||
bitmap = get_pageblock_bitmap(page, pfn);
|
||||
|
|
@ -437,7 +437,7 @@ bool get_pfnblock_bit(const struct page *page, unsigned long pfn,
|
|||
__always_inline enum migratetype
|
||||
get_pfnblock_migratetype(const struct page *page, unsigned long pfn)
|
||||
{
|
||||
unsigned long mask = MIGRATETYPE_AND_ISO_MASK;
|
||||
unsigned long mask = PAGEBLOCK_MIGRATETYPE_MASK | PAGEBLOCK_ISO_MASK;
|
||||
unsigned long flags;
|
||||
|
||||
flags = __get_pfnblock_flags_mask(page, pfn, mask);
|
||||
|
|
@ -446,7 +446,7 @@ get_pfnblock_migratetype(const struct page *page, unsigned long pfn)
|
|||
if (flags & BIT(PB_migrate_isolate))
|
||||
return MIGRATE_ISOLATE;
|
||||
#endif
|
||||
return flags & MIGRATETYPE_MASK;
|
||||
return flags & PAGEBLOCK_MIGRATETYPE_MASK;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -534,11 +534,11 @@ static void set_pageblock_migratetype(struct page *page,
|
|||
}
|
||||
VM_WARN_ONCE(get_pageblock_isolate(page),
|
||||
"Use clear_pageblock_isolate() to unisolate pageblock");
|
||||
/* MIGRATETYPE_AND_ISO_MASK clears PB_migrate_isolate if it is set */
|
||||
/* PAGEBLOCK_ISO_MASK clears PB_migrate_isolate if it is set */
|
||||
#endif
|
||||
__set_pfnblock_flags_mask(page, page_to_pfn(page),
|
||||
(unsigned long)migratetype,
|
||||
MIGRATETYPE_AND_ISO_MASK);
|
||||
PAGEBLOCK_MIGRATETYPE_MASK | PAGEBLOCK_ISO_MASK);
|
||||
}
|
||||
|
||||
void __meminit init_pageblock_migratetype(struct page *page,
|
||||
|
|
@ -564,7 +564,7 @@ void __meminit init_pageblock_migratetype(struct page *page,
|
|||
flags |= BIT(PB_migrate_isolate);
|
||||
#endif
|
||||
__set_pfnblock_flags_mask(page, page_to_pfn(page), flags,
|
||||
MIGRATETYPE_AND_ISO_MASK);
|
||||
PAGEBLOCK_MIGRATETYPE_MASK | PAGEBLOCK_ISO_MASK);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DEBUG_VM
|
||||
|
|
@ -2140,15 +2140,15 @@ static bool __move_freepages_block_isolate(struct zone *zone,
|
|||
}
|
||||
|
||||
move:
|
||||
/* Use MIGRATETYPE_MASK to get non-isolate migratetype */
|
||||
/* Use PAGEBLOCK_MIGRATETYPE_MASK to get non-isolate migratetype */
|
||||
if (isolate) {
|
||||
from_mt = __get_pfnblock_flags_mask(page, page_to_pfn(page),
|
||||
MIGRATETYPE_MASK);
|
||||
PAGEBLOCK_MIGRATETYPE_MASK);
|
||||
to_mt = MIGRATE_ISOLATE;
|
||||
} else {
|
||||
from_mt = MIGRATE_ISOLATE;
|
||||
to_mt = __get_pfnblock_flags_mask(page, page_to_pfn(page),
|
||||
MIGRATETYPE_MASK);
|
||||
PAGEBLOCK_MIGRATETYPE_MASK);
|
||||
}
|
||||
|
||||
__move_freepages_block(zone, start_pfn, from_mt, to_mt);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user