Re: [PATCH 0/4] SLUB: calculate_order() cleanups

From: Vlastimil Babka
Date: Mon Oct 02 2023 - 08:38:39 EST


On 9/28/23 06:46, Jay Patel wrote:
> On Fri, 2023-09-08 at 16:53 +0200, Vlastimil Babka wrote:
>> Since reviewing recent patches made me finally dig into these
>> functions
>> in details for the first time, I've also noticed some opportunities
>> for
>> cleanups that should make them simpler and also deliver more
>> consistent
>> results for some corner case object sizes (probably not seen in
>> practice). Thus patch 3 can increase slab orders somewhere, but only
>> in
>> the way that was already intended. Otherwise it's almost no
>> functional
>> changes.
>>
> Hi Vlastimil,

Hi, Jay!

> This cleanup patchset looks promising.
> I've conducted test
> on PowerPC with 16 CPUs and a 64K page size, and here are the results.
>
> S
> lub Memory Usage
>
> +-------------------+--------+------------+
> | | Normal | With Patch |
> +-------------------+--------+------------+
> | Total Slub Memory | 476992 | 478464 |
> | Wastage | 431 | 451 |
> +-------------------+--------+------------+
>
> Also, I have not detected any changes in the page order for slub caches
> across all objects with 64K page size.

As expected. Which should mean any benchmark differences should be noise and
not caused by the patches.

> Hackbench Results
>
> +-------+----+---------+------------+----------+
> |
> | | Normal | With Patch | |
> +-------+----+---------+-----
> -------+----------+
> | Amean | 1 | 1.1530 | 1.1347 | ( 1.59%) |
> |
> Amean | 4 | 3.9220 | 3.8240 | ( 2.50%) |
> | Amean | 7 | 6.7943 |
> 6.6300 | ( 2.42%) |
> | Amean | 12 | 11.7067 | 11.4423 | ( 2.26%) |
> | Amean | 21 | 20.6617 | 20.1680 | ( 2.39%) |
> | Amean | 30 | 29.4200
> | 28.6460 | ( 2.63%) |
> | Amean | 48 | 47.2797 | 46.2820 | ( 2.11%)
> |
> | Amean | 64 | 63.4680 | 62.1813 | ( 2.03%) |
> +-------+----+------
> ---+------------+----------+
>
>
> Reviewed-by: Jay Patel
> <jaypatel@xxxxxxxxxxxxx>
> Tested-by: Jay Patel <jaypatel@xxxxxxxxxxxxx>

Thanks! Applied your Reviewed-and-tested-by:

> Th
> ank You
> Jay Patel
>> Vlastimil Babka (4):
>> mm/slub: simplify the last resort slab order calculation
>> mm/slub: remove min_objects loop from calculate_order()
>> mm/slub: attempt to find layouts up to 1/2 waste in
>> calculate_order()
>> mm/slub: refactor calculate_order() and calc_slab_order()
>>
>> mm/slub.c | 63 ++++++++++++++++++++++++-----------------------------
>> --
>> 1 file changed, 27 insertions(+), 36 deletions(-)
>>
>