[PATCH v3 7/7] mm: use VMA flag helpers in NUMA balancing
From: Gregory Price
Date: Tue Sep 22 2026 - 14:31:22 EST
From: "Gregory Price (Meta)" <gourry@xxxxxxxxxx>
Use vma_test() instead of accessing vm_flags directly in the NUMA
balancing code touched by the preceding fixes. Keep the existing flag
predicates unchanged.
No functional change intended.
Suggested-by: Lorenzo Stoakes <ljs@xxxxxxxxxx>
Link: https://lore.kernel.org/r/aq1FDhy00epXXtgd@gremlin
Assisted-by: LLM
Signed-off-by: Gregory Price (Meta) <gourry@xxxxxxxxxx>
---
kernel/sched/fair.c | 3 ++-
mm/internal.h | 2 +-
mm/migrate.c | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 412c72084a63d..0d48d595740bf 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4224,7 +4224,8 @@ static void task_numa_work(struct callback_head *work)
* under cache pressure can drive considerable bandwidth.
*/
placement_scan = !(vma->vm_file &&
- (vma->vm_flags & (VM_READ | VM_WRITE)) == VM_READ);
+ vma_test(vma, VMA_READ_BIT) &&
+ !vma_test(vma, VMA_WRITE_BIT));
if (!vma->vm_mm || (!placement_scan && !tiering)) {
trace_sched_skip_vma_numa(mm, vma, NUMAB_SKIP_SHARED_RO);
diff --git a/mm/internal.h b/mm/internal.h
index cbeaf1fc38cfc..560406c36a757 100644
--- a/mm/internal.h
+++ b/mm/internal.h
@@ -1240,7 +1240,7 @@ size_t splice_folio_into_pipe(struct pipe_inode_info *pipe,
static inline bool vma_is_single_threaded_private(struct vm_area_struct *vma)
{
- if (vma->vm_flags & VM_SHARED)
+ if (vma_test(vma, VMA_SHARED_BIT))
return false;
return atomic_read(&vma->vm_mm->mm_users) == 1;
diff --git a/mm/migrate.c b/mm/migrate.c
index 6a08690cfe219..8e1e5ff1cb580 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -2705,7 +2705,7 @@ int migrate_misplaced_folio_prepare(struct folio *folio,
* See folio_maybe_mapped_shared() on possible imprecision
* when we cannot easily detect if a folio is shared.
*/
- if ((vma->vm_flags & VM_EXEC) &&
+ if (vma_test(vma, VMA_EXEC_BIT) &&
folio_maybe_mapped_shared(folio) &&
(!folio_in_lowtier(folio) || !node_is_toptier(node)))
return -EACCES;
--
2.53.0-Meta