From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AD540D5E12A for ; Fri, 8 Nov 2024 05:23:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BE4736B00AD; Fri, 8 Nov 2024 00:23:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B6CD96B00AE; Fri, 8 Nov 2024 00:23:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A34946B00AF; Fri, 8 Nov 2024 00:23:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 849AC6B00AD for ; Fri, 8 Nov 2024 00:23:42 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id E6240408D7 for ; Fri, 8 Nov 2024 05:23:41 +0000 (UTC) X-FDA: 82761784308.21.0D11686 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by imf07.hostedemail.com (Postfix) with ESMTP id 9C11240011 for ; Fri, 8 Nov 2024 05:22:47 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=DLqz3ogk; spf=pass (imf07.hostedemail.com: domain of ying.huang@intel.com designates 192.198.163.16 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731043369; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=8S1wz3aw7bgCROvG++GaKXPeAGJmExdjZ9hfl2B9CFE=; b=2hJWJo1zwo/8T/snIyoLizW7XmmYRV+qz8+msNakdmZTPzhOWT/3p9XaigxKUCUkN1wE3h bCuRpnQPdWfCrKP6xGSPVeDcR0FT0bfsoSDtwteMuTw9Tw6PDnCxhfNb5C0EJjFGCVulTF P7CSzrawYwMbsZYF9hZYsgJLz+AEp3g= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731043369; a=rsa-sha256; cv=none; b=giM6rgdagzop2c1K8Ez9nmPub1/une9e3vhdNgMk5D8n5IQSNLz/AT6Urkmob/UW3dOs4O 36pyFq+MRlpEAH7AjGY9MDNAtSn+juOANYaFu2Lpn+Q3z3ADREJI/YWzABe1x7V1tiHaRZ 1SuLcFS/uNHJdzTwKmwP4kvax+uwk3o= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=DLqz3ogk; spf=pass (imf07.hostedemail.com: domain of ying.huang@intel.com designates 192.198.163.16 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1731043419; x=1762579419; h=from:to:cc:subject:in-reply-to:references:date: message-id:mime-version; bh=Pm84jUB4Q4GhAHCSho72ISNQX/wNFi2qj7M1nJIExKA=; b=DLqz3ogkbNrVinbfMmWxDWcs2jmAUghrHQHJt4Bxyuve6Wxtmnq6Pjgr A1zCgUl0w2Wp0JslxyqCcP/KbJgneY5gWohjAWSqT7hdSlwpMFnn8bYAC mHry97Z+lvj70RHx6T7XTkhC1pQVN1/o8M9qN/Mf7wwgYnxunahRnyNDE EbV4VyflkUJ/L2vi+wsmbeqWvRSc4JIPGGWNKdA5AjWDbdxe03m2LOWro 3KMDrJiBgV5cur2yUQunTYuC5UMIoCZ3rxuhDYR0MpOdLnTikj8A2VtGq JvnsOYWj7VIpbvy3I9oXEibYanFOm5mk1BXYR4xt847jJfLfqXTYZt9qb w==; X-CSE-ConnectionGUID: iicCueIKTqSSXdUD1SMXSQ== X-CSE-MsgGUID: YoIsv1e3QEmHKFnkFfF3Lw== X-IronPort-AV: E=McAfee;i="6700,10204,11249"; a="18542245" X-IronPort-AV: E=Sophos;i="6.12,137,1728975600"; d="scan'208";a="18542245" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Nov 2024 21:23:37 -0800 X-CSE-ConnectionGUID: 76HCYjVPQAy7iccZitqowQ== X-CSE-MsgGUID: 4Mt08sVmRGmA9id38Rqz6Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,137,1728975600"; d="scan'208";a="85373663" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by orviesa010-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Nov 2024 21:23:31 -0800 From: "Huang, Ying" To: Barry Song <21cnbao@gmail.com> Cc: linux-mm@kvack.org, akpm@linux-foundation.org, axboe@kernel.dk, bala.seshasayee@linux.intel.com, chrisl@kernel.org, david@redhat.com, hannes@cmpxchg.org, kanchana.p.sridhar@intel.com, kasong@tencent.com, linux-block@vger.kernel.org, minchan@kernel.org, nphamcs@gmail.com, senozhatsky@chromium.org, surenb@google.com, terrelln@fb.com, v-songbaohua@oppo.com, wajdi.k.feghali@intel.com, willy@infradead.org, yosryahmed@google.com, yuzhao@google.com, zhengtangquan@oppo.com, zhouchengming@bytedance.com, usamaarif642@gmail.com, ryan.roberts@arm.com Subject: Re: [PATCH RFC v2 0/2] mTHP-friendly compression in zsmalloc and zram based on multi-pages In-Reply-To: <20241107101005.69121-1-21cnbao@gmail.com> (Barry Song's message of "Thu, 7 Nov 2024 23:10:02 +1300") References: <20241107101005.69121-1-21cnbao@gmail.com> Date: Fri, 08 Nov 2024 13:19:58 +0800 Message-ID: <87iksy5mkh.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Stat-Signature: fju6nackb4yqj1s3pgs8zwkek3bgomek X-Rspam-User: X-Rspamd-Queue-Id: 9C11240011 X-Rspamd-Server: rspam02 X-HE-Tag: 1731043367-675449 X-HE-Meta: U2FsdGVkX18o5dBRNIizN+Q2h7fl8lFIHMKI3tdkHjyNgPqkjzCzH26GzKGb+lhPV88RAceGBleCd7zh48Em1Gf0feqPY0jn9lshfikKDsQR6/SDG5Qp3/PIvlUU67+t7he9woN8n9v+SDbvu5fLCSnq9yQMdmymoHQDJ4gZmUGFDOn7rTmvqj9eOagX8EpjsaHn5e8qij7rhkUld1zFSMk7TBOme+/2oGhpTXKuc/3bkVmKZsiU0iiWOcFi59Vsm91/X/+XK8gI2BIcrxrdDIUv00bl5LrobpQ3/3bI9uLQ8uoqn+pexYHj3b1NbbIW74JfsM5BOQTlQGsYVEqdbd1U9AwfWlT+gH8pULltSvQlP1f2NLfSnH5oRAAQThNjBADwSON7eAnvaQmfpIeHS03M5GC5taNR8Wd9m7LrhjmoCrEL2PVz5C1msaoaxHW2MmCO1Q0q/KZG6c8npv7J9iAdugcta8ZocZZSue5aqdc0S1ySgbL8Md0PgDqCeEJ6daAuu0lhcnFwJEJKCKg86Sg3jGleCOKYlq7EdOiD/ca61QYi45nmJjMqwT693pju8qUlF8LDkmbn0aT0B5yQ+bNs6AaduaZHodjewGWSDWBiqUNaCEk2eWGKNseemDhvRdioJ3hrpXyHijDQGNu2NZ4Du4QDHEpAcKTYIuSUIw6Q7ZT0y744O4E9sBzl0mhH67YNTa1tFD9MbnGraivMMGiDNB1b8iZ/XvngrQeE4gq8Mee04WIMli8f+/mSJjkZiws/j+oHcEwi/xNIKi2dD9qkvMsVArFjpXXPjblUM5OlV1FsQst5Vk6KRH+vgwK8pfji5lfWiO3N2aSbESXv3mAa+zCn1shTzVgZCvwhlgW8Vi3wfrGrkbyhUWRQluIW8Lcl6zzN10liJq9z5dkjblUmG1FJ+ukIakq6GvO4jwvi+nIUEblGvmVSRFmR5ubABE/IX5cuITmR7LMLiV0 AY4zvoKD WbhXVjzxd7vdqcO6pOazc3T6Uk0F5uEEiA3iaGAybgN3uut7ZsnX63qqSU9RS4Sza32zM/ASS99Zlf0x8cwe0Dv6iSSY8hMtohupxrkVjPsH2soS+lxw8eOkm4itQgS1CxYi+mP5t1LjlzPVVH//7+swiL8IqP/WwvjOktL1Lg2b5b7ksbRrO0OIf58k4ZZ5K/UESzrINZNovZ109zBIkGEkQxw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi, Barry, Barry Song <21cnbao@gmail.com> writes: > From: Barry Song > > When large folios are compressed at a larger granularity, we observe > a notable reduction in CPU usage and a significant improvement in > compression ratios. > > mTHP's ability to be swapped out without splitting and swapped back in > as a whole allows compression and decompression at larger granularities. > > This patchset enhances zsmalloc and zram by adding support for dividing > large folios into multi-page blocks, typically configured with a > 2-order granularity. Without this patchset, a large folio is always > divided into `nr_pages` 4KiB blocks. > > The granularity can be set using the `ZSMALLOC_MULTI_PAGES_ORDER` > setting, where the default of 2 allows all anonymous THP to benefit. > > Examples include: > * A 16KiB large folio will be compressed and stored as a single 16KiB > block. > * A 64KiB large folio will be compressed and stored as four 16KiB > blocks. > > For example, swapping out and swapping in 100MiB of typical anonymous > data 100 times (with 16KB mTHP enabled) using zstd yields the following > results: > > w/o patches w/ patches > swap-out time(ms) 68711 49908 > swap-in time(ms) 30687 20685 > compression ratio 20.49% 16.9% The data looks good. Thanks! Have you considered the situation that the large folio fails to be allocated during swap-in? It's possible because the memory may be very fragmented. > -v2: > While it is not mature yet, I know some people are waiting for > an update :-) > * Fixed some stability issues. > * rebase againest the latest mm-unstable. > * Set default order to 2 which benefits all anon mTHP. > * multipages ZsPageMovable is not supported yet. > > Tangquan Zheng (2): > mm: zsmalloc: support objects compressed based on multiple pages > zram: support compression at the granularity of multi-pages > > drivers/block/zram/Kconfig | 9 + > drivers/block/zram/zcomp.c | 17 +- > drivers/block/zram/zcomp.h | 12 +- > drivers/block/zram/zram_drv.c | 450 +++++++++++++++++++++++++++++++--- > drivers/block/zram/zram_drv.h | 45 ++++ > include/linux/zsmalloc.h | 10 +- > mm/Kconfig | 18 ++ > mm/zsmalloc.c | 232 +++++++++++++----- > 8 files changed, 699 insertions(+), 94 deletions(-) -- Best Regards, Huang, Ying