On Tue, 2 Apr 2024, Ming Yang wrote:
The key point of above allocation flow is: the slab should be alloced from the partial of other node first, instead of the buddy system of other node directly.
If you use GFP_THISNODE then you will trigger a reclaim pass on the remote node. That could generate a performance regression.
We already support this kind of behavior via the node_reclaim / zone_reclaiom setting in procfs. Please use that.
The remote buildup of the partial pages can be addressed by changing the remote_node_defrag_ratio in the slabs. This will make slub scan remote nodes for partial slabs before going into the page allocator.