All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kefeng Wang <wangkefeng.wang@huawei.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: <linux-mm@kvack.org>, Chengming Zhou <chengming.zhou@linux.dev>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Kairui Song <kasong@tencent.com>, Nhat Pham <nphamcs@gmail.com>,
	Yosry Ahmed <yosryahmed@google.com>,
	Kefeng Wang <wangkefeng.wang@huawei.com>
Subject: [PATCH v2 2/4] mm: zswap: reuse zswap_invalidate() in zswap_store() check_old path
Date: Thu, 10 Sep 2026 17:54:47 +0800	[thread overview]
Message-ID: <20260910095449.715183-3-wangkefeng.wang@huawei.com> (raw)
In-Reply-To: <20260910095449.715183-1-wangkefeng.wang@huawei.com>

The check_old path in zswap_store() open-codes the same per-slot
xarray lookup and entry free that zswap_invalidate() already does.
Reuse zswap_invalidate() whose xa_empty() check skips empty per-area
trees to avoid unnecessary xarray lookup and code duplication.

Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 mm/zswap.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/mm/zswap.c b/mm/zswap.c
index 420c405d0402..2c06e4e0e130 100644
--- a/mm/zswap.c
+++ b/mm/zswap.c
@@ -1549,15 +1549,9 @@ bool zswap_store(struct folio *folio)
 	if (!ret) {
 		unsigned type = swp_type(swp);
 		pgoff_t offset = swp_offset(swp);
-		struct zswap_entry *entry;
-		struct xarray *tree;
-
-		for (index = 0; index < nr_pages; ++index) {
-			tree = swap_zswap_tree(swp_entry(type, offset + index));
-			entry = xa_erase(tree, offset + index);
-			if (entry)
-				zswap_entry_free(entry);
-		}
+
+		for (index = 0; index < nr_pages; ++index)
+			zswap_invalidate(type, offset + index);
 	}
 
 	return ret;
-- 
2.55.0



  parent reply	other threads:[~2026-09-10  9:55 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-10  9:54 [PATCH v2 0/4] mm: zswap: misc optimizations Kefeng Wang
2026-09-10  9:54 ` [PATCH v2 1/4] mm: zswap: pass type and offset to zswap_invalidate() directly Kefeng Wang
2026-09-10 10:26   ` Yosry Ahmed
2026-09-10 17:57   ` Nhat Pham
2026-09-10 19:27   ` Johannes Weiner
2026-09-10  9:54 ` Kefeng Wang [this message]
2026-09-10 10:27   ` [PATCH v2 2/4] mm: zswap: reuse zswap_invalidate() in zswap_store() check_old path Yosry Ahmed
2026-09-10 19:27   ` Johannes Weiner
2026-09-10  9:54 ` [PATCH v2 3/4] mm: zswap: avoid unnecessary xarray lookup in zswap_store() Kefeng Wang
2026-09-10 10:28   ` Yosry Ahmed
2026-09-10  9:54 ` [PATCH v2 4/4] mm: zswap: skip zswap_invalidate() in swap_range_free() when zswap is unused Kefeng Wang
2026-09-10 10:29   ` Yosry Ahmed
2026-09-10 11:10     ` Kefeng Wang
2026-09-10 11:12       ` Yosry Ahmed

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=20260910095449.715183-3-wangkefeng.wang@huawei.com \
    --to=wangkefeng.wang@huawei.com \
    --cc=akpm@linux-foundation.org \
    --cc=chengming.zhou@linux.dev \
    --cc=hannes@cmpxchg.org \
    --cc=kasong@tencent.com \
    --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.