Re: [RFC PATCH] mm: migrate: Add new node demotion strategy

From: Baolin Wang
Date: Sun Nov 07 2021 - 04:37:38 EST




On 2021/11/5 23:47, Dave Hansen wrote:
On 11/4/21 7:51 PM, Huang, Ying wrote:
Let's also try to do it with the existing node_demotion[] data
structure before we go adding more.
To avoid cache ping-pong, I guess some kind of per-CPU data structure
may be more suitable for interleaving among multiple nodes.

It would probably be better to just find something that's more
read-heavy. Like, instead of keeping a strict round-robin, just
randomly select one of the notes to which you can round-robin.

That will scale naturally without having to worry about caching or fancy
per-cpu data structures.


Thanks for your suggestion. After some thinking, can we change the node_demotion[] structure like below? Which means one source node can be demoted to mutiple target node, and we can set up the target node mask according to the node distance. How do you think? Thanks.

static nodemask_t node_demotion[MAX_NUMNODES] __read_mostly =
{[0 ... MAX_NUMNODES - 1] = NODE_MASK_NONE};