Re: [PATCH v3 2/6] memory: move conditionally defined enums use inside ifdef tags

From: Bharata B Rao
Date: Mon Jan 20 2025 - 23:36:39 EST


> 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 9cc93c2f79f3..8d254e97840d 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -5571,14 +5571,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
> + 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

I don't think moving count_vm_numa_event() to within
CONFIG_NUMA_BALANCING is necessary as it is defined separately as NOP
for !CONFIG_NUMA_BALANCING.

In fact numa_migrate_check() should be within CONFIG_NUMA_BALANCING as
it should ideally be called only if NUMA balancing is enabled. The same
could be said for the callers of numa_migrate_check() which are
do_numa_page() and do_huge_pmd_numa_page().

Regards,
Bharata.