• Baolin Wang's avatar
    mm: migrate: support multiple target nodes demotion · ac16ec83
    Baolin Wang authored
    We have some machines with multiple memory types like below, which have
    one fast (DRAM) memory node and two slow (persistent memory) memory
    nodes.  According to current node demotion policy, if node 0 fills up,
    its memory should be migrated to node 1, when node 1 fills up, its
    memory will be migrated to node 2: node 0 -> node 1 -> node 2 ->stop.
    
    But this is not efficient and suitbale memory migration route for our
    machine with multiple slow memory nodes.  Since the distance between
    node 0 to node 1 and node 0 to node 2 is equal, and memory migration
    between slow memory nodes will increase persistent memory bandwidth
    greatly, which will hurt the whole system's performance.
    
    Thus for this case, we can treat the slow memory node 1 and node 2 as a
    whole slow memory region, and we should migrate memory from node 0 to
    node 1 and node 2 if node 0 fills up.
    
    This patch changes the node_demotion data structure to support multiple
    target nodes, and establishes the migration path to support multiple
    target nodes with validating if the node distance is the best or not.
    
      available: 3 nodes (0-2)
      node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
      node 0 size: 62153 MB
      node 0 free: 55135 MB
      node 1 cpus:
      node 1 size: 127007 MB
      node 1 free: 126930 MB
      node 2 cpus:
      node 2 size: 126968 MB
      node 2 free: 126878 MB
      node distances:
      node   0   1   2
        0:  10  20  20
        1:  20  10  20
        2:  20  20  10
    
    Link: https://lkml.kernel.org/r/00728da107789bb4ed9e0d28b1d08fd8056af2ef.1636697263.git.baolin.wang@linux.alibaba.comSigned-off-by: default avatarBaolin Wang <baolin.wang@linux.alibaba.com>
    Reviewed-by: default avatar"Huang, Ying" <ying.huang@intel.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Zi Yan <ziy@nvidia.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Yang Shi <shy828301@gmail.com>
    Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
    Cc: zhongjiang-ali <zhongjiang-ali@linux.alibaba.com>
    Cc: Xunlei Pang <xlpang@linux.alibaba.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ac16ec83
migrate.c 88.8 KB