On 12/11/24 03:07, Gregory Price wrote:
NUMA_HINT_FAULTS and NUMA_HINT_FAULTS_LOCAL are only defined if
CONFIG_NUMA_BALANCING is defined, but are used outside the tags in
numa_migrate_check(). Fix this.
TNF_SHARED is only used if CONFIG_NUMA_BALANCING is enabled, so
moving this line inside the ifdef is also safe - despite use of TNF_*
elsewhere in the function. TNF_* are not conditionally defined.
Signed-off-by: Gregory Price <gourry@xxxxxxxxxx>
---
mm/memory.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/memory.c b/mm/memory.c
index 83fd35c034d7..6ad7616918c4 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -5573,14 +5573,14 @@ int numa_migrate_check(struct folio *folio, struct vm_fault *vmf,
/* Record the current PID acceesing VMA */
vma_set_access_pid_bit(vma);
- count_vm_numa_event(NUMA_HINT_FAULTS);
#ifdef CONFIG_NUMA_BALANCING
IIUC,|do_huge_pmd_numa_page|() and|do_numa_page()| are executed only if
|CONFIG_NUMA_BALANCING| is enabled (|pte_protnone()| and|pmd_protnone()|
return 0 if|CONFIG_NUMA_BALANCING| is disabled).
Given this, do we still need the|#ifdef|?
+ count_vm_numa_event(NUMA_HINT_FAULTS);
count_memcg_folio_events(folio, NUMA_HINT_FAULTS, 1);
-#endif
if (folio_nid(folio) == numa_node_id()) {
count_vm_numa_event(NUMA_HINT_FAULTS_LOCAL);
*flags |= TNF_FAULT_LOCAL;
}
+#endif
return mpol_misplaced(folio, vmf, addr);
}