Re: [RFC v1 00/19] Modify zonelist to nodelist v1

From: David Hildenbrand
Date: Fri Nov 22 2019 - 05:14:28 EST


On 22.11.19 08:25, lixinhai.lxh@xxxxxxxxx wrote:
On 2019-11-21Âat 23:17ÂPengfei LiÂwrote:
Motivation
----------
Currently if we want to iterate through all the nodes we have to
traverse all the zones from the zonelist.

So in order to reduce the number of loops required to traverse node,
this series of patches modified the zonelist to nodelist.

Two new macros have been introduced:
1) for_each_node_nlist
2) for_each_node_nlist_nodemask


Benefit
-------
1. For a NUMA system with N nodes, each node has M zones, the number
ÂÂ of loops is reduced from N*M times to N times when traversing node.


It looks to me that we don't really have system which has N nodes and
each node withÂM zones in its address range.
We may have systems which has several nodes, but only the first node has
all zone types, other nodes only have NORMAL zone. (Evenly distribute the
!NORMAL zones on all nodes is not reasonable, as those zones have limited
size)
So iterate over zones to reach nodes should at N level, not M*N level.

I guess NORMAL/MOVABLE/DEVICE would be common for most nodes, while I do agree that usually we will only have 1 or 2 zones per node (when we have many nodes). So it would be something like c*N, whereby c is most probably on average 2.

--

Thanks,

David / dhildenb