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 88579C77B7A for ; Tue, 30 May 2023 21:15:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E93DA6B0078; Tue, 30 May 2023 17:15:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E4329280002; Tue, 30 May 2023 17:15:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D3322280001; Tue, 30 May 2023 17:15:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id C71AB6B0078 for ; Tue, 30 May 2023 17:15:53 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 96DB4A032E for ; Tue, 30 May 2023 21:15:53 +0000 (UTC) X-FDA: 80848178586.12.1A5940E Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf29.hostedemail.com (Postfix) with ESMTP id B5263120010 for ; Tue, 30 May 2023 21:15:51 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="nhW6W/5i"; dmarc=none; spf=pass (imf29.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685481351; 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=UKx0dH2MYZx9Giq3ctu3lSYAA7/bUMeGV8wNZBA/bM4=; b=3FusGtQSLy1c/XmOiW+d+mHXxlN/dzLyoZOYjWJz2cHDdomaFU61huyyF1JFa85uYIN7ZJ SNSnQoopcUmrcW+9ZOa4EMquwIQFp+ZMul6sGHDlXUhfYW+gkKBLNxei1PN85njdkTggR4 /6vryAM5qvklg29YYRGC4OJZiHEgSIU= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="nhW6W/5i"; dmarc=none; spf=pass (imf29.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685481351; a=rsa-sha256; cv=none; b=S0AzH5Xx9ghocv+zH5Q2y+1mOvbEIhZQMjJ8y3RjVXfJ/X+HspU6sfPlPaPbFU2oqGqAPX 2IUsxSoySrTYXYIgb/pzAGP02FZPe7bxWhYed5SuL6xQGlodRHkyG9zll0WNrptRB89MfB 70F/c9TQanCovwYG7ykUuuf2/3hsYtg= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 090B7632EA; Tue, 30 May 2023 21:15:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 15857C433D2; Tue, 30 May 2023 21:15:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1685481348; bh=BsfsJT3RNDghO1BT+q5WEVurwj/3UqhWOXK4IIuJXH0=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=nhW6W/5iMxjAytttCC/K0zmpFkn4MmAKCh7wCaQOd1LqQjyVlMgFDQTgS8OLrob4x oa487zz/93lbMOX92PMcBDA/Wer/rq2x+mO/TSkalpdppofj/A0m6ucNO9+TReWccc GyLKULTJ8HLXWO/KshhR3T1rOOLDLsRCdTMNX0Pk= Date: Tue, 30 May 2023 14:15:47 -0700 From: Andrew Morton To: Yosry Ahmed Cc: Konrad Rzeszutek Wilk , Seth Jennings , Dan Streetman , Vitaly Wool , Johannes Weiner , Nhat Pham , Domenico Cerasuolo , Yu Zhao , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm: zswap: support exclusive loads Message-Id: <20230530141547.609c4a434470c3fbf7570ff8@linux-foundation.org> In-Reply-To: <20230530210251.493194-1-yosryahmed@google.com> References: <20230530210251.493194-1-yosryahmed@google.com> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: B5263120010 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: phuhgk8wkxx3xega7hnrwgka59opgaj5 X-HE-Tag: 1685481351-674636 X-HE-Meta: U2FsdGVkX1/Pt6NM7hDFYi/7z68MgyrxH2/ADoMXcsaowoO9cUXVysoqQQWIEIlBVNZ0PBq81bIWrA1pCLJpMYtu+Yz0vfGt3pWRa3fjnQnRRo2jwZpI2KjCd8Egkhvo9si+XKkyQv0fdA+5MPoRS0cqk1aaS76LMgacOxMOclWTgZ+JBbW+lUDh+03oJOSKivFVscOlz+IDU8c3o6khfxrZc22+NlvDFbCaS5VHtZy4Cuuc1O9MZY5iO8Y58sMsJjUNyWxOvIwFw7w5bDY44sWc49LLGl48FnDzIKPP9IzhlV3RavrvYiW5ThC6zHx9cs14kt0y3HApJDhVK8hRItjC33QT3LTof9fV25jQjw3ZdFCcapvVSwi1Sw8o4k/TkwaFQhW5bOU2y2rUS8eNlsQ5VEwUSquF6OQShpnxlAZCoDz2T5o2+ssDUxDBzp4cpIO1el0dlnMOYUMo4Lfb0expv/4gTFWJQ9CzmQ7H2EK+VWUQCO5rFXgBKK9+VWTsoWVaClVIGCwdbsXgXeQr/QXq6Aic3WaOA2DjkwgXqkCrS09OXSNTCPKixuQlmiKvwl1MW1d1puCiv0b1BmpmtzDLiCVXfcQPt0g1L6myKnNJooyib+ZjtAV1pi0pDWIrObePdISaN+z7WZR1+QjkK0/Ik/Z/juxgWoKNY2x9XIt4uQ0AKgk4JloXwiDS4+cdWhb0gpcMAZM5gnxaKd9Oiz7UBD2obELlYyAfPA4ogyUy4vHIwdOVZihSLe/NEgTAxAOlYk0cO/upZdjX7ig9KU1eHroqKKSf5m139UK+CfeI176cPZyi7pYY/F6BRaxVjk1uMWfO08ko7zdZ03RgOcJ6+8s2/CxacLq/Twhn5LqU0WYrxjxSPPww+hitCfC6cJg/8JNaAEzC70yoO9/79wGfcuLS3mmwmnsEAnWK5Za+ghX2MPMjM5/Cn2SaA2jiPdTZqk3qTLzOdymIXyy IDHopt2q KFYg9ilodvczUz279jkALAkwK+N4G6eyHl1jzNvcCM2n/7VPPOlztgajZ3/z914GTkfkwMjVVolTAT4hJczWSnVRfvPZCbrwLIZUPbo+EqY72TW4AtSx4L5JAD/cqvqLChLbnY9tRkv2jWBZnVs7nWARwTGLSd9xmX51zHHs3LkUHwCzMdZUltuky2svBllA8LyMKGIfsIZI6BwrOvLLCKpILORx1LJYE8BnJoYF62xAp7coSqAuGwAs2QStso51rSMoynHkT6watJF0Pc6huQf5IZM4MBZiqYrQ9Jfi7mefRk1oe1NfRrUUWM+sjnxz1dRWIXQKvkyEZIaY7iI7LFxGelt4ajp8feL7rmGngq/zhjyJB+y4UJ+9C3eJPqKqMr20MUoQQ7NUtnv0WuxH1J3y/tg== 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: On Tue, 30 May 2023 21:02:51 +0000 Yosry Ahmed wrote: > Commit 71024cb4a0bf ("frontswap: remove frontswap_tmem_exclusive_gets") > removed support for exclusive loads from frontswap as it was not used. > > Bring back exclusive loads support to frontswap by adding an > exclusive_loads argument to frontswap_ops. Add support for exclusive > loads to zswap behind CONFIG_ZSWAP_EXCLUSIVE_LOADS. Why is this Kconfigurable? Why not just enable the feature for all builds? > Refactor zswap entry invalidation in zswap_frontswap_invalidate_page() > into zswap_invalidate_entry() to reuse it in zswap_frontswap_load(). > > With exclusive loads, we avoid having two copies of the same page in > memory (compressed & uncompressed) after faulting it in from zswap. On > the other hand, if the page is to be reclaimed again without being > dirtied, it will be re-compressed. Compression is not usually slow, and > a page that was just faulted in is less likely to be reclaimed again > soon. > > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -46,6 +46,19 @@ config ZSWAP_DEFAULT_ON > The selection made here can be overridden by using the kernel > command line 'zswap.enabled=' option. > > +config ZSWAP_EXCLUSIVE_LOADS > + bool "Invalidate zswap entries when pages are loaded" > + depends on ZSWAP > + help > + If selected, when a page is loaded from zswap, the zswap entry is > + invalidated at once, as opposed to leaving it in zswap until the > + swap entry is freed. > + > + This avoids having two copies of the same page in memory > + (compressed and uncompressed) after faulting in a page from zswap. > + The cost is that if the page was never dirtied and needs to be > + swapped out again, it will be re-compressed. So it's a speed-vs-space tradeoff? I'm not sure how users are to decide whether they want this. Did we help them as much as possible?