From: Srinivasulu Thanneeru <sthanneeru.opensrc@xxxxxxxxxx> The memory tiers feature allows nodes with similar memory types or performance characteristics to be grouped together in a memory tier. However, there is currently no provision for moving a node from one tier to another on demand. This patch series aims to support node migration between tiers on demand by sysadmin/root user using the provided sysfs for node migration. To migrate a node to a tier, the corresponding node’s sysfs memtier_override is written with target tier id. Example: Move node2 to memory tier2 from its default tier(i.e 4) 1. To check current memtier of node2 $cat /sys/devices/system/node/node2/memtier_override memory_tier4 2. To migrate node2 to memory_tier2 $echo 2 > /sys/devices/system/node/node2/memtier_override $cat /sys/devices/system/node/node2/memtier_override memory_tier2 Usecases: 1. Useful to move cxl nodes to the right tiers from userspace, when the hardware fails to assign the tiers correctly based on memorytypes. On some platforms we have observed cxl memory being assigned to the same tier as DDR memory. This is arguably a system firmware bug, but it is true that tiers represent *ranges* of performance and we believe it's important for the system operator to have the ability to override bad firmware or OS decisions about tier assignment as a fail-safe against potential bad outcomes. 2. Useful if we want interleave weights to be applied on memory tiers instead of nodes. In a previous thread, Huang Ying <ying.huang@xxxxxxxxx> thought this feature might be useful to overcome limitations of systems where nodes with different bandwidth characteristics are grouped in a single tier. https://lore.kernel.org/lkml/87a5rw1wu8.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/ ============= Version Notes: V2 : Changed interface to memtier_override from adistance_offset. memtier_override was recommended by 1. John Groves <john@xxxxxxxxxxxxxx> 2. Ravi Shankar <ravis.opensrc@xxxxxxxxxx> 3. Brice Goglin <Brice.Goglin@xxxxxxxx> V1 : Introduced adistance_offset sysfs. ============= Srinivasulu Thanneeru (2): base/node: Add sysfs for memtier_override memory tier: Support node migration between tiers Documentation/ABI/stable/sysfs-devices-node | 7 ++ drivers/base/node.c | 47 ++++++++++++ include/linux/memory-tiers.h | 11 +++ include/linux/node.h | 11 +++ mm/memory-tiers.c | 85 ++++++++++++--------- 5 files changed, 125 insertions(+), 36 deletions(-) -- 2.25.1