lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ