On Thu 11-05-23 14:56:01, Huang Ying wrote: > The patchset is based on upstream v6.3. > > More and more cores are put in one physical CPU (usually one NUMA node > too). In 2023, one high-end server CPU has 56, 64, or more cores. > Even more cores per physical CPU are planned for future CPUs. While > all cores in one physical CPU will contend for the page allocation on > one zone in most cases. This causes heavy zone lock contention in > some workloads. And the situation will become worse and worse in the > future. > > For example, on an 2-socket Intel server machine with 224 logical > CPUs, if the kernel is built with `make -j224`, the zone lock > contention cycles% can reach up to about 12.7%. > > To improve the scalability of the page allocation, in this series, we > will create one zone instance for each about 256 GB memory of a zone > type generally. That is, one large zone type will be split into > multiple zone instances. Then, different logical CPUs will prefer > different zone instances based on the logical CPU No. So the total > number of logical CPUs contend on one zone will be reduced. Thus the > scalability is improved. It is not really clear to me why you need a new zone for all this rather than partition free lists internally within the zone? Essentially to increase the current two level system to 3: per cpu caches, per cpu arenas and global fallback. I am also missing some information why pcp caches tunning is not sufficient. -- Michal Hocko SUSE Labs