Re: [PATCH v5 9/9] mm/demotion: Update node_is_toptier to work with memory tiers

From: Ying Huang
Date: Sun Jun 05 2022 - 23:11:39 EST


On Fri, 2022-06-03 at 19:12 +0530, Aneesh Kumar K.V wrote:
> With memory tiers support we can have memory on NUMA nodes
> in the top tier from which we want to avoid promotion tracking NUMA
> faults. Update node_is_toptier to work with memory tiers. To
> avoid taking locks, a nodemask is maintained for all demotion
> targets. All NUMA nodes are by default top tier nodes and as
> we add new lower memory tiers NUMA nodes get added to the
> demotion targets thereby moving them out of the top tier.

Check the usage of node_is_toptier(),

- migrate_misplaced_page()
node_is_toptier() is used to check whether migration is a promotion.
We can avoid to use it. Just compare the rank of the nodes.

- change_pte_range() and change_huge_pmd()
node_is_toptier() is used to avoid scanning fast memory (DRAM) pages
for promotion. So I think we should change the name to node_is_fast()
as follows,

static inline bool node_is_fast(int node)
{
return NODE_DATA(node)->mt_rank >= MEMORY_RANK_DRAM;
}

And, as above, I suggest to add memory tier ID and rank to struct
pglist_data directly.

Best Regards,
Huang, Ying