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 54773C282DE for ; Fri, 7 Mar 2025 23:13:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B29AF280003; Fri, 7 Mar 2025 18:13:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AD962280001; Fri, 7 Mar 2025 18:13:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9557C280003; Fri, 7 Mar 2025 18:13:24 -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 77181280001 for ; Fri, 7 Mar 2025 18:13:24 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 33EC2161132 for ; Fri, 7 Mar 2025 23:13:26 +0000 (UTC) X-FDA: 83196308412.23.F209809 Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by imf28.hostedemail.com (Postfix) with ESMTP id 3A742C0004 for ; Fri, 7 Mar 2025 23:13:24 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=D0FQijZU; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.51 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741389204; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=cqomUUPjRLiQmonoip8f3BCduAZxVjsjo6bLnE0yfxE=; b=uRJ+vZzlZKqUmdlKDuAwj4g4Oo4DiCSKD0GSNrABgDoxRXzB2GWD/m+dxFSihH3v/2ypSV kwaKVSh+ZrqkUF41o4aNDxwXHxhGwrRkF4dO/BNkk94io0ResSyca89glN8/MXSRywpSC5 mWlVoVD2vcsFO48d66/lHAYfpFeGdpQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741389204; a=rsa-sha256; cv=none; b=zTc/aBqwtXcF0DZas8TjV2X5kidkNOH3f8yab0OyEUmr3n1uv6axU9dOdxgI1XHKip8K0d UyeNTX/OPeQZoVnfy4Spn31NOXJPZysPuzYrM8palqa2RM+NY9yUSacJoYCj8ABE9tL8cF 5Q8lSQfdv2dWK6WUhkNpC85Vvvz2DeI= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=D0FQijZU; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.51 as permitted sender) smtp.mailfrom=nphamcs@gmail.com Received: by mail-qv1-f51.google.com with SMTP id 6a1803df08f44-6dd1962a75bso16609126d6.3 for ; Fri, 07 Mar 2025 15:13:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741389203; x=1741994003; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=cqomUUPjRLiQmonoip8f3BCduAZxVjsjo6bLnE0yfxE=; b=D0FQijZUQtTKgbNVMni+vsqplLVgXpC+YYyMp/yMspO2u6XKbknyfWNeuIY9ZqVuuG EoeAE8TTQ7FHuSRxDVTOmhpeM4Pp+LIA7/+CIukacyB0kk0yqTx34zRLHEX77bm4h1D9 SpOv83ST7ZL/SQD9uNIwuVyIhSPNsakghifRgLfQatRH5XCz+Z4DStjZsTNz4lDu2Vio 67dls46vpyiGFn4AockCZ4WLUcoo18ZfroknCaGHpa/gob2WzCXJdMsEpTlZaiMPqrnZ QBcKsSaB5gJgWiwsERPFi5Q+ThFXGN9CZDGijaWgFFL1b3UFGZGV5z33XOLiiEMjLQ0F f+sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741389203; x=1741994003; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cqomUUPjRLiQmonoip8f3BCduAZxVjsjo6bLnE0yfxE=; b=bVQB9b75Z2hx8kii0gW+uKamBJjwzlifKyKs7HraV7WoZQnZNNCPnTwLdWwDA5Iw8p WOIodDwmpSDjkejOe9OS3MUW5A2jcW996KlrrpQ+VMZ2hEQjzbeYBLdQDHyWlPqhWjoG GYLMI35BgcnBDT5FcgYExMEo6XXIngJXx9b2IRCr8SjbFdheC4s6G6cj122GCJYVeN0T jA+cAACnETV/8FVDTm9IOTdclvvYzGQJwIhip/WT0J086AgTQuzmcAkbvsKaxBh9c+9f VhZf7c+MSqv71/jiiz6TA1N566K5yusUeiFATzFEAVJ1pz1du0hqeu6A611XPcHOS8a4 cL4A== X-Forwarded-Encrypted: i=1; AJvYcCUf890ZFH3ISVAnoLK6iZVOgWEqDdp3dI5G0eSEmmO+N55ioAAwEvg3oXAWFzRwRRmX8AmOAehTDQ==@kvack.org X-Gm-Message-State: AOJu0Yw6xRgjBHwmmK+naRU9Jvz+K4oTpahykkE32x04Zyq6uF2gCRAY vy2fp/ZHBYSG0S0UjE31qhFAsTP5PmrxddrvAl01QRs1PkLNdc59iyVuU10PAwjoiOFihoyeuvY zOB2WvJYZINeDSoWvlQciqpjebZA= X-Gm-Gg: ASbGnctsh6uw4Q3qWmdhgMfXGjSrDJqyUr32Mp5pEln2PpSFxan5z/44NmWa4gW88l/ Yn4L7TWqC1RpCUjEAnHsmOVSxVrwxl/hu+7Sm42YmA2E1njvxJ5XA/no3DxbK+JCC2fcUkZ2opN sJNXNTsgJC/es0/QThfNHB1t976I5XU9H9onUy95lRWw== X-Google-Smtp-Source: AGHT+IGgO4waxliJRJEjcjUATYM+tLYXbT7o9vAllgT5zmhdZvJYwca7AqrIUigw62PVDCYdl3bzS0BOeN1gV1tcJBc= X-Received: by 2002:a05:6214:21a6:b0:6e4:2dd7:5c88 with SMTP id 6a1803df08f44-6e90068196dmr70464496d6.38.1741389203258; Fri, 07 Mar 2025 15:13:23 -0800 (PST) MIME-Version: 1.0 References: <20250307120141.1566673-1-qun-wei.lin@mediatek.com> <20250307120141.1566673-3-qun-wei.lin@mediatek.com> In-Reply-To: From: Nhat Pham Date: Fri, 7 Mar 2025 15:13:12 -0800 X-Gm-Features: AQ5f1JooOtTd4HVR7CCnLuHoQkyIFVDhrvbdPzpgk1fPg8et0mZMLZfSKYeQ1OE Message-ID: Subject: Re: [PATCH 2/2] kcompressd: Add Kcompressd for accelerated zram compression To: Barry Song <21cnbao@gmail.com> Cc: Qun-Wei Lin , Jens Axboe , Minchan Kim , Sergey Senozhatsky , Vishal Verma , Dan Williams , Dave Jiang , Ira Weiny , Andrew Morton , Matthias Brugger , AngeloGioacchino Del Regno , Chris Li , Ryan Roberts , "Huang, Ying" , Kairui Song , Dan Schatzberg , Al Viro , linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, nvdimm@lists.linux.dev, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Casper Li , Chinwen Chang , Andrew Yang , James Hsu Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: 3A742C0004 X-Rspamd-Server: rspam08 X-Stat-Signature: 4o3fwxym7gdy6xsa47zfi4pfjas3xoax X-HE-Tag: 1741389204-172167 X-HE-Meta: U2FsdGVkX1+3ONJi48LfvDImQiPcmj8br1ip7xAjBGPNrY1euMAuLyyaiH6u6wqV8xy0zqXokH+qpv8LJkNJwobYtocqBJo+mjhCPuulQy+vI+AJpCu5YnAW2ghy7oSyg4BqNUqn8hW4b7ntulMY3OKuS0J8c9rYPI0w9sztZRIS0L91JAs96PoHctE6vACeEgFELODB6m/lA50nRvyNlqztUP+MbV7MJ44E77gMYhT36c1kSKuE7zFIVJINlhRaWgqHxEFSbAA6YbupB7eSgjhdFXQJ6RlsceBGs+O8H4vzephFhdHFDu3R292C7LjDzYoLqBZQGV8OpjjhCNdWcpF8nw2U462KJR+vfCf6R9C2i6qHDFZgwo7sYRV3jGBDzjcs5iQ5WLt++QX4ts3aEj8h8YG/NcSZpJNkBzgioNNZdUKDe93cfTFKF/0EbINJvqB25ci2yHW7K8tay17fudeujbHkG9wX626P+fZCDpek8d7bbtnkgMg3tIFiVRVywnj9S6n7+6kOGCiG/pLKAidaXJBXiTv31B4gj5bRwOyWp/PnYKbR8iR+b1jL+1BWKU4t7STfyeYJ3fZaYlLJ9VkWfEGHf+GB8Gscro53xG/JwMwDU22g84bOBXM0tXiP3WE/ReY3VTZAx4FD80N9kxWILbkwwhAt6SVrciAW/ILju7+WElNKKmmxbdTpYLkqp/7LQMSFF4BtP2M3CVEMn5uOsvZENHduvFxrT5PFamPjiqAy/pnuGFNv3CGe69I8bIs5EKz7PA4N5yj2BBvw6YBq+RRPo8FAtBLfElL9fNbB9KFmx+76JSMZqkTotoux7dNs1oDWufWjvGgy/bK7qzNF25cKYb6c5cK6u18lLKbUE4oayC49T9A7IOtsDRPc8xNdApOyHnCE1V/7URjo9LtLggng0HJIMUgj8oE9vqsIf5gNKHXThWlxPm32njSU3iqNOqNQHpMqnVPq01c vxv305yl Y/51VhUo+YWkrjP1HApa/KxcsCivlgs4FngNn1cEJDpbYASIsbi8FbaPmgmO4aXKAmIWRZ/e41bY88z2UJSlIAdT1QWSw7BJCNyLnXQiPnJiJitvUlta71YVptmS/luAAkdISTB4IyEQ1SUYVyqDkkXdMHIyCDSDOctsRaYdZoB/5iJVr/3K8u+1ag1ZeSZ8k3zG9ll4coITAsDKrhzQ2UbTYx3NVjchDfGAbDYdr5qfIXfL22+wsn65sAadERK8YJxpZ01qlOZgLs39bIJCxEaSySrgUzNKd1ICjBjHWNAIA9tibGvVM6PAqrCSTOcJMto/hDCWq4rgMN36TMXD2jXxcsacXYA77Xqkfp8sZ4SRREBMPqcvESi51fRWxsY5WfYVPwLeoTX/8XJHnKcs7zrOPBPMnISRoN799qv6b+2DAs/Z+v1qAqlLeDg== 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: On Fri, Mar 7, 2025 at 11:41=E2=80=AFAM Barry Song <21cnbao@gmail.com> wrot= e: > > On Sat, Mar 8, 2025 at 1:02=E2=80=AFAM Qun-Wei Lin wrote: > > > > Introduced Kcompressd to offload zram page compression, improving > > system efficiency by handling compression separately from memory > > reclaiming. Added necessary configurations and dependencies. > > > > Signed-off-by: Qun-Wei Lin > > --- > > drivers/block/zram/Kconfig | 11 ++ > > drivers/block/zram/Makefile | 3 +- > > drivers/block/zram/kcompressd.c | 340 ++++++++++++++++++++++++++++++++ > > drivers/block/zram/kcompressd.h | 25 +++ > > drivers/block/zram/zram_drv.c | 22 ++- > > 5 files changed, 397 insertions(+), 4 deletions(-) > > create mode 100644 drivers/block/zram/kcompressd.c > > create mode 100644 drivers/block/zram/kcompressd.h > > > > diff --git a/drivers/block/zram/Kconfig b/drivers/block/zram/Kconfig > > index 402b7b175863..f0a1b574f770 100644 > > --- a/drivers/block/zram/Kconfig > > +++ b/drivers/block/zram/Kconfig > > @@ -145,3 +145,14 @@ config ZRAM_MULTI_COMP > > re-compress pages using a potentially slower but more effecti= ve > > compression algorithm. Note, that IDLE page recompression > > requires ZRAM_TRACK_ENTRY_ACTIME. > > + > > +config KCOMPRESSD > > + tristate "Kcompressd: Accelerated zram compression" > > + depends on ZRAM > > + help > > + Kcompressd creates multiple daemons to accelerate the compres= sion of pages > > + in zram, offloading this time-consuming task from the zram dr= iver. > > + > > + This approach improves system efficiency by handling page com= pression separately, > > + which was originally done by kswapd or direct reclaim. > > For direct reclaim, we were previously able to compress using multiple CP= Us > with multi-threading. > After your patch, it seems that only a single thread/CPU is used for comp= ression > so it won't necessarily improve direct reclaim performance? > > Even for kswapd, we used to have multiple threads like [kswapd0], [kswapd= 1], > and [kswapd2] for different nodes. Now, are we also limited to just one t= hread? > I also wonder if this could be handled at the vmscan level instead of the= zram > level. then it might potentially help other sync devices or even zswap la= ter. Agree. A shared solution would be much appreciated. We can keep the kcompressd idea, but have it accept IO work from multiple sources (zram, zswap, whatever) through a shared API. Otherwise we would need to reinvent the wheel multiple times :)