Re: [v2 RFC PATCH 0/9] Another Approach to Use PMEM as NUMA Node

Yang Shi
2019-04-16T23:18:47Z

>>>> Why cannot we start simple and build from there? In other words I
>>>> do not
>>>> think we really need anything like N_CPU_MEM at all.
>>> In this patchset N_CPU_MEM is used to tell us what nodes are cpuless
>>> nodes.
>>> They would be the preferred demotion target.  Of course, we could
>>> rely on
>>> firmware to just demote to the next best node, but it may be a
>>> "preferred"
>>> node, if so I don't see too much benefit achieved by demotion. Am I
>>> missing
>>> anything?
>> Why cannot we simply demote in the proximity order? Why do you make
>> cpuless nodes so special? If other close nodes are vacant then just use
>> them.

And, I'm supposed we agree to *not* migrate from PMEM node (cpuless
node) to any other node on reclaim path, right? If so we need know if
the current node is DRAM node or PMEM node. If DRAM node, do demotion;
if PMEM node, do swap. So, using N_CPU_MEM to tell us if the current
node is DRAM node or not.

> We could. But, this raises another question, would we prefer to just
> demote to the next fallback node (just try once), if it is contended,
> then just swap (i.e. DRAM0 -> PMEM0 -> Swap); or would we prefer to
> try all the nodes in the fallback order to find the first less
> contended one (i.e. DRAM0 -> PMEM0 -> DRAM1 -> PMEM1 -> Swap)?
>
>
> |------|     |------| |------|        |------|
> |PMEM0|---|DRAM0| --- CPU0 --- CPU1 --- |DRAM1| --- |PMEM1|
> |------|     |------| |------|       |------|
>
> The first one sounds simpler, and the current implementation does so
> and this needs find out the closest PMEM node by recognizing cpuless
> node.
>
> If we prefer go with the second option, it is definitely unnecessary
> to specialize any node.
>