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 B6A20C54E58 for ; Mon, 25 Mar 2024 23:50:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 236816B0087; Mon, 25 Mar 2024 19:50:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 197E16B0088; Mon, 25 Mar 2024 19:50:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F2CB76B0089; Mon, 25 Mar 2024 19:50:27 -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 CC7E66B0087 for ; Mon, 25 Mar 2024 19:50:27 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 759F9C018F for ; Mon, 25 Mar 2024 23:50:27 +0000 (UTC) X-FDA: 81937208094.17.7F792B9 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) by imf05.hostedemail.com (Postfix) with ESMTP id B6978100003 for ; Mon, 25 Mar 2024 23:50:25 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=T2sWVUu7; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf05.hostedemail.com: domain of 3wA0CZgoKCBsPFJIP18D547FF7C5.3FDC9ELO-DDBM13B.FI7@flex--yosryahmed.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3wA0CZgoKCBsPFJIP18D547FF7C5.3FDC9ELO-DDBM13B.FI7@flex--yosryahmed.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711410625; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Dd0Yn1LXqAraa72sbpCkcMKeXtgN9BdSqsW0A73YyKg=; b=Tu2yefUqA+Tl2PXF80YwJrPsjxIAYZhqGKRcFIi6Z+7wV8DbFLKwv1q+pO5U0WtF5fHmd4 BLDqlwEDNpyRb3Szx3SSmnt0dE+vnVda8fPqeLciDcHjPlyOT2PfEjK+JbdRcX4cl0bvn6 LnxJ+qpsASnTtE7WU78fDOQY0vK032Q= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=T2sWVUu7; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf05.hostedemail.com: domain of 3wA0CZgoKCBsPFJIP18D547FF7C5.3FDC9ELO-DDBM13B.FI7@flex--yosryahmed.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3wA0CZgoKCBsPFJIP18D547FF7C5.3FDC9ELO-DDBM13B.FI7@flex--yosryahmed.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711410625; a=rsa-sha256; cv=none; b=cFXKlkpolkR3UGVW8UfvNWYEZHkcziD9thekZW25sa+lwzaHLXuXtePMwWzftdphXZut2I XrGDuakewa+p5+jmYrpRLyupegUq2cLdcQ723C4qpfNZmvrsLv3zYUb0T/AeiwKRKiyZHI 1p2agqed2H10Vqtry0rlJ2ERGyldBEQ= Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-60ccc3cfa39so74340967b3.2 for ; Mon, 25 Mar 2024 16:50:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1711410625; x=1712015425; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=Dd0Yn1LXqAraa72sbpCkcMKeXtgN9BdSqsW0A73YyKg=; b=T2sWVUu7zSyUjXaWBN+FAqeAg/syrm/k5XzKkQLRbQOg6ewW8HDhSbluuGuQAfxOa/ xpNX3ITy9+f2lBxZYmiyg1Vmie86xlbpIFv1T1EGYSWWgqXlpJQW93znOnD1wNjphNlz B7dGdP8jE0GELA4LLbdkuNFLvecJU8WhdC0ZCeEQb+sN0AEd3G0pCuWpnf0pgCco22hJ 525NMZFxN8Hq7QmCVzy1PypFwKBPO5XWTAbXympmgGwPUezAWWKNmDOwbXapg36ruYOM 08pLYchz7mA24p3ifAD5LE65MYpNpe6sd4hpuzYqLmlrSiBw+X7OgGlMUfWiW8haA3zr HpOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711410625; x=1712015425; h=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=Dd0Yn1LXqAraa72sbpCkcMKeXtgN9BdSqsW0A73YyKg=; b=r+H99OAsAXh2VvORJXtbykS0hHnfzBDdqw3+JRocHQtqhCtVISXzhy56S7tHTIsL3s 9I/QUS6rTEu2sEuSHSQl2XBwOLx9vXKdf8h2PCUQnnPm5Un3/mymUdf4mf2+LNoY64wH ashSWuGpl2F7Zt74aVqMlzkonuMxJrr5VLOgTEg0e/BZE/U7iOFxNnYImkrg2iIAlpAP 4GJr3ZC8bVydQITbbZU2ZQp/+YH6xm7vm0g3vrOWdOe87gXC1B3L6avdgrWH0wDLArDw I5j55wwmAbzRUeFYY/e0zei/2k2v3kfQbwpKlIFxSkvv5tSvdnOSMO7+nZaWvk8Xhll6 5D2Q== X-Forwarded-Encrypted: i=1; AJvYcCXbVtIu3hWlnjXDzHqq7edIxz3PAEWkU+Y29EouDr8GxLS7wnfMR9WRRIrRiPHXHyzmTjdTsV3oRKWLjLArzPYJmx4= X-Gm-Message-State: AOJu0YzyH3aqRFnvI+hZECrDuC6yM5l/9Ge5R4AptIxGAydBAKrvUGif 46t9tJP8drFwqqonwTulLymWQ+7Ayt5HGBpvPyIjG8l9kBxu+l7C6qr+ZPsfyZWeNdb9eerkBR1 sz55VE4oWUfe8WgOiZQ== X-Google-Smtp-Source: AGHT+IHM4PjIMqVasHvxcW/NHELy1n3EZw0GsOSiULCSozqmucZP5yLYhHluyhz301rMxFhkk5EZKcifeTwjvilx X-Received: from yosry.c.googlers.com ([fda3:e722:ac3:cc00:20:ed76:c0a8:29b4]) (user=yosryahmed job=sendgmr) by 2002:a0d:fe44:0:b0:611:a84c:fef2 with SMTP id o65-20020a0dfe44000000b00611a84cfef2mr165827ywf.10.1711410624906; Mon, 25 Mar 2024 16:50:24 -0700 (PDT) Date: Mon, 25 Mar 2024 23:50:11 +0000 In-Reply-To: <20240325235018.2028408-1-yosryahmed@google.com> Mime-Version: 1.0 References: <20240325235018.2028408-1-yosryahmed@google.com> X-Mailer: git-send-email 2.44.0.396.g6e790dbe36-goog Message-ID: <20240325235018.2028408-4-yosryahmed@google.com> Subject: [RFC PATCH 3/9] mm: zswap: refactor limit checking from zswap_store() From: Yosry Ahmed To: Andrew Morton Cc: Johannes Weiner , Nhat Pham , Chengming Zhou , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yosry Ahmed Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: B6978100003 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: mr7ufd1qkcni7g96js6jb7gn4s1gz1t7 X-HE-Tag: 1711410625-478988 X-HE-Meta: U2FsdGVkX1+JOMrz557j+SoKrrD1RNAk+TBr2BJR6VfgMPbbyixZym7PWRMfMz4svTMPcrIWs7ZY4vLsMaV1xZlD4lzpjz+0m5/MyrS3CiUejXOo7KWcbx0AZouwwNYV2umtW5+deyOP5skyKUkm4SNO+um9riObw6UKk5pBwuBKalFigCX9xnjTuZ0A5Wh8KWheHKBRmVMSjFBPlUn4DE1UwFH3p06xFfDwyB/CkcGB6XgCDkEo3aic0mmwd4bxz6znvBB9ULEr7ZfQsY/UXk6MKec9SwpOxsLOo4Kg+ZcooZL8ZqJkbdNEoJY7fh7UMt8ID92zDyFWI4xXgzm4fUjC2Da4nvF5gcPgQoFEA2oK33lWG3oLNjdpAd2ZvacY1I9YeA/acOTQuk87i+QGzR7JQa+xgV+qsC/P3v7Wu7VeT6HJlsr/+DohTTZT/AQUM4NQ5Rfjgb0WrqHKrPcqkbSGFEVx6MeT/LA8C2AbRPs3vNyIcDQxFdUYvUlg640UV/YYt2JykXc6KTPJc1hpGCvibdWWN9vbK4vlni6w6lKEeslkkl5WLMvs+7wEpRG2aAJ2xp201+xWjPkf0PyXPjgc1PsvtFOZQhLGgFujmoMEHiJ6TrnbPgOP/703NFsfBPT64nJbnhubINDsBRZFzyz75bCUmY6vWJGiaQYcYxdwZsP1ZgM4Bvwz1MQEbbitQtMG+637Cszz90BwuKypOOU+Z40//VqxzYQ6WXS3d78JiToNXJ4QzOF/g7OZUdzqiA7Y2wwgv8xQxRffrMvFPIocMHg3f9SAE5T00xKANd22sVePgUsQlCwn7fzDdU6WBkj6GgbMEagTlGcXP59HJrXS7Hl4ajGulVx3/O139H0t80YjYbnPxqSZT64zrUOeo/vABzU3VLqOOuBLTie5eLXXHDCq0u31BOYcsNeLghcDOgvSCLG7OzT4Tggy6tmAqwA3u9itsVYkInOb+HB XEkr2hdU pU03+1h6IKBdsjIeQkSTh324sSXTkE5R2zkRG0a1uyDWoq/Kgr3OW1W0oKe6ssZNwdRUINPJcGWwF5aXoWDpxw+QyPaBJN/7RHpO272FS0iOZqto/9Kyl4WGWJvIIOdYxEmHy4ntivPbfKL3w0tL5lZfndO5tkfUC3s4/2rRHOVdQp5IdS1F2OSpVw51COU7kpeO4oFCOn9BKF1WbH0jQITMeXoeLL4QLlR77upkl3fm74hSPrMxvEUDNQND0g+u2gcOzSP2XyRJ9JUdImKEuPmEgqh3XNZepy5qReTW0GTZevJAGCaOYrckbfo50Pd15d/2ojlFhN5Cspo7R0zYAiy8emIMPC4/UOiWOPpEznKymALHg3roXzoo9XmaUoPIkPkaaQKg/93zDDBTfZKA0sCLWIND/6dPEQwaRmK/ygj10js+x4xr5g1yBifTKw9VZQmmaR8em2q7uAM3HdY1+lM6qj8HK43JThGCuUO6jE6okxPulxuaYFY574zI13X5qvA2mbkY9CA+UOq9sMk7IUxfdONq3zf6hz1nRyHSEvTgE8wiTpCbL19EbEP/PPaSOrVgfFX/hggjuzxPe1RC+yTfaTD/LVjTrcMH9N9Z8EqLPAv+KyEid3BeRyoIk7lKmzgbHFRRWQzkM14IP1MCnF0wZgAGPVNwvPdNhUz1fWVa2eevApB9OVkRzLD47wSzc+yDiqbAInF/k0TC/dSNVwy/boA== 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: 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 ff1975afb7e3d..6b890c8590ef7 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -1415,6 +1415,21 @@ static void zswap_fill_page(void *ptr, unsigned long value) memset_l(page, value, PAGE_SIZE / sizeof(unsigned long)); } +static bool zswap_check_limit(void) +{ + unsigned long cur_pages = zswap_total_pages(); + unsigned long thr = zswap_accept_thr_pages(); + unsigned long max_pages = zswap_max_pages(); + + if (cur_pages >= max_pages) { + zswap_pool_limit_hit++; + zswap_pool_reached_full = true; + } else if (zswap_pool_reached_full && cur_pages <= thr) { + zswap_pool_reached_full = false; + } + return !zswap_pool_reached_full; +} + bool zswap_store(struct folio *folio) { swp_entry_t swp = folio->swap; @@ -1422,7 +1437,6 @@ bool zswap_store(struct folio *folio) struct xarray *tree = swap_zswap_tree(swp); struct obj_cgroup *objcg = NULL; struct mem_cgroup *memcg = NULL; - unsigned long max_pages, cur_pages; struct zswap_entry *entry; VM_WARN_ON_ONCE(!folio_test_locked(folio)); @@ -1446,22 +1460,8 @@ bool zswap_store(struct folio *folio) mem_cgroup_put(memcg); } - /* Check global limits */ - cur_pages = zswap_total_pages(); - max_pages = zswap_max_pages(); - - if (cur_pages >= max_pages) { - zswap_pool_limit_hit++; - zswap_pool_reached_full = true; + if (!zswap_check_limit()) goto reject; - } - - if (zswap_pool_reached_full) { - if (cur_pages > zswap_accept_thr_pages()) - goto reject; - else - zswap_pool_reached_full = false; - } /* allocate entry */ entry = zswap_entry_cache_alloc(GFP_KERNEL, folio_nid(folio)); -- 2.44.0.396.g6e790dbe36-goog