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 C6744C54E67 for ; Wed, 27 Mar 2024 22:33:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 231136B0096; Wed, 27 Mar 2024 18:33:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1E1306B009A; Wed, 27 Mar 2024 18:33:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0A8D76B009D; Wed, 27 Mar 2024 18:33:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id DE5216B0096 for ; Wed, 27 Mar 2024 18:32:59 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 4EFC3160A22 for ; Wed, 27 Mar 2024 22:32:59 +0000 (UTC) X-FDA: 81944270478.15.1EB56EC Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by imf09.hostedemail.com (Postfix) with ESMTP id 6AD6B14001C for ; Wed, 27 Mar 2024 22:32:57 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=L5BpAAOk; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf09.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711578777; 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=gbcd+PIe6N4CDw4yRlMY0za1InBY4i1/TiiyWvtl4Fg=; b=egmQuXOiFLHHvt0lKT8S0KGm2JPr3CD4uP75b040+wHXV2s23+bPAYvPjEOXtItRaQ1N1V Oh8z7Jq3X9MX24w9kz1CcYPh6sPs6k3fV+Yzk4nw+Jk5waTzY0iv/7474hNm0Ro//FIG41 550ItDYgN2NqpLj4OohPMVFTwuyPINY= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=L5BpAAOk; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf09.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711578777; a=rsa-sha256; cv=none; b=geS7pNeYWnfSf9KTR8El0/ukQ7VHwI5b8MmtNkJR6Wu87UzTycBTML9wOsZaeMRbbqyQ/8 9gJXQVeaZUUkLkavmppI586VRW8hcPajpwwd8CNW68ehmVo09Vg9+W8eGtJf+TUDgdbHlP xnoUvalvN29HFSFwA5buXB3NCibdkoM= Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-a4734ae95b3so41250366b.0 for ; Wed, 27 Mar 2024 15:32:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1711578776; x=1712183576; 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=gbcd+PIe6N4CDw4yRlMY0za1InBY4i1/TiiyWvtl4Fg=; b=L5BpAAOkVvGTd9FXHSjNN4gmPSljfx+me52i+z8I5Soyztrhoy4X3Ep33Ls4tX/y4/ F2krfXfURndPXL86tYM6mQXNoBDPJcV9lZiIDQoYXJcmnlqNQSk47gKEYDAz70EJGvXZ RLu1/nUrcV5mAThfqpUlCaOQB0/p2fsSbJ5HspAdyBtNiQvkWUnvIXNtwHl7KpLsgHsd S3hq4prcCLp7dC4hSJhkUkGC9OtyjTxSdvIYywNfN+2WsTn7vTM5fCV4zNyRO2JJrJ7/ aMw+2vBaIaJigiMmvGFWPMxDErNxGhlJBMquZ81YYVNsG6bkTwT0BytUXBvx12riOVfK MQbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711578776; x=1712183576; 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=gbcd+PIe6N4CDw4yRlMY0za1InBY4i1/TiiyWvtl4Fg=; b=HfO8MiW5mPqrpfIfdbonlvm2TStkPF/mlKVvtR4xKTvKDqf7eO87WH+5lFnTgckZlY oY3HxV/HfeHORKxR6uLFoD/UodUS2OryiUfKwGScc5TTqE2zyy6jO50Uq8y6KfwQqoh9 z0iAnCZzJp0dCA6WFsrpCxzbmjOl56Ihmb9p988Z6LYHcCbjApTPLUfVxG2MSoecUQVE D1MXM077gLUlAxgo7aTLvYR4tLzR1fx4gKjX5f36Z6+3frN9+4GwhKK4UBpip0lQdPrf OKxjvc+/gNRoBQ/mpHOEVmv9reIeB4U44a3Q60PQNmEf1Gw4OH/jyP4DMWR7OhjljNix R3Rw== X-Forwarded-Encrypted: i=1; AJvYcCXoYUVsC4Y9VGxWjM47fVoWjD+fLMyM56Jn4SS3zHEb9Ihmv96vhFGDiqLiemGExhJ3jFJoe15qLTB0BVUK3GaZE9M= X-Gm-Message-State: AOJu0Yy1fO3ziifQYvYpje7IdpFzvKXygzDGcnQ1BJEPGFQG8JjSp0mp v+hBraKWmrrmyl9pdDB4ubOEzVgnVDrBEV4w03zb281GnMNJn1r2Tmb2bmbOX8E9DJt3LLBxDdP jRuWluYC/gfHgDzKGWOADzAJaEFGc3rPUwMWN X-Google-Smtp-Source: AGHT+IGA8qE9wQIsqVFqSUZImJGYLwiSCRayTaYDwN9BZH8LNDUx5Enn+51vzaGQm+Ek47WzMKwK4q3yATeuJ/ARmRw= X-Received: by 2002:a17:906:3c4c:b0:a46:ecdd:d1f3 with SMTP id i12-20020a1709063c4c00b00a46ecddd1f3mr488077ejg.56.1711578775819; Wed, 27 Mar 2024 15:32:55 -0700 (PDT) MIME-Version: 1.0 References: <20240325235018.2028408-1-yosryahmed@google.com> <20240325235018.2028408-5-yosryahmed@google.com> In-Reply-To: From: Yosry Ahmed Date: Wed, 27 Mar 2024 15:32:19 -0700 Message-ID: Subject: Re: [RFC PATCH 4/9] mm: zswap: move more same-filled pages checks outside of zswap_store() To: Chengming Zhou Cc: Andrew Morton , Johannes Weiner , Nhat Pham , 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: 6AD6B14001C X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: ckaxkaxsemyfdtsozs3sfe5ioxi8gxnf X-HE-Tag: 1711578777-794065 X-HE-Meta: U2FsdGVkX193rXvk67ehw2xkUg5rrgcFVy1H42Hb9L4cD8Vs3JadLumVg/378Rd59aMYK1szDqtTsI70bjkVlNQytQOZ8yr/s1RgZXGwrV7nQdLExEGTZ1PSXd2HZfHovNNauhLDOVb/qdGn4ThyintinATzjDr+/c+JghMiATvdwnSjpMCQVMogWXNe+J7oIHwGOH5xPK7703dqsWORdDIrOvhKNt46XOe3oaOtXcwv9Rhow/5hGGyZmWg9H2leBUtyHFdz8mBmkcVbTZBha1UVv8X8KwaMyvBjFYWD/a7oVoipmgy8NNXIOdJbvAU3Ss2IrkOmOmXBgNSPt7dft6ZiYfmFuiZhyDZGUhqLFL8tIdY+HHxnQxYeWvcF2zejzoU9f2l2LJVoTSMi/lFYejQw1vYLvCnmYVcvrwcjyo0ECReix4MB9zXC4WumBILcp6eXfxvbgWGqK+h8KPZXExHo5HHiZ6rf77FivwJVe3+LF9uBemXRDk6J1wiLD6fCXk1D7irebin1jGdvuhKmkQlYJo/mJg9e8mkz6S/k7Av0s0aHgS7Sx/fDlfzO3G84qN2elijBuUgWFLR8H6ucByICobFmzDsdlV4q+MdeQDBqFnT6UuE9vDoohYZ9RaLQ3bYtgEK3yRzQNqd5NScu4l7y/11t3oFNEnNogiiwJsXtwGCFwec55ilFxT8XK9N6XHlz7b1oL14sw28intaYrSjh7wHeQG3CR4NcWgMXo6Ss2of75A0obfwIK2KfCDTOAAohdMkYSObwSNFuM/YW/WK7Kgmt0ohMHfsJgI4Tf0BMAAGsf6d2ifRi7I133nz36BaiNRs7sJBHDvd1exT0njk99V0kF1pTBkSWpoHEGP2V9+Gr6EX8y9OuTBBL1tUvLfEc2ctXtYlI6/264HSzg2MkDzE2jw0YIUa/BrV3WnEQyCoH2eGjtKvpkXlxlqP2f0h4aQc/F0wf3szVa13 fJjgp3ip OJQ7jmwtoyC8aoDk0wxbfmOfURmJ5Kx3gff2xBY0DcviLmImSRTDoNzIpvYIcgZ8Hb3a9x0wHDpNNEA5JgXorgBA/e2UIeOW+vN1fK81FNpq/uCDuQ7MGkJgTIZq39/W+k3EEh1bh+7zHOLMdwvCPIEFLZVD/612AuAuQZzXBF6jS15/fswMk3YSZiVGpagL7ajUBrFxk4XwF6snZGyQNkWX/VfIVctpqR7edI8Pat3/37Hud2sZFIY2llmV/Iq3rs5egZ+w3aywfRNuRDT72uuQd/0ic8rx/Vlxnfp3ecvzLodJJi7LxrCZSdFwihKKGaoQ25/A+Ag5DA9Y= 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 Tue, Mar 26, 2024 at 7:39=E2=80=AFPM Chengming Zhou wrote: > > On 2024/3/26 07:50, Yosry Ahmed wrote: > > Currently, zswap_store() check zswap_same_filled_pages_enabled, kmaps > > the folio, then calls zswap_is_page_same_filled() to check the folio > > contents. Move this logic into zswap_is_page_same_filled() as well (and > > rename it to use 'folio' while we are at it). > > > > This makes zswap_store() cleaner, and makes following changes to that > > logic contained within the helper. > > > > Signed-off-by: Yosry Ahmed > > LGTM with one comment below: > > Reviewed-by: Chengming Zhou > > > --- > > mm/zswap.c | 45 ++++++++++++++++++++++++--------------------- > > 1 file changed, 24 insertions(+), 21 deletions(-) > > > > diff --git a/mm/zswap.c b/mm/zswap.c > > index 6b890c8590ef7..498a6c5839bef 100644 > > --- a/mm/zswap.c > > +++ b/mm/zswap.c > > @@ -1385,26 +1385,36 @@ static void shrink_worker(struct work_struct *w= ) > > } while (zswap_total_pages() > thr); > > } > > > > -static int zswap_is_page_same_filled(void *ptr, unsigned long *value) > > +static bool zswap_is_folio_same_filled(struct folio *folio, unsigned l= ong *value) > > { > > unsigned long *page; > > unsigned long val; > > unsigned int pos, last_pos =3D PAGE_SIZE / sizeof(*page) - 1; > > + bool ret; > > > > - page =3D (unsigned long *)ptr; > > + if (!zswap_same_filled_pages_enabled) > > + return false; > > + > > + page =3D kmap_local_folio(folio, 0); > > val =3D page[0]; > > > > - if (val !=3D page[last_pos]) > > - return 0; > > + if (val !=3D page[last_pos]) { > > + ret =3D false; > > + goto out; > > + } > > > > for (pos =3D 1; pos < last_pos; pos++) { > > - if (val !=3D page[pos]) > > - return 0; > > + if (val !=3D page[pos]) { > > + ret =3D false; > > nit: ret can be initialized to false, so > > > + goto out; > > + } > > } > > > > *value =3D val; > > - > > - return 1; > > + ret =3D true; > > only need to set to true here. I didn't bother improving the code here because patch 6 will replace it anyway, but I will do that in the next version anyway, might as well. Thanks!