Re: [RFC PATCH 2/2] mm/demotion: Expose memory tier details via sysfs

From: Huang, Ying
Date: Fri Aug 26 2022 - 00:31:32 EST


"Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxx> writes:

> All allocated memory tiers will be listed as
> /sys/devices/virtual/memtier/memtierN/
>
> Each memtier directory contains symbolic link for the memory types
> that are part of the memory tier. A directory hierarchy looks like
>
> :/sys/devices/virtual/memtier# tree memtier512/
> memtier512/

So you suggest to use abstract_distance_start as memory tier ID? That
will make memory tier ID stable unless we change abstract distance chunk
size or abstract distance division points. That is, we have at least 2
choices here

1. memory_tier0, memory_tier1, memory_tier2, ...

The ID will start from 0. This is easy to understand by users. The
main drawback is that the memory tier ID may be changed when a NUMA node
is onlined/offlined. That is, the memory tier ID is relatively
unstable.

2. memory_tier<abstract_distance_start1>, memory_tier<abstract_distance_start2>, ...

The ID will be discontinuous. So it's not as intuitive as 0,1,2,....
The main advantage is that the memory tier ID will not change when a
NUMA node is onlined/offlined. The ID will be changed only when we
change abstract distance chunk size or abstract distance division
points. That is considered relatively seldom.

Personally, I prefer the 2nd choice too. But I want to collect opinions
from other people too.

> ├── memtype1 -> ../memtype1
> ├── memtype2 -> ../memtype2

I think abstract_distance_start and abstract_distance_end is the key
information of a memory tier too. So we should show them here.

> ├── subsystem -> ../../../../bus/memtier
> └── uevent
>
> The nodes which are part of a specific memory type can be listed via
> /sys/devices/system/memtier/memtypeN/nodes.
>
> The adistance value of a specific memory type can be listed via
> /sys/devices/system/memtier/memtypeN/adistance.
>
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxx>

Best Regards,
Huang, Ying

[snip]