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 3C00FC27C78 for ; Tue, 11 Jun 2024 23:37:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A478B6B00A9; Tue, 11 Jun 2024 19:37:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9F6736B0118; Tue, 11 Jun 2024 19:37:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 897ED6B0119; Tue, 11 Jun 2024 19:37:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 6613E6B00A9 for ; Tue, 11 Jun 2024 19:37:58 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 0A4C0A3411 for ; Tue, 11 Jun 2024 23:37:58 +0000 (UTC) X-FDA: 82220223036.05.75B9F9E Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) by imf21.hostedemail.com (Postfix) with ESMTP id 41AD01C0009 for ; Tue, 11 Jun 2024 23:37:56 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=PjW1mHwd; spf=pass (imf21.hostedemail.com: domain of 3099oZgoKCHAmcgfmOVaSRUccUZS.QcaZWbil-aaYjOQY.cfU@flex--yosryahmed.bounces.google.com designates 209.85.128.201 as permitted sender) smtp.mailfrom=3099oZgoKCHAmcgfmOVaSRUccUZS.QcaZWbil-aaYjOQY.cfU@flex--yosryahmed.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718149076; a=rsa-sha256; cv=none; b=tPQtmYSYAd629zcAC3qJ5hSnDB+oo3Ha8V+N+G5w5ssUY1FvOc8tqsbpNTccIE+VfU/PMp 2bQo5HZq5n5XMBFg8FIpazi9FRl1EwRZqHXCjkiu4Ju6UxybC7Pj+25o1S8UVyaPY03jc6 +dN1GdK+YhnS6s9T7ODAE/i8ushstUY= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=PjW1mHwd; spf=pass (imf21.hostedemail.com: domain of 3099oZgoKCHAmcgfmOVaSRUccUZS.QcaZWbil-aaYjOQY.cfU@flex--yosryahmed.bounces.google.com designates 209.85.128.201 as permitted sender) smtp.mailfrom=3099oZgoKCHAmcgfmOVaSRUccUZS.QcaZWbil-aaYjOQY.cfU@flex--yosryahmed.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718149076; 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=wFURrLEu8yru5FCu/H1+vtARd6FDi8T2rnq3Ao2LjWE=; b=iM2TTFGYTgR/CsHyIzNbsMkdw/erD0OxjYaajidp6kLE/1AUPItQv+mI5nWs5Uvrws0Hkx bjf6p10KAmBoCpqUOpaxrVvHUopwv2Xn65jA29e26H0mBa43XghiPBp+mdBtMuEwTAo7h+ z4IVV2XoVusLYcy7d+pCt1ckVzl/rpg= Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-62d054b1ceeso54301197b3.2 for ; Tue, 11 Jun 2024 16:37:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1718149075; x=1718753875; darn=kvack.org; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=wFURrLEu8yru5FCu/H1+vtARd6FDi8T2rnq3Ao2LjWE=; b=PjW1mHwd4X2Wo/kf5ndY96OOFhAjOrNjzfmSOH66abNTBQzt1CnhA0+cufoiVSrhhF AoZQkq/RwSekH77pyrrnojFYdGNzLUyL9Gfh4DlMA8LUB2wI98aelOYCg88OM2Mi2rH2 TVf9qvzm9fQW/Yhe1bqko1ujRwur1BEgk2oMiy9tHvX3+S63ovLhmi03GlrGiJ7tFF1m 6kzw4apbrJ5w7VNBlUpQy/efqjpDpDdw7dKFoWnFymCxKkf8ajVG0gCPm05hGLkSWmYv U7GExmKSD3Fm0o4HzPMhzrDnQbH2otGPuXuoFu+EAfrYOn3yAJ4V2dNCC8fPv3c7Zofk 0EnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718149075; x=1718753875; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=wFURrLEu8yru5FCu/H1+vtARd6FDi8T2rnq3Ao2LjWE=; b=cfWkkyl2ZGxX6M+LUfByPfOe53pG5zh2YMYqxJp3fgeeKTGH7Asp2By/PDmeEcF2mN DjNSMlgsJA6Wa0iKLUbPpY8fjtC9AVBFzcnJgm461VUdP3RgK6/hLrcavTQNyIQuAZNN pBGLnvWM4+tPWObZ5bsZIVnD/oJm1tmdivayILKKfYiPyPvF6usYrXszh0C7IZLXKmv1 xl4Cv//7iHEPMcgRWSr8X5BBg0CPSit1GTAyYAdDzw/uS3/5NfnrCQKciUjvSFC3YcG0 K5a4JNoVXPcKgu+0aDCneaYx1Y7VDDT2wdX/Dt03UmGWMt2ha3ccByN/glNd0Fda62Bz hEUw== X-Forwarded-Encrypted: i=1; AJvYcCULqjeviiALcQfsAMKQ1CNSm/SLuZH47FncVF0SfNi2Rqmpf4qPleemKcoM6yBFxeZrXhgp3lVCqFrBV9fe4ByeReU= X-Gm-Message-State: AOJu0Yx1RYln32yXtItvfefryl34wxZfMg5OsJxo6Wv9LGLnUUTkY0mO 8Nif0Z0QsH/LhdPbp/s2ZXcvsg9CKmiKJfSS0KmGISnSnpZI3s3eaDNLtrR/XA8aflk6eAMmumm Ty3XvyPfUMfiQrylEzw== X-Google-Smtp-Source: AGHT+IFTAoZnT4eXyEEesCaHsE31DKaQg2+GUzj1w/L2OSqhBitgxDfMEMrBoLNLHf/s7pg80CybVr1XyhqKyqQu X-Received: from yosry.c.googlers.com ([fda3:e722:ac3:cc00:20:ed76:c0a8:29b4]) (user=yosryahmed job=sendgmr) by 2002:a05:690c:3810:b0:61b:ec22:8666 with SMTP id 00721157ae682-62fb6c1f4damr829967b3.0.1718149075136; Tue, 11 Jun 2024 16:37:55 -0700 (PDT) Date: Tue, 11 Jun 2024 23:37:52 +0000 In-Reply-To: Mime-Version: 1.0 References: <20240611024516.1375191-1-yosryahmed@google.com> <20240611024516.1375191-2-yosryahmed@google.com> Message-ID: Subject: Re: [PATCH v3 2/3] mm: zswap: add zswap_never_enabled() From: Yosry Ahmed To: Barry Song <21cnbao@gmail.com> Cc: Andrew Morton , Johannes Weiner , Nhat Pham , Chengming Zhou , Chris Li , David Hildenbrand , Matthew Wilcox , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 9nmuxhuckaqnxx941wjm4i3rk1yj44i3 X-Rspamd-Queue-Id: 41AD01C0009 X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1718149076-187646 X-HE-Meta: U2FsdGVkX1+yK3AYG9P7ALr84N6fKnsKetQ+dBOI0qWOqI7Yb3GPRPUzckO+wdRxIA1NsJL3QuYMRMj0f9Y8ckw7vxC3zO5EdeDsPQevmip+4/BKKKz/0wnBvnZuQ78x4I1eGE2rJovcQX3mfym3EUVnqWg86OZhzCKJEV6qp20abXcX1Ev4zCOmSRkx3xlfaIgtJhbcjuj+fpnuHopKrMdJfGNnpVaOxCezbgNefENmwO3LKMjA1wix+d6bejM4Wa51XzozBGU7JwjxIV//3YnUmpdwHEVRmPYLZB5CvF3rJbBjwgCkAeRB9itBkYypeU3uStA7AB+WpGr8BOsl0ckaKuE3tzIlu3MbQjtu2NLnkppOzPzUW2Vk+2ZZBucTa7SlXQ+ZhCuMGDRc7o91rzFxwalg/v1PqOh3qViOm8b9xAhjmYlfEXJF2eHUPpJvHJVDGCt9Xm2kl42NSwXlCPrOc9NbmxDGxrFTpcRddf6mf+UO10LkZF9ZGl2v5tIBu1iBSK9cxAI/PCpCh/FD93hCiH9FhXJoYT43vN+JNFR0hRs/9tWJoBA9+gtZ/s2vBmr59cWiz4R0/CcgHpL+9KOwn05YS/pGDdwKFzbnuNoTZk4/crX7VqEupFERydmu5P4cVnCFLG7yNaYdjFYk/5JAZKb4iS+xy6bvuE33BRRoo01CtfHa4nvfyUrGUI7EDd5Tx5tZNcWVWWqQ/mclw+9a6F/fk/JZeP+J6uvghZdiDq+JoU7NfpbJlAm93eRmN4IoV5QxxgAQlO71mn+85jatZEndG2gjkkgc0PZo3ip3DfbptVLog27udBjJ84CPmf6GqTfPY54LmkpSfAx/2BjVEl7vLzCCMHoD5TTbyr/aJCSAHvKo6gzmWVBvBOGeJmrjfZ5mvmYnTow7oWEryPg5Yv2fwWNEKiCLepT2Vpl3LlpKEy5U0naBPBT1dHHa6h8N+cvLRp8SsRrpnch 1LC6shqb PIs35XWIYC6QA2w1G8WgcW+WD+DtSmbZxtIgg7KfoTtNZqRpzP/iP/HXCKqJ7u1Rye/mMHxtnj976T5GbMdE4eaBHxNb//JXEiFOLGDOS06ixauI36sNAGA4NFxUOePPuUGEdafUqJNDJUXjvRJZbY0dSsEuwbNHJVU5izoeVW+kWp6x4NUXS4tPf2klXc0VJr8YT7h3RtohPG99Z8uL7Z0PiJJeR/21Gb1aLfUfo9VhyV+1h3BtBSXjjugQezGHbswBWGTByXA4Tq7yfsIBMNJp+7IfD/oxMxUsfi/lJd3blraZHBFxCfSz5n6xwPA97W6uOVVHg9wJF4UXQdBgLTzyMvUGYO1JHUnz6xbqY1RPQC0BZ6u4YwcJonpkzufiQio7qZBhv1eXb+haXnu1mZaKyavlN3cSTa59n2aIx71rodqroXMfGQ/0D/mYVW7iSzLKfZaGEvZv78/UqvpAGellYgE6cw6jw5H+zuIS/HJWxMmDHffDy1DH1cDpGhrol+aghxSiQhwL0sHrdO59mqKG7IraSKNCrMijX8CwM+5e51kO7lAOsrWF7KQJqCaDxvDQ+0v4kENdNsSg3tqlrA8KsXsHBfH2eY2EBlI/8AObXuHPHM+LEgzxS6w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000089, 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 Wed, Jun 12, 2024 at 10:19:58AM +1200, Barry Song wrote: > On Wed, Jun 12, 2024 at 9:55=E2=80=AFAM Yosry Ahmed wrote: > > > > On Tue, Jun 11, 2024 at 2:53=E2=80=AFPM Barry Song <21cnbao@gmail.com> = wrote: > > > > > > On Tue, Jun 11, 2024 at 2:45=E2=80=AFPM Yosry Ahmed wrote: > > > > > > > > Add zswap_never_enabled() to skip the xarray lookup in zswap_load()= if > > > > zswap was never enabled on the system. It is implemented using stat= ic > > > > branches for efficiency, as enabling zswap should be a rare event. = This > > > > could shave some cycles off zswap_load() when CONFIG_ZSWAP is used = but > > > > zswap is never enabled. > > > > > > > > However, the real motivation behind this patch is two-fold: > > > > - Incoming large folio swapin work will need to fallback to order-0 > > > > folios if zswap was ever enabled, because any part of the folio c= ould > > > > be in zswap, until proper handling of large folios with zswap is > > > > added. > > > > > > > > - A warning and recovery attempt will be added in a following chang= e in > > > > case the above was not done incorrectly. Zswap will fail the read= if > > > > the folio is large and it was ever enabled. > > > > > > > > Signed-off-by: Yosry Ahmed > > > > --- > > > > mm/zswap.c | 10 ++++++++++ > > > > 1 file changed, 10 insertions(+) > > > > > > > > diff --git a/mm/zswap.c b/mm/zswap.c > > > > index a8c8dd8cfe6f5..7fcd751e847d6 100644 > > > > --- a/mm/zswap.c > > > > +++ b/mm/zswap.c > > > > @@ -83,6 +83,7 @@ static bool zswap_pool_reached_full; > > > > static int zswap_setup(void); > > > > > > > > /* Enable/disable zswap */ > > > > +static DEFINE_STATIC_KEY_MAYBE(CONFIG_ZSWAP_DEFAULT_ON, zswap_ever= _enabled); > > > > static bool zswap_enabled =3D IS_ENABLED(CONFIG_ZSWAP_DEFAULT_ON); > > > > static int zswap_enabled_param_set(const char *, > > > > const struct kernel_param *); > > > > @@ -136,6 +137,11 @@ bool zswap_is_enabled(void) > > > > return zswap_enabled; > > > > } > > > > > > > > +static bool zswap_never_enabled(void) > > > > +{ > > > > + return !static_branch_maybe(CONFIG_ZSWAP_DEFAULT_ON, &zswap= _ever_enabled); > > > > +} > > > > > > Will we "extern" this one so that mm-core can use it to fallback > > > to small folios? > > > or you prefer this to be done within the coming swapin series? > > > > My intention was to keep it static for now, and expose it in the > > header when needed (in the swapin series). If others think it's better > > to do this now to avoid the churn I am happy to do it as well. >=20 > Personally, I'd vote for exposing it now to avoid one more patch which mi= ght > come shortly. And this patchset serves the clear purpose of drawing atten= tion > from mm-core to fallback to small folios. Sure. Andrew, unless anyone objects, could you please squash the following diff and add the following sentence to the commit log: "Expose zswap_never_enabled() in the header for the swapin work to use it later." diff --git a/include/linux/zswap.h b/include/linux/zswap.h index ce5e7bfe8f1ec..bf83ae5e285d4 100644 --- a/include/linux/zswap.h +++ b/include/linux/zswap.h @@ -36,6 +36,7 @@ void zswap_memcg_offline_cleanup(struct mem_cgroup *memcg= ); void zswap_lruvec_state_init(struct lruvec *lruvec); void zswap_folio_swapin(struct folio *folio); bool zswap_is_enabled(void); +bool zswap_never_enabled(void); #else =20 struct zswap_lruvec_state {}; @@ -65,6 +66,11 @@ static inline bool zswap_is_enabled(void) return false; } =20 +static inline bool zswap_never_enabled(void) +{ + return false; +} + #endif =20 #endif /* _LINUX_ZSWAP_H */ diff --git a/mm/zswap.c b/mm/zswap.c index 505f4b9812891..a546c01602aaf 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -137,7 +137,7 @@ bool zswap_is_enabled(void) return zswap_enabled; } =20 -static bool zswap_never_enabled(void) +bool zswap_never_enabled(void) { return !static_branch_maybe(CONFIG_ZSWAP_DEFAULT_ON, &zswap_ever_enabled)= ; } >=20 > Thanks > Barry