On Sun, 3 Oct 2021, Hyeonggon Yoo wrote: > As remote node allocation isn't that frequent and better avoided, > this patch tries to compromise some execution time for memory usage. Remote node allocation is typical for large memory loads and essential to balance the memory allocation over multiple nodes. Large NUMA systems exist because the memory requirements of the application cannot be satisfied by what a single node has to offer and usually code threads from multiple nodes may access remote memory. > This patch introduces red-black tree for alien cache. Tree nodes are > allocated at cache creation and the pool of tree nodes is same size with > cache's limit. ??? A red-black tree?? Gosh how much will performance suffer now? A lookup for every allocation? > Remove init_reap_node, next_reap_node and related variables > introduced by commit 8fce4d8e3b9e ("[PATCH] slab: Node rotor for freeing > alien caches and remote per cpu pages."), Because it has only one tree > for all remote nodes. Rotors to spread the memory allocated are essential for the performance of large memory loads! Memory must be spread evenly otherwise memory accesses will overload a single node.