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

From: Jay Patel
Date: Thu Sep 28 2023 - 00:47:30 EST


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,

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.

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>

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(-)
>