[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1ec2f951-8ce8-485a-9f51-e3b9f4eba73e@gmail.com>
Date: Tue, 3 Sep 2024 16:01:29 +0800
From: Alex Shi <seakeel@...il.com>
To: Sergey Senozhatsky <senozhatsky@...omium.org>
Cc: alexs@...nel.org, Vitaly Wool <vitaly.wool@...sulko.com>,
Miaohe Lin <linmiaohe@...wei.com>, Andrew Morton
<akpm@...ux-foundation.org>, linux-kernel@...r.kernel.org,
linux-mm@...ck.org, minchan@...nel.org, willy@...radead.org,
david@...hat.com, 42.hyeyoo@...il.com, Yosry Ahmed <yosryahmed@...gle.com>,
nphamcs@...il.com
Subject: Re: [PATCH v7 00/21] mm/zsmalloc: add zpdesc memory descriptor for
zswap.zpool
On 9/3/24 11:45 AM, Sergey Senozhatsky wrote:
> On (24/09/03 12:35), Sergey Senozhatsky wrote:
>> On (24/09/02 15:21), alexs@...nel.org wrote:
>>> The descriptor still overlays the struct page; nothing has changed
>>> in that regard.
>>> [..]
>>> This patachset does not increase the descriptor size nor introduce any
>>> functional changes, and could save about 122Kbytes zsmalloc.o size.
>>
>> Is this number accurate? Where does such a large saving come from?
Hi Sergey,
Thanks for asking, I collected some data on Aug 2, before the patchset,
zsmalloc.o is 1200960 bytes, after patched, it's 1076144 bytes. At that
time it's saved about 124KB, about 10%, with some debug option enabled.
Just test again with x86defconfig + ZSMALLOC + ZSMALLOC_STAT,
on mm-unstable tree, zsmalloc.o reduces to 34960 bytes from 37328 bytes,
that's 6.3% saved.
The bloat-o-meter show in machine:
$ ./scripts/bloat-o-meter x86def/mm/zsmalloc.o x86def/mm/zsmalloc-patched.o
add/remove: 1/1 grow/shrink: 1/5 up/down: 100/-1068 (-968)
Function old new delta
create_zpdesc_chain - 92 +92
zs_compact 2352 2360 +8
zs_malloc 1334 1277 -57
__free_zspage 291 223 -68
free_zspage 289 211 -78
create_page_chain 95 - -95
zs_page_migrate 950 807 -143
async_free_zspage 1252 625 -627
Total: Before=11868, After=10900, chg -8.16%
>
> ./scripts/bloat-o-meter mm/zsmalloc.o-base mm/zsmalloc.o-patched
> add/remove: 0/0 grow/shrink: 2/6 up/down: 7/-843 (-836)
> Function old new delta
> obj_free 211 215 +4
> zs_unmap_object 568 571 +3
> zs_map_object 661 633 -28
> SetZsPageMovable 135 86 -49
> free_zspage 310 253 -57
> __free_zspage 284 226 -58
> zs_page_migrate 1304 1136 -168
> async_free_zspage 1099 616 -483
Many thanks for detailed data here!
Thanks
Alex
Powered by blists - more mailing lists