From patchwork Thu Feb 6 07:21:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Sridhar, Kanchana P" X-Patchwork-Id: 13962464 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 9FC13C0219B for ; Thu, 6 Feb 2025 07:21:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C79C1280004; Thu, 6 Feb 2025 02:21:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B3A2C28000D; Thu, 6 Feb 2025 02:21:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 877AB280004; Thu, 6 Feb 2025 02:21:18 -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 4E57428000B for ; Thu, 6 Feb 2025 02:21:18 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 0DD4AB1CB3 for ; Thu, 6 Feb 2025 07:21:18 +0000 (UTC) X-FDA: 83088673836.19.89F22AE Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.8]) by imf07.hostedemail.com (Postfix) with ESMTP id DFECD40002 for ; Thu, 6 Feb 2025 07:21:15 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=EiTLpnNK; spf=pass (imf07.hostedemail.com: domain of kanchana.p.sridhar@intel.com designates 192.198.163.8 as permitted sender) smtp.mailfrom=kanchana.p.sridhar@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=1738826476; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=C2fTyg6uTdE2d1L0g/1iCUCcd19/Vjnv1DkKko59n3k=; b=q0Oh7Q21ffuxXiPjLkneVZPLKijTGCdN96UL/f68jNeyUcsJ+GpUuVnW2k1YUj4ox5mMrd LYhpp8nOldjgmVmhHfNjCa20sclh5GTAtl95e+vlhHiGo/y3X0gpRCost6kHpcJh65Buc3 ke0LkyhwXyq+aDuLWgAznZIJZsLBjjA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738826476; a=rsa-sha256; cv=none; b=PmAnoq7w/QzBg2OfttdJmzf5NtLAqsxbU8Ux2DOTuazx83MO1ZvfG/4owlM2/2Rrch8ApO W4BFEZBDY708h3FwzytMWSgWaZw4MTKrr239ArEbis/nnnc6Bya9rwlPs2Q8ycul62vecO S9CU/taLB+9j2U57l084c5hxlh0gTJI= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=EiTLpnNK; spf=pass (imf07.hostedemail.com: domain of kanchana.p.sridhar@intel.com designates 192.198.163.8 as permitted sender) smtp.mailfrom=kanchana.p.sridhar@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=1738826476; x=1770362476; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=iqZv8rJXdWI52EmscIRZweGSd8xTWCD0Rr/EovMHLuY=; b=EiTLpnNKxlQMfp3PegIjWW6IcQyI6pCR3EZ1NgFo9bOu6A074d2ZwMqU DZedXZgQ1bvVU8C0Y07YS1AoP/NHWJ80YhCkF8rmsIiA7ZyqRYqfmEHaC 0i4fILL5l+id8iHlOJcyFNzri/UwOzedAxKltp2RjG17WWqODKje1N0fk cQLkQmVG8lg98UuI/rSO4RxWVMDFsj9wJcTwmUjiOC46x0N6UFfUWRsnT wxZzkBJvjEMuhsu0GTYZc1gY3dulIPR32hY58QTBDjV+3V9j0f1sVjhwU nWcY0cLU5OBlzFmgmUBTSGGBPTGCAXg+Z0F6q34PP3coXrWPyNpUBa286 Q==; X-CSE-ConnectionGUID: MaoiOuphTimg347Wi/a34g== X-CSE-MsgGUID: uwT6zM37SN2Oiya9spT3Ug== X-IronPort-AV: E=McAfee;i="6700,10204,11336"; a="56962728" X-IronPort-AV: E=Sophos;i="6.13,263,1732608000"; d="scan'208";a="56962728" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by fmvoesa102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Feb 2025 23:21:06 -0800 X-CSE-ConnectionGUID: ILym3snHR9yvBXAi4N76GQ== X-CSE-MsgGUID: LTcU3nkoQeadkuMSgJpNTQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,224,1728975600"; d="scan'208";a="112022646" Received: from jf5300-b11a338t.jf.intel.com ([10.242.51.115]) by orviesa008.jf.intel.com with ESMTP; 05 Feb 2025 23:21:06 -0800 From: Kanchana P Sridhar To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, hannes@cmpxchg.org, yosry.ahmed@linux.dev, nphamcs@gmail.com, chengming.zhou@linux.dev, usamaarif642@gmail.com, ryan.roberts@arm.com, 21cnbao@gmail.com, akpm@linux-foundation.org, linux-crypto@vger.kernel.org, herbert@gondor.apana.org.au, davem@davemloft.net, clabbe@baylibre.com, ardb@kernel.org, ebiggers@google.com, surenb@google.com, kristen.c.accardi@intel.com Cc: wajdi.k.feghali@intel.com, vinodh.gopal@intel.com, kanchana.p.sridhar@intel.com Subject: [PATCH v6 14/16] mm: zswap: Introduce zswap_compress_folio() to compress all pages in a folio. Date: Wed, 5 Feb 2025 23:21:00 -0800 Message-Id: <20250206072102.29045-15-kanchana.p.sridhar@intel.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20250206072102.29045-1-kanchana.p.sridhar@intel.com> References: <20250206072102.29045-1-kanchana.p.sridhar@intel.com> MIME-Version: 1.0 X-Stat-Signature: gmp18m9jpoc96up61gmnj6y3xz6z8o43 X-Rspam-User: X-Rspamd-Queue-Id: DFECD40002 X-Rspamd-Server: rspam03 X-HE-Tag: 1738826475-638331 X-HE-Meta: U2FsdGVkX18bPt1dYySNiJo7alWGlpvhU+jOoAnyXDDw0aqfdAoMbpUCLRbQ0C8HTmH4hoxiAS3kUf9yn0w6aMZzUyTvj3Kqe5aXn/M8LegtTwIGslt7iPWg1aYyXD1GMAfMQ7M1fv+b5ABfPxSbRQUDChOZ2lk6F3xkYNRQnjQhgt0zHPJRheNF1dZ1lHbsqon6z+DNgWUi5rFmpj49bdQEocPTlklvU7aYiiKA27Lke1tKNpRVzwr+ieenmZdEc3xt7BzS6/4E73bFS3GGcsrai0ng1+HpH7nVyZ+g/0wDl2TyeXX7bygA/0/Vh228XgLPtjaBkNr9eEESsMaoEgqFA/MI5sjEOlNk/3i+I900HTh0T7nJ5VGY1cqr6EpvRVmJWHIT/2Bmt1uLzg049Y/XxA7xiD/ZyuoT8E7i9QWUmfEWBB34ABeW9ez78e/GNiSZCy1TyoDMXpojvvQ2l1fQ6gh3LqY2TULzsT2mDpmMMPg+EdDLMBjQUZ40DyMUN/b/JW0jhj3GsvGTvuuHPHJ9hyCTz8BNN/C2LuzKF0CetI0BfpVzfkUEBavqIr9T3i3h59vOP0aFCiCmFDBvtf1Yog7lOm8tDO/hUzO63PLITbkkiuHFDYkUd+WHeSatPR7zs5pxe/s2axf4bPY+v4ttjfuKFLCtY2em0O3o785uSzJW5wdYT04w0uo07pBW8J4dX2NtQwuCC5Mb13m4mZMuiLO91baNZubeckvbWudue7QdickWImXzem+qruI3Vut402j4VYabGpjQHgex6nRdaQ8we5Yf/+sFdPvhcMkuvh8jlLhA/i+BP+brbAKuxVieDqaE6b3/KeU13ZbCVidCO4RdqSd+mkBrCEivQVpNtNY+TR6tC/xsrLuJVt1J1VozroBc7AY4rFXuh3x4HkZCAklsAMwsyfSm58AeIfEmxmYsuuMpb7nzjaUJLEMH/aSs2dw62XJS5S9UJUW ZFHnr/B3 HALIrEmhyRqNZLyhjQjIFOg+o7V8oRcxlbo6WHoC3zijugJhgTdBA7VaXLcxFcJ7uhhldBSClyWqH21ay4HMqoxnzscFm8sPe6CKnVi+OzscXqEKGJsekN3/gUn8Z+dc0WSX/7eYI27vX4CleeBvPsO3rojhebSauE0S7Y5P20V3MFXB9OWliaatuFRB8VZElIpso77DDO/YgLRoGnnggXNf/otYxmcLFyA7E7V0A9TtODGg= 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: This patch encapsulates away the computes for compressing the pages in a folio and storing the compressed memory in zpool, into a distinct zswap_compress_folio() procedure. For now, zswap_compress_folio() simply calls zswap_compress() for each page in the folio it is called with. This facilitates adding compress batching in subsequent patches. Signed-off-by: Kanchana P Sridhar --- mm/zswap.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/mm/zswap.c b/mm/zswap.c index af682bf0f690..6563d12e907b 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -1509,6 +1509,22 @@ static void shrink_worker(struct work_struct *w) * main API **********************************/ +static bool zswap_compress_folio(struct folio *folio, + struct zswap_entry *entries[], + struct zswap_pool *pool) +{ + long index, nr_pages = folio_nr_pages(folio); + + for (index = 0; index < nr_pages; ++index) { + struct page *page = folio_page(folio, index); + + if (!zswap_compress(page, entries[index], pool)) + return false; + } + + return true; +} + /* * Store all pages in a folio. * @@ -1542,12 +1558,8 @@ static bool zswap_store_folio(struct folio *folio, entries[index]->handle = (unsigned long)ERR_PTR(-EINVAL); } - for (index = 0; index < nr_pages; ++index) { - struct page *page = folio_page(folio, index); - - if (!zswap_compress(page, entries[index], pool)) - goto store_folio_failed; - } + if (!zswap_compress_folio(folio, entries, pool)) + goto store_folio_failed; for (index = 0; index < nr_pages; ++index) { swp_entry_t page_swpentry = page_swap_entry(folio_page(folio, index));