linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 0/2] Node migration between memory tiers
@ 2023-11-30 22:04 sthanneeru.opensrc
  2023-11-30 22:04 ` [RFC PATCH 1/2] base/node: Add sysfs for adistance_offset sthanneeru.opensrc
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: sthanneeru.opensrc @ 2023-11-30 22:04 UTC (permalink / raw)
  To: aneesh.kumar, linux-cxl, linux-mm, sthanneeru.opensrc
  Cc: dan.j.williams, hannes, hasanalmaruf, haowang3, ying.huang,
	gregory.price, mhocko, tj, hezhongkun.hzk, fvdl, john, emirakhur,
	vtavarespetr, Ravis.OpenSrc, Jonathan.Cameron, linux-kernel,
	linux-api

From: Srinivasulu Thanneeru <sthanneeru.opensrc@micron.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


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-12-06 15:22 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-30 22:04 [RFC PATCH 0/2] Node migration between memory tiers sthanneeru.opensrc
2023-11-30 22:04 ` [RFC PATCH 1/2] base/node: Add sysfs for adistance_offset sthanneeru.opensrc
2023-11-30 22:04 ` [RFC PATCH 2/2] memory tier: Support node migration between tiers sthanneeru.opensrc
2023-12-04 15:43 ` [RFC PATCH 0/2] Node migration between memory tiers Michal Hocko
2023-12-04 19:56   ` [EXT] " Srinivasulu Thanneeru
2023-12-05  8:35     ` Michal Hocko
2023-12-05  8:42       ` Srinivasulu Thanneeru
2023-12-05  8:51         ` Michal Hocko
2023-12-05  9:02           ` Srinivasulu Thanneeru
2023-12-05  9:09             ` Michal Hocko
2023-12-05  9:19           ` Ravi Jonnalagadda
2023-12-06 15:22             ` Michal Hocko
2023-12-05  8:51     ` [EXT] " Huang, Ying
2023-12-05  9:12     ` Huang, Ying

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).