On 5/12/22 12:33 PM, ying.huang@xxxxxxxxx wrote:
On Wed, 2022-05-11 at 23:22 -0700, Wei Xu wrote:
Sysfs Interfaces
================
* /sys/devices/system/memtier/memtierN/nodelist
where N = 0, 1, 2 (the kernel supports only 3 tiers for now).
Format: node_list
Read-only. When read, list the memory nodes in the specified tier.
Tier 0 is the highest tier, while tier 2 is the lowest tier.
The absolute value of a tier id number has no specific meaning.
What matters is the relative order of the tier id numbers.
When a memory tier has no nodes, the kernel can hide its memtier
sysfs files.
* /sys/devices/system/node/nodeN/memtier
where N = 0, 1, ...
Format: int or empty
When read, list the memory tier that the node belongs to. Its value
is empty for a CPU-only NUMA node.
When written, the kernel moves the node into the specified memory
tier if the move is allowed. The tier assignment of all other nodes
are not affected.
Initially, we can make this interface read-only.
It seems that "/sys/devices/system/node/nodeN/memtier" has all
information we needed. Do we really need
"/sys/devices/system/memtier/memtierN/nodelist"?
That can be gotten via a simple shell command line,
$ grep . /sys/devices/system/node/nodeN/memtier | sort -n -k 2 -t ':'
It will be really useful to fetch the memory tier node list in an easy
fashion rather than reading multiple sysfs directories. If we don't have
other attributes for memorytier, we could keep
"/sys/devices/system/memtier/memtierN" a NUMA node list there by
avoiding /sys/devices/system/memtier/memtierN/nodelist
-aneesh