Subject: Re: [PATCH] slub: fix slub segmentation

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.




2024-04-05 09:05:38

by Vlastimil Babka

[permalink] [raw]
Subject: Re: [PATCH] slub: fix slub segmentation

On 4/4/24 9:12 PM, Christoph Lameter (Ampere) wrote:
> 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.

Note the alternative approach I merged doesn't have this issue because it
uses GFP_NOWAIT for that __GFP_THISNODE attempt.

https://lore.kernel.org/all/[email protected]/


> 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.
>
>