On Fri, 22 Nov 2019 11:03:30 +0100 David Hildenbrand <david@xxxxxxxxxx> wrote: > On 21.11.19 16: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. > > > > 2. The size of pg_data_t is much reduced. > > > > > > Test Result > > ----------- > > Currently I have only performed a simple page allocation benchmark > > test on my laptop, and the results show that the performance of a > > system with only one node is almost unaffected. > > > > So you are seeing no performance changes. I am wondering why do we > need this, then - because your motivation sounds like a performance > improvement? (not completely against this, just trying to understand > the value of this :) ) Thanks for your comments. I am sorry that I did not make it clear. I want to express this series of patches will benefit NUMA systems with multiple nodes. The main benefit is that it will be more efficient when traversing all nodes (for example when performing page reclamation).