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]
Date: Tue, 25 Jun 2024 16:11:48 +0800
From: Alex Shi <seakeel@...il.com>
To: Yosry Ahmed <yosryahmed@...gle.com>, alexs@...nel.org
Cc: 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, senozhatsky@...omium.org, david@...hat.com,
 42.hyeyoo@...il.com
Subject: Re: [PATCH 00/15] add zpdesc memory descriptor for zswap.zpool



On 6/25/24 5:46 AM, Yosry Ahmed wrote:
> On Thu, Jun 20, 2024 at 10:42 PM <alexs@...nel.org> wrote:
>>
>> From: Alex Shi <alexs@...nel.org>
>>
>> According to Metthew's plan, the page descriptor will be replace by a 8
>> bytes mem_desc on destination purpose.
>> https://lore.kernel.org/lkml/YvV1KTyzZ+Jrtj9x@casper.infradead.org/
>>
>> Here is a implement on z3fold to replace page descriptor by zpdesc,
>> which is still overlay on struct page now. but it's a step move forward
>> above destination.
>>
>> To name the struct zpdesc instead of z3fold_desc, since there are 3 zpool
>> usages under zswap, zbud, z3fold, zsmalloc. It looks like we may extend the
>> zpdesc to zbud and zsmalloc, combined their usage into one.
> 
> Please do not focus your development efforts on z3fold. We really want
> to deprecate/remove it, as well as zbud eventually. See [1].
> 
> For zsmalloc, there is already an ongoing effort to split zsdesc from
> struct page [2].
> 
> [1]https://lore.kernel.org/lkml/CAJD7tkbRF6od-2x_L8-A1QL3=2Ww13sCj4S3i4bNndqF+3+_Vg@mail.gmail.com/

Hi Yosry,

Thanks a lot for the info and comments! It's my stupid w/o checking the email list before work on it.
Anyway don't know if z3fold would be removed, jut left this tested patchset here if someone need it.

> 
> [2]https://lore.kernel.org/lkml/20230713042037.980211-1-42.hyeyoo@gmail.com/

David had pointed out this to me few weeks ago too. This patchset hasn't updated nearly a year. If Yoo don't object I'd like to pick up from his left and update it to latest zsmalloc.c.

Thanks
Alex
> 
>>
>> For zpdesc(page), z3fold just uses the 5th member zppage_flag, which
>> match with page.private. Potentially uses the first member flags for
>> headless PG_locked, list_head lru and page.mapping|PAGE_MAPPING_MOVABLE
>> for page migration.
>>
>> This patachset could save 26Kbyetes z3fold.o size, basely saving come
>> from the page to folio conversion.
>>
>> Thanks a lot!
>> Alex
>>
>> Alex Shi (15):
>>   mm/z3fold: add zpdesc struct and helper and use them in
>>     z3fold_page_isolate
>>   mm/z3fold: use zpdesc in z3fold_page_migrate
>>   mm/z3fold: use zpdesc in z3fold_page_putback
>>   mm/z3fold: use zpdesc in get/put_z3fold_header funcs
>>   mm/z3fold: use zpdesc in init_z3fold_page
>>   mm/z3fold: use zpdesc in free_z3fold_page
>>   mm/z3fold: convert page to zpdesc in __release_z3fold_page
>>   mm/z3fold: use zpdesc free_pages_work
>>   mm/z3fold: use zpdesc in z3fold_compact_page and do_compact_page
>>   mm/z3fold: use zpdesc in __z3fold_alloc
>>   mm/z3fold: use zpdesc in z3fold_alloc
>>   mm/z3fold: use zpdesc in free_z3fold_page and z3fold_free
>>   mm/z3fold: use zpdesc in z3fold_map/z3fold_unmap
>>   mm/z3fold: introduce __zpdesc_set_movable
>>   mm/z3fold: introduce __zpdesc_clear_movable
>>
>>  mm/z3fold.c | 190 +++++++++++++++++++++++++++-------------------------
>>  mm/zpdesc.h |  87 ++++++++++++++++++++++++
>>  2 files changed, 184 insertions(+), 93 deletions(-)
>>  create mode 100644 mm/zpdesc.h
>>
>> --
>> 2.43.0
>>
>>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ