From: Chris Li <chrisl@kernel.org>
To: Yosry Ahmed <yosryahmed@google.com>
Cc: Zhongkun He <hezhongkun.hzk@bytedance.com>,
Andrew Morton <akpm@linux-foundation.org>,
Johannes Weiner <hannes@cmpxchg.org>,
Nhat Pham <nphamcs@gmail.com>,
Seth Jennings <sjenning@redhat.com>,
Dan Streetman <ddstreet@ieee.org>,
Vitaly Wool <vitaly.wool@konsulko.com>,
linux-mm <linux-mm@kvack.org>,
LKML <linux-kernel@vger.kernel.org>, Ying <ying.huang@intel.com>
Subject: Re: [PATCH] mm:zswap: fix zswap entry reclamation failure in two scenarios
Date: Thu, 16 Nov 2023 12:11:54 -0800 [thread overview]
Message-ID: <CAF8kJuPonfuOtipdifXwBny2H7cy6m6BL8mWFVXzfb9JSdYq3Q@mail.gmail.com> (raw)
In-Reply-To: <CAJD7tkY8SwROmNEaBAhkS4OKj33g-6fHsKFeYKW3afT+yAbvxA@mail.gmail.com>
Hi Yosry,
On Tue, Nov 14, 2023 at 9:16 AM Yosry Ahmed <yosryahmed@google.com> wrote:
> > 1)The swap entry has been freed, but cached in swap_slots_cache,
> > no swap cache and swapcount=0.
> > 2)When the option zswap_exclusive_loads_enabled disabled and
> > zswap_load completed(page in swap_cache and swapcount = 0).
>
> For case (1), I think a cleaner solution would be to move the
> zswap_invalidate() call from swap_range_free() (which is called after
> the cached slots are freed) to __swap_entry_free_locked() if the usage
> goes to 0. I actually think conceptually this makes not just for
> zswap_invalidate(), but also for the arch call, memcg uncharging, etc.
> Slots caching is a swapfile optimization that should be internal to
> swapfile code. Once a swap entry is freed (i.e. swap count is 0 AND
Do you mean moving all swap slots free to bypass the swap slot cache, even it
is not from zswap? That might have unwanted side effects. The swap
slot cache is not just for swap files on disk. The batching has the
effect that on average lower cost of freeing per entry.
> not in the swap cache), all the hooks should be called (memcg, zswap,
> arch, ..) as the swap entry is effectively freed. The fact that
> swapfile code internally batches and caches slots should be
> transparent to other parts of MM. I am not sure if the calls can just
> be moved or if there are underlying assumptions in the implementation
> that would be broken, but it feels like the right thing to do.
There is also the behavior that if the page gets swapped in but hasn't
changed, when swap out again, it is possible to avoid writing the
page again to the disk. For disk there is no overhead keeping the old
date on the disk not to touch it. For zpool it might have memory
overhead holding the compressed pool. The trade off might be
different.
Chris
next prev parent reply other threads:[~2023-11-16 20:12 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-13 13:06 Zhongkun He
2023-11-13 15:11 ` Nhat Pham
2023-11-14 5:21 ` [External] " 贺中坤
2023-11-14 16:30 ` Nhat Pham
2023-11-15 12:12 ` 贺中坤
2023-11-14 17:16 ` Yosry Ahmed
2023-11-15 12:53 ` [External] " 贺中坤
2023-11-15 20:12 ` Yosry Ahmed
2023-11-16 3:33 ` 贺中坤
2023-11-16 4:09 ` Yosry Ahmed
2023-11-16 4:23 ` 贺中坤
2023-11-16 8:31 ` Huang, Ying
2023-11-16 10:34 ` [External] " 贺中坤
2023-11-16 20:11 ` Chris Li [this message]
2023-11-16 20:18 ` Yosry Ahmed
2023-11-16 20:30 ` Chris Li
2023-11-16 20:45 ` Yosry Ahmed
2023-11-17 23:30 ` Chris Li
2023-11-17 9:56 ` [External] " Zhongkun He
2023-11-17 23:47 ` Chris Li
2023-11-18 1:45 ` Zhongkun He
2023-11-18 18:43 ` Nhat Pham
2023-11-19 8:29 ` Chris Li
2023-11-20 2:42 ` Zhongkun He
2023-11-19 8:23 ` Chris Li
2023-11-20 3:16 ` Zhongkun He
2023-11-20 3:18 ` Huang, Ying
2023-11-20 5:31 ` Chris Li
2023-11-20 5:39 ` Huang, Ying
2023-11-20 5:51 ` Chris Li
2023-11-20 18:52 ` Yosry Ahmed
2023-11-21 0:54 ` Huang, Ying
2023-11-21 1:15 ` Yosry Ahmed
2023-11-21 1:53 ` Huang, Ying
2023-11-21 2:46 ` Yosry Ahmed
2023-11-21 3:32 ` Huang, Ying
2023-11-21 3:37 ` 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=CAF8kJuPonfuOtipdifXwBny2H7cy6m6BL8mWFVXzfb9JSdYq3Q@mail.gmail.com \
--to=chrisl@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=ddstreet@ieee.org \
--cc=hannes@cmpxchg.org \
--cc=hezhongkun.hzk@bytedance.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nphamcs@gmail.com \
--cc=sjenning@redhat.com \
--cc=vitaly.wool@konsulko.com \
--cc=ying.huang@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox