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 5AAE6CD11C2 for ; Fri, 5 Apr 2024 04:16:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AD82C6B00DC; Fri, 5 Apr 2024 00:16:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A881E6B00DD; Fri, 5 Apr 2024 00:16:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 94F6F6B00DE; Fri, 5 Apr 2024 00:16:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 7752F6B00DC for ; Fri, 5 Apr 2024 00:16:41 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id D9BFA1A01C4 for ; Fri, 5 Apr 2024 04:16:40 +0000 (UTC) X-FDA: 81974166960.07.006EEB6 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by imf13.hostedemail.com (Postfix) with ESMTP id 17A7720005 for ; Fri, 5 Apr 2024 04:16:38 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ifaKfaa6; spf=pass (imf13.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.41 as permitted sender) smtp.mailfrom=yosryahmed@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=1712290599; 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=cydfC+H9xsE4MXqT0hqtXVg8XyYzWAE2MO9hp55ZxcM=; b=MP6fzCe16suyzvB9y4AHL7ymJ0mAZG5SYaqlgEvPwmSKK0pwtEApT7DB5tpXxrQwshwr1T qn3mWwYWrLfIFqNqy+A/SmCTPmC4cHCalspCK/codjJOVYebRKoIofvSK+fkkHXe+0U/Al kL1m26smbLm8QplaHKkB02nFrMr1DcA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712290599; a=rsa-sha256; cv=none; b=GoQykKDPP1r8owuGJ/3mz3Rv3gi224Zv1EFEoVVIPoSNrq3OLQaH5RS0klqYCmO0tIn0kL 87F9CeRiiQhyv4xMfS9Wp1JV+JZiKpATKTqNiR1aMxIomYJA7aF3tj9WlCJyMvozlmBbna MbD5o31b9L60ARjJAzT8kDUv5HvZk20= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ifaKfaa6; spf=pass (imf13.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.41 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-a44665605f3so194530666b.2 for ; Thu, 04 Apr 2024 21:16:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1712290597; x=1712895397; 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=cydfC+H9xsE4MXqT0hqtXVg8XyYzWAE2MO9hp55ZxcM=; b=ifaKfaa6KxcXh1X8kjOfU3lChTsxr7SFGOboPbRs8SY9p1PBBF6I3gheNjKASzO988 GqaKi+PxLOnEK694HzQXHoqwpeC/RYEKk7w7Wb6T1csVw/rzneh02oY+kcdoWcHJ/ZBj iZBa7zBp9RSEMg97fugye4Ios7C5bGmCYNoUyS0ryjvuUMQokO3qPSthk7CIp/H8Lkzf T3pmetVLEbh0gsKBHodEe9NjeSlzxBk/U2PLrb2OQAJAqwEsfMtH9JwP1ZLJnPx2CBqc 3cU9G+cHCYzg4ha49dreJxODvqHVhILSEqi+v5Rxbc8yyCx5+b/k8DNh3JQ8aTohOKVn M/PA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712290597; x=1712895397; 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=cydfC+H9xsE4MXqT0hqtXVg8XyYzWAE2MO9hp55ZxcM=; b=pajcrr1jNoz9t7i/3xcaEiSHuzbrCRgZWUcA7BeZOXfth5r1Dkz8HDSmjsrwVbOyeo V5JRuXFbery+NUWilgkj/hHU32zwOnTrQzEJyyNDVQc58GTeuLQU4P1ay3uyI6eKM3XQ E33NcXCQfWnN44Yifr1+z/ceBQUQ5MubtzsxKR+JREaa2HFrT8IDkvLh0RZuK2c2TrXU lDziU0N9CzYMpZ9024Ia4VQMXYQ+LWkPWCGH0Mm4T+UJM3jA9i2wvLSuXKgG8UHPOg1y 7uutvuvCiUSj+YuPj/BVx2k7S9365gab0lEEso/5o9hsT2/Dx3wzN8Cf+gtSXEYltfPh y1tw== X-Forwarded-Encrypted: i=1; AJvYcCWbCRnSSaykYi3vxfcaDJA+7xB0cr8zZFSVq90uJ2P/2g0w2ODJEuN9Te/E9GIxvKnmOF6RvtemafUwGXiw0DoopxA= X-Gm-Message-State: AOJu0Yw3jj5gHAOQAMXGY6Sot3kFo9EpFogh1fI9dhcvQhwKIoJ55k7Z nYbhx8opdGXoB5BcJpk6ogr85I4WQ6BSutMm3cBxHnsebVj4fJSfwP3gxaCiRTZv96hfCIK8R6W 0+FuQhkS3kPPTaKsGAFXQwNR6iYuHsMm+IPir X-Google-Smtp-Source: AGHT+IEmezE7CD49WKnmsBrzb2WNWu1lEJTkRDyBYMZ2hukQ8fZl6Kj9Cb3kpok8ArAf9XcTUV6l6ULNi1d8qzu4MLA= X-Received: by 2002:a17:906:e295:b0:a51:95f1:14fe with SMTP id gg21-20020a170906e29500b00a5195f114femr129985ejb.13.1712290597127; Thu, 04 Apr 2024 21:16:37 -0700 (PDT) MIME-Version: 1.0 References: <20240405013547.1859126-1-yosryahmed@google.com> <20240405013547.1859126-3-yosryahmed@google.com> <20240405024459.GE641486@cmpxchg.org> In-Reply-To: <20240405024459.GE641486@cmpxchg.org> From: Yosry Ahmed Date: Thu, 4 Apr 2024 21:15:59 -0700 Message-ID: Subject: Re: [PATCH v1 2/5] mm: zswap: refactor limit checking from zswap_store() To: Johannes Weiner Cc: Andrew Morton , Nhat Pham , Chengming Zhou , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 17A7720005 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: icom995aszhffsuq4z8xmxmy7mxzxbzi X-HE-Tag: 1712290598-297216 X-HE-Meta: U2FsdGVkX19vSiytXcTzj5BGLPD+HB43EYuRkPTM+v4NHYz9FaH0EMs0DTQZtAxAWtBSifEaMx69WAV4Rhu4SM4s1Hg0xhAWEv39IC7aPFMAgcKMO1ZDGNckolz5CEE1qcnjFQC91/qKc7wJXppl/BErjaI/RAEa+dyznelU+v/GeLzV+SO5FD7BIuB9F01vAIool3/L7J3POPR19GiALObn+cgjBpjvXSNQgZ6vUoSbMcqdgKn7xLGiTtf8AnA+U5D9eOuJTMbZgqv0VRUKOIRxgPUvrjBuWDEZYEg9GctQnUBABHXuu7kvtuI1vvd2ZFadvNHYdbdxgLHZzCkEWV0IU2USi+99ku0juE/hPCH10k4VaRKFSq7OpmXfSHhHDTneGgu4hGLwVCTONNCa6rF9aKF9atV/ZxhDze/T3YezZZ67Hmn+fLnXtbi4fleOzP3EtxhklURNZL37vdX7a/0FWu6BYkky5c+00/rhQGYD9VS4hJQPFSL7RFK8/U69AKqNHm5BJ5+KA2mSFeKqduCEVS9aINkJ5sBHwF3Yrt1zVeOwIpykUoVQounX7FYlDjztBr7ViWQPG1uSsbO5tcZ3Of7TCEoH5MGEAlHPCUXTRyS3fvHHB8OCa9zRcJqZWStisbdaoyKfM05+OOj8plRBowWO0R8Qf955Z1dNlnP27smvDZLYj876y8zcdjP/E3yEWU2wrZb0ydE9vHRbZCVscl6G1vYIRt7Vvwm3bkiUsRFvnIfhNFg7oDO/vJ8Ue/rGKI1BevSZ14Ep5quk0fRNV2AhRDfcgLnYCAiYW0v/iak9Fv2mqwYl7YRykI+i3VfjdwrbxMdqJ8+RYRLwgxDz5tCm+NnZlLyEWPelEFqWp/aybWwhV+gb2RgtvlLJJHy8WNfaOaAfblBTOj0mrUWQ8AKbdrHEf8gz2c1ICWZm1KXcxGNWUl+Ky3lHQnhKgtEIQN6AQbLawfRzlQ5 H/x+ikmn mJFDvyWLQIPdmlhcioZgYR8SfCQ7DTrSXpj2bLZ34La58p9WscrWbT1frBl6F64efN3AgISfWaIOYj0m5gxs7Yp2ealMkBPzOEvMTSuhdXMZGLZFFuwLIhEdZWByQ2DVVlEJFXaqfFM4XzRssLVG9oDwdfzFUdbihVPaZsNuXUEGpBfW6giQQdCFP53IYz/qaHrRdNMVlfY+G3eC66H9+b+aOReHpuO0UT+Fg8KrWFM823FLQv/bjwEQiKlaglTPljIy5+yEn9h4z4GQZ7d98AaLWWIhIUNgzTT9EfyV8F7W54GBsH3PA0o3HAVqU7LgZ3uO1rQDQxcxjBBZRG1jC5FKRJg8enuldODsf 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 Thu, Apr 4, 2024 at 7:45=E2=80=AFPM Johannes Weiner = wrote: > > On Fri, Apr 05, 2024 at 01:35:44AM +0000, Yosry Ahmed wrote: > > Refactor limit and acceptance threshold checking outside of > > zswap_store(). This code will be moved around in a following patch, so > > it would be cleaner to move a function call around. > > > > Signed-off-by: Yosry Ahmed > > --- > > mm/zswap.c | 32 ++++++++++++++++---------------- > > 1 file changed, 16 insertions(+), 16 deletions(-) > > > > diff --git a/mm/zswap.c b/mm/zswap.c > > index 1cf3ab4b22e64..fba8f3c3596ab 100644 > > --- a/mm/zswap.c > > +++ b/mm/zswap.c > > @@ -1391,6 +1391,21 @@ static void zswap_fill_page(void *ptr, unsigned = long value) > > memset_l(page, value, PAGE_SIZE / sizeof(unsigned long)); > > } > > > > +static bool zswap_check_full(void) > > +{ > > + unsigned long cur_pages =3D zswap_total_pages(); > > + unsigned long thr =3D zswap_accept_thr_pages(); > > I know this looks neater, but it adds an extra division to the very > common path where the limit hasn't been reached yet. It should really > stay inside the branch. I assumed the compiler is smart enough to do the division only when necessary, but I didn't check tbh. > > Another option could be to precalculate the max and the accept > threshold in absolute pages whenever their respective module param > changes. That would eliminate both divisions from the hot path. Yeah, that's better and cleaner. I will do that in the next version. Thanks! > > > + unsigned long max_pages =3D zswap_max_pages(); > > + > > + if (cur_pages >=3D max_pages) { > > + zswap_pool_limit_hit++; > > + zswap_pool_reached_full =3D true; > > + } else if (zswap_pool_reached_full && cur_pages <=3D thr) { > > + zswap_pool_reached_full =3D false; > > + } > > + return zswap_pool_reached_full; > > +} > > + > > bool zswap_store(struct folio *folio) > > { > > swp_entry_t swp =3D folio->swap;