sched/numa, mm: do not try to migrate memory to memoryless nodes
authorByungchul Park <byungchul@sk.com>
Mon, 19 Feb 2024 04:10:47 +0000 (13:10 +0900)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 5 Mar 2024 01:01:14 +0000 (17:01 -0800)
Memoryless nodes do not have any memory to migrate to, so, as an
optimization, stop trying it.

Link: https://lkml.kernel.org/r/20240219041920.1183-1-byungchul@sk.com
Link: https://lkml.kernel.org/r/20240216111502.79759-1-byungchul@sk.com
Fixes: c574bbe91703 ("NUMA balancing: optimize page placement for memory tiering system")
Signed-off-by: Byungchul Park <byungchul@sk.com>
Reviewed-by: Oscar Salvador <osalvador@suse.de>
Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
Reviewed-by: Phil Auld <pauld@redhat.com>
Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
Acked-by: David Hildenbrand <david@redhat.com>
Cc: Benjamin Segall <bsegall@google.com>
Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Valentin Schneider <vschneid@redhat.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
kernel/sched/fair.c

index 533547e3c90a755f58bd0261570c7904a2bffb9e..d8d71ad7f9f8dc96b3a04848bc87b9a3e3df86d2 100644 (file)
@@ -1830,6 +1830,12 @@ bool should_numa_migrate_memory(struct task_struct *p, struct folio *folio,
        int dst_nid = cpu_to_node(dst_cpu);
        int last_cpupid, this_cpupid;
 
+       /*
+        * Cannot migrate to memoryless nodes.
+        */
+       if (!node_state(dst_nid, N_MEMORY))
+               return false;
+
        /*
         * The pages in slow memory node should be migrated according
         * to hot/cold instead of private/shared.