From: Chengming Zhou <chengming.zhou@linux.dev>
To: Yosry Ahmed <yosryahmed@google.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
Nhat Pham <nphamcs@gmail.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 5/5] mm: zswap: remove same_filled module params
Date: Wed, 10 Apr 2024 10:31:04 +0800 [thread overview]
Message-ID: <a340fb1a-7225-42d6-8a66-c6ac63bccaaa@linux.dev> (raw)
In-Reply-To: <20240405053510.1948982-6-yosryahmed@google.com>
On 2024/4/5 13:35, Yosry Ahmed wrote:
> These knobs offer more fine-grained control to userspace than needed and
> directly expose/influence kernel implementation; remove them.
>
> For disabling same_filled handling, there is no logical reason to refuse
> storing same-filled pages more efficiently and opt for compression.
> Scanning pages for patterns may be an argument, but the page contents
> will be read into the CPU cache anyway during compression. Also,
> removing the same_filled handling code does not move the needle
> significantly in terms of performance anyway [1].
>
> For disabling non_same_filled handling, it was added when the compressed
> pages in zswap were not being properly charged to memcgs, as workloads
> could escape the accounting with compression [2]. This is no longer the
> case after commit f4840ccfca25 ("zswap: memcg accounting"), and using
> zswap without compression does not make much sense.
>
> [1]https://lore.kernel.org/lkml/CAJD7tkaySFP2hBQw4pnZHJJwe3bMdjJ1t9VC2VJd=khn1_TXvA@mail.gmail.com/
> [2]https://lore.kernel.org/lkml/19d5cdee-2868-41bd-83d5-6da75d72e940@maciej.szmigiero.name/
>
> Signed-off-by: Yosry Ahmed <yosryahmed@google.com>
> Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Nice cleanup!
Reviewed-by: Chengming Zhou <chengming.zhou@linux.dev>
Thanks.
> ---
> mm/zswap.c | 19 -------------------
> 1 file changed, 19 deletions(-)
>
> diff --git a/mm/zswap.c b/mm/zswap.c
> index 13869d18c13bd..b738435215218 100644
> --- a/mm/zswap.c
> +++ b/mm/zswap.c
> @@ -140,19 +140,6 @@ static const struct kernel_param_ops zswap_accept_thr_param_ops = {
> module_param_cb(accept_threshold_percent, &zswap_accept_thr_param_ops,
> &zswap_accept_thr_percent, 0644);
>
> -/*
> - * Enable/disable handling same-value filled pages (enabled by default).
> - * If disabled every page is considered non-same-value filled.
> - */
> -static bool zswap_same_filled_pages_enabled = true;
> -module_param_named(same_filled_pages_enabled, zswap_same_filled_pages_enabled,
> - bool, 0644);
> -
> -/* Enable/disable handling non-same-value filled pages (enabled by default) */
> -static bool zswap_non_same_filled_pages_enabled = true;
> -module_param_named(non_same_filled_pages_enabled, zswap_non_same_filled_pages_enabled,
> - bool, 0644);
> -
> /* Number of zpools in zswap_pool (empirically determined for scalability) */
> #define ZSWAP_NR_ZPOOLS 32
>
> @@ -1421,9 +1408,6 @@ static bool zswap_is_folio_same_filled(struct folio *folio, unsigned long *value
> unsigned int pos, last_pos = PAGE_SIZE / sizeof(*page) - 1;
> bool ret = false;
>
> - if (!zswap_same_filled_pages_enabled)
> - return false;
> -
> page = kmap_local_folio(folio, 0);
> val = page[0];
>
> @@ -1512,9 +1496,6 @@ bool zswap_store(struct folio *folio)
> goto store_entry;
> }
>
> - if (!zswap_non_same_filled_pages_enabled)
> - goto freepage;
> -
> /* if entry is successfully added, it keeps the reference */
> entry->pool = zswap_pool_current_get();
> if (!entry->pool)
prev parent reply other threads:[~2024-04-10 2:31 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-05 5:35 [PATCH v2 0/5] zswap same-filled and limit checking cleanups Yosry Ahmed
2024-04-05 5:35 ` [PATCH v2 1/5] mm: zswap: always shrink in zswap_store() if zswap_pool_reached_full Yosry Ahmed
2024-04-05 5:35 ` [PATCH v2 2/5] mm: zswap: calculate limits only when updated Yosry Ahmed
2024-04-05 15:26 ` Johannes Weiner
2024-04-05 18:43 ` Yosry Ahmed
2024-04-08 7:54 ` David Hildenbrand
2024-04-08 8:07 ` Yosry Ahmed
2024-04-09 19:32 ` David Hildenbrand
2024-04-10 0:52 ` Yosry Ahmed
2024-04-12 19:48 ` David Hildenbrand
2024-04-13 1:05 ` Yosry Ahmed
2024-04-15 15:10 ` David Hildenbrand
2024-04-15 18:30 ` Yosry Ahmed
2024-04-15 19:15 ` David Hildenbrand
2024-04-15 19:17 ` Yosry Ahmed
2024-04-05 20:23 ` kernel test robot
2024-04-05 20:29 ` Yosry Ahmed
2024-04-05 5:35 ` [PATCH v2 3/5] mm: zswap: refactor limit checking from zswap_store() Yosry Ahmed
2024-04-05 19:57 ` Nhat Pham
2024-04-10 2:30 ` Chengming Zhou
2024-04-05 5:35 ` [PATCH v2 4/5] mm: zswap: move more same-filled pages checks outside of zswap_store() Yosry Ahmed
2024-04-05 5:35 ` [PATCH v2 5/5] mm: zswap: remove same_filled module params Yosry Ahmed
2024-04-05 19:58 ` Nhat Pham
2024-04-10 2:31 ` Chengming Zhou [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a340fb1a-7225-42d6-8a66-c6ac63bccaaa@linux.dev \
--to=chengming.zhou@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nphamcs@gmail.com \
--cc=yosryahmed@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.