linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Yosry Ahmed <yosryahmed@google.com>
To: Chris Li <chrisl@kernel.org>
Cc: Nhat Pham <nphamcs@gmail.com>,
	akpm@linux-foundation.org, hannes@cmpxchg.org,  hughd@google.com,
	shakeel.butt@linux.dev, ryan.roberts@arm.com,
	 ying.huang@intel.com, david@redhat.com, kasong@tencent.com,
	 willy@infradead.org, viro@zeniv.linux.org.uk, baohua@kernel.org,
	 chengming.zhou@linux.dev, linux-mm@kvack.org,
	kernel-team@meta.com,  linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH 0/2] remove SWAP_MAP_SHMEM
Date: Tue, 24 Sep 2024 14:30:20 -0700	[thread overview]
Message-ID: <CAJD7tkYntg_9qzWK3D84WU0ErEvDZDnsZ6wmg+je6VbX5EwNEw@mail.gmail.com> (raw)
In-Reply-To: <CACePvbV+iaqKGGy46xa3CJQvKsay_aw3w4nqs6rESW6Cu8T-Lg@mail.gmail.com>

On Tue, Sep 24, 2024 at 1:16 PM Chris Li <chrisl@kernel.org> wrote:
>
> Hi Nhat,
>
> On Mon, Sep 23, 2024 at 4:11 PM Nhat Pham <nphamcs@gmail.com> wrote:
> >
> > The SWAP_MAP_SHMEM state was originally introduced in the commit
> > aaa468653b4a ("swap_info: note SWAP_MAP_SHMEM"), to quickly determine if a
> > swap entry belongs to shmem during swapoff.
> >
> > However, swapoff has since been rewritten drastically in the commit
> > b56a2d8af914 ("mm: rid swapoff of quadratic complexity"). Now
> > having swap count == SWAP_MAP_SHMEM value is basically the same as having
> > swap count == 1, and swap_shmem_alloc() behaves analogously to
> > swap_duplicate()
> >
> > This RFC proposes the removal of this state and the associated helper to
> > simplify the state machine (both mentally and code-wise). We will also
> > have an extra state/special value that can be repurposed (for swap entries
> > that never gets re-duplicated).
>
> Please help me understand. After having this patch, the shmem swap
> entry will also use the swap continue as the only way to count shmem
> swap entries, am I missing something?
>
> That seems to have some performance hit for the shmem. Because unlike
> anonymous memory, The shmem can easily have a very high swap count.
> I would expect there to be some performance hit for the high share
> swap count usage case.
> Do you have any test number on high shared swap count usage that says
> it is negligible to remove it?

Shmem only calls swap_duplicate() once in shmem_writepage() when we
add the swap entry to the page cache. We do not increment the swap
count once for each user like anon memory. IOW, the page cache is the
only user of the shmem swap entry, so when we remove SWAP_MAP_SHMEM
the swap count of shmem pages will either be 0 or 1 (disregarding
SWAP_HAS_CACHE). So the swap continuation code is not used here.

>
> Also if you remove the  in the SWAP_MAP_SHMEM, wouldn't you need
> remove the counter in the shmem as well. Because the shmem counter is
> no longer connected to the swap count any more.

Not sure what you mean here.

>
> Huge, do you have any feedback on this change?

Hugh*

>
> Chris


      reply	other threads:[~2024-09-24 21:31 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-23 23:11 Nhat Pham
2024-09-23 23:11 ` [RFC PATCH 1/2] swapfile: add a batched variant for swap_duplicate() Nhat Pham
2024-09-23 23:11 ` [RFC PATCH 2/2] swap: shmem: remove SWAP_MAP_SHMEM Nhat Pham
2024-09-24  0:32   ` Yosry Ahmed
2024-09-24  0:20 ` [RFC PATCH 0/2] " Yosry Ahmed
2024-09-24  1:55 ` Baolin Wang
2024-09-24  2:15   ` Yosry Ahmed
2024-09-24  3:25     ` Baolin Wang
2024-09-24 14:32       ` Nhat Pham
2024-09-24 15:07         ` Yosry Ahmed
2024-09-24 15:48           ` Nhat Pham
2024-09-24 18:11             ` Yosry Ahmed
2024-09-25  6:26               ` Barry Song
2024-09-25  7:24                 ` Huang, Ying
2024-09-25  7:38                   ` Barry Song
2024-09-25  1:53             ` Baolin Wang
2024-09-25 14:37               ` Nhat Pham
2024-09-26  1:59                 ` Huang, Ying
2024-09-26  3:30                   ` Baolin Wang
2024-09-26  3:59                 ` Barry Song
2024-09-26 22:50                   ` Nhat Pham
2024-09-26  4:00                 ` Barry Song
2024-09-25  7:19             ` Huang, Ying
2024-09-25  7:32               ` Barry Song
2024-09-25 14:21                 ` Nhat Pham
2024-09-25 14:24                   ` Nhat Pham
2024-09-25 14:28                   ` Nhat Pham
2024-09-24 20:15 ` Chris Li
2024-09-24 21:30   ` Yosry Ahmed [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=CAJD7tkYntg_9qzWK3D84WU0ErEvDZDnsZ6wmg+je6VbX5EwNEw@mail.gmail.com \
    --to=yosryahmed@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=chengming.zhou@linux.dev \
    --cc=chrisl@kernel.org \
    --cc=david@redhat.com \
    --cc=hannes@cmpxchg.org \
    --cc=hughd@google.com \
    --cc=kasong@tencent.com \
    --cc=kernel-team@meta.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=nphamcs@gmail.com \
    --cc=ryan.roberts@arm.com \
    --cc=shakeel.butt@linux.dev \
    --cc=viro@zeniv.linux.org.uk \
    --cc=willy@infradead.org \
    --cc=ying.huang@intel.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