[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20231130220422.2033-1-sthanneeru.opensrc@micron.com>
Date: Fri, 1 Dec 2023 03:34:20 +0530
From: <sthanneeru.opensrc@...ron.com>
To: <aneesh.kumar@...ux.ibm.com>, <linux-cxl@...r.kernel.org>,
<linux-mm@...ck.org>, <sthanneeru.opensrc@...ron.com>
CC: <dan.j.williams@...el.com>, <hannes@...xchg.org>,
<hasanalmaruf@...com>, <haowang3@...com>, <ying.huang@...el.com>,
<gregory.price@...verge.com>, <mhocko@...e.com>, <tj@...nel.org>,
<hezhongkun.hzk@...edance.com>, <fvdl@...gle.com>,
<john@...alactic.com>, <emirakhur@...ron.com>,
<vtavarespetr@...ron.com>, <Ravis.OpenSrc@...ron.com>,
<Jonathan.Cameron@...wei.com>, <linux-kernel@...r.kernel.org>,
<linux-api@...r.kernel.org>
Subject: [RFC PATCH 0/2] Node migration between memory tiers
From: Srinivasulu Thanneeru <sthanneeru.opensrc@...ron.com>
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. Each tier has a start abstract distance(adistance)
and range.
To migrate a node to a tier, the corresponding node’s sysfs
adistance_offset is written with a value corresponding to
the tier’s adistance.
Example: Move node2 to memory tier5 from its default tier(i.e 4)
1. Check default values:
$cat /sys/devices/virtual/memory_tiering/memory_tier4/nodelist
0-2
$cat /sys/devices/system/node/node0/adistance_offset
0
$cat /sys/devices/system/node/node1/adistance_offset
0
$cat /sys/devices/system/node/node2/adistance_offset
0
2. Move node2 to tier5:
To move node2 from emory_tier4 (adistance=512) to
emory_tier5 (abstract=640), set the `adistance_offset` of
node 2 to 128 (i.e., 512 + 128 = 640).
Tier4 adistance start can be derved from tier-id
(i.e for tier4, 4 << 7 = 512).
$echo 128 > /sys/devices/system/node/node2/adistance_offset
$cat /sys/devices/system/node/node2/adistance_offset
128
3. Verify node2's tier id:
$cat /sys/devices/virtual/memory_tiering/memory_tier5/nodelist
2
$cat /sys/devices/virtual/memory_tiering/memory_tier4/nodelist
0-1
Srinivasulu Thanneeru (2):
base/node: Add sysfs for adistance_offset
memory tier: Support node migration between tiers
drivers/base/node.c | 51 +++++++++++++++++++++++
include/linux/memory-tiers.h | 11 +++++
include/linux/node.h | 6 +++
mm/memory-tiers.c | 79 ++++++++++++++++++++----------------
4 files changed, 113 insertions(+), 34 deletions(-)
--
2.25.1
Powered by blists - more mailing lists