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-next>] [day] [month] [year] [list]
Message-ID: <20240621054658.1220796-1-alexs@kernel.org>
Date: Fri, 21 Jun 2024 13:46:40 +0800
From: alexs@...nel.org
To: 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
Cc: Alex Shi <alexs@...nel.org>
Subject: [PATCH 00/15] add zpdesc memory descriptor for zswap.zpool 

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.

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