linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Chris Li <chrisl@kernel.org>
To: Barry Song <21cnbao@gmail.com>
Cc: Kairui Song <ryncsn@gmail.com>,
	linux-mm@kvack.org,  Andrew Morton <akpm@linux-foundation.org>,
	Matthew Wilcox <willy@infradead.org>,
	 Hugh Dickins <hughd@google.com>, Baoquan He <bhe@redhat.com>,
	Nhat Pham <nphamcs@gmail.com>,
	 Kemeng Shi <shikemeng@huaweicloud.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	 Ying Huang <ying.huang@linux.alibaba.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	 David Hildenbrand <david@redhat.com>,
	Yosry Ahmed <yosryahmed@google.com>,
	 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Zi Yan <ziy@nvidia.com>,
	 linux-kernel@vger.kernel.org, Kairui Song <kasong@tencent.com>
Subject: Re: [PATCH v4 01/15] docs/mm: add document for swap table
Date: Tue, 16 Sep 2025 16:28:49 -0700	[thread overview]
Message-ID: <CACePvbU8cUs-wwPsXkZ24EWga5bXxxUGSCT18rKAWFYn5w9rpw@mail.gmail.com> (raw)
In-Reply-To: <CAGsJ_4wKWem-STYAnh_0EgSFKzzs1M1c7wz6K82wLt6T6JEw9A@mail.gmail.com>

On Tue, Sep 16, 2025 at 4:09 PM Barry Song <21cnbao@gmail.com> wrote:
> > I think my previous statement still stands correct considering both
> > swap out and swap in. Of course there is always room for improvement
> > to make it more clear. But folio always has the data is not true for
> > swap in. If you have other ways to improve it, please feel free to
> > suggest.
>
> I assume you’re referring to the swapin case where a folio has been
> allocated and added to the swap cache, but it’s still being read and
> hasn’t been updated yet?

Right. That is the case swapfile has the data and folio does not.

>
> I assume it could be something like:
> The data may be in the folio or will be placed there later. It could
This is for swap in only, does not describe the swap out case.

> also reside in the swap file.

Right and it did not have the same coverage about data that can be
both in the folio and swapfile. Sorry about the pedantic. If we want
to improve it, we might want to cover the same level of detail.

> Alternatively, leave it unchanged.
I think considering the swap out and swap in case, the original is
fine. The reader will need to make some effort to map to what it does
in the code, at least the description is correct.

>
> >
> >
> > > On a 32-bit system, I’m guessing the swap table is 2 KB, which is about
> > > half of a page?
> >
> > Yes, true. I consider that but decide to leave it out of the document.
> > There are a lot of other implementation details the document does not
> > cover, not just this aspect. This document provides a simple
> > abstracted view (might not cover all the detail cases). One way to
> > address that is add a qualification "on a 64 bit system". What do you
> > say? I don't want to talk about the 32 bit system having half of a
> > page in this document, I consider that too much detail. The 32 bit
> > system is pretty rare nowadays.
>
> I’d prefer that we remove all descriptions about matching PAGE_SIZE,

I am fine with that as well.

> since we would need to double-check every case, like 16 KB or 64 KB pages.

The cluster size is determined by the last to second level page table
page size. I fail to see why 16KB matters here for the cluster. Are
you saying in the 16KB page size case, the custer size is 512/4 = 128
swap entry per cluster?

> For ARM64 with a 16 KB page size, the last-level index uses 24:14.
> For ARM64 with a 64 KB page size, it uses 28:16[1]. For them, 512 entries
> are not one PAGE.

Now you got me curioused.

In your above two examples, what is the respected swap cluster swap entry size?
In other words, how much entry does one swap cluster hold?

Sorry I am not very familiar with the ARM page tables.

Chris


  reply	other threads:[~2025-09-16 23:29 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-16 16:00 [PATCH v4 00/15] mm, swap: introduce swap table as swap cache (phase I) Kairui Song
2025-09-16 16:00 ` [PATCH v4 01/15] docs/mm: add document for swap table Kairui Song
2025-09-16 21:59   ` Barry Song
2025-09-16 22:42     ` Chris Li
2025-09-16 23:09       ` Barry Song
2025-09-16 23:28         ` Chris Li [this message]
2025-09-16 23:47           ` Barry Song
2025-09-17 16:48             ` Chris Li
2025-09-17 23:37               ` Barry Song
2025-09-17 23:50                 ` Barry Song
2025-09-18  4:50                   ` Chris Li
2025-09-18  5:03                 ` Chris Li
2025-09-18  7:03                   ` Chris Li
2025-09-18  8:58                     ` Barry Song
2025-09-18 14:19                       ` Chris Li
2025-09-18 21:35                         ` Barry Song
2025-09-21  0:11                           ` Chris Li
2025-09-17 16:14   ` SeongJae Park
2025-09-17 17:12     ` Chris Li
2025-09-16 16:00 ` [PATCH v4 02/15] mm, swap: use unified helper for swap cache look up Kairui Song
2025-09-16 16:00 ` [PATCH v4 03/15] mm, swap: fix swap cache index error when retrying reclaim Kairui Song
2025-09-16 16:00 ` [PATCH v4 04/15] mm, swap: check page poison flag after locking it Kairui Song
2025-09-16 16:00 ` [PATCH v4 05/15] mm, swap: always lock and check the swap cache folio before use Kairui Song
2025-09-17 23:54   ` Barry Song
2025-09-16 16:00 ` [PATCH v4 06/15] mm, swap: rename and move some swap cluster definition and helpers Kairui Song
2025-09-19 22:02   ` Nhat Pham
2025-09-16 16:00 ` [PATCH v4 07/15] mm, swap: tidy up swap device and cluster info helpers Kairui Song
2025-09-16 16:00 ` [PATCH v4 08/15] mm, swap: cleanup swap cache API and add kerneldoc Kairui Song
2025-09-16 16:00 ` [PATCH v4 09/15] mm/shmem, swap: remove redundant error handling for replacing folio Kairui Song
2025-09-24 21:55   ` Chris Li
2025-09-16 16:00 ` [PATCH v4 10/15] mm, swap: wrap swap cache replacement with a helper Kairui Song
2025-09-16 16:00 ` [PATCH v4 11/15] mm, swap: use the swap table for the swap cache and switch API Kairui Song
2025-09-16 16:00 ` [PATCH v4 12/15] mm, swap: mark swap address space ro and add context debug check Kairui Song
2025-09-16 16:00 ` [PATCH v4 13/15] mm, swap: remove contention workaround for swap cache Kairui Song
2025-09-16 16:00 ` [PATCH v4 14/15] mm, swap: implement dynamic allocation of swap table Kairui Song
2025-09-16 22:51   ` Barry Song
2025-09-24 21:51   ` Chris Li
2025-09-16 16:01 ` [PATCH v4 15/15] mm, swap: use a single page for swap table when the size fits Kairui Song
2025-09-16 22:30   ` Barry Song
2025-09-17  3:52     ` Kairui Song
2025-09-17  4:41       ` Barry Song
2025-09-17  4:50         ` Barry Song
2025-09-16 21:22 ` [PATCH v4 00/15] mm, swap: introduce swap table as swap cache (phase I) Hugh Dickins
2025-09-17  3:53   ` Kairui Song

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=CACePvbU8cUs-wwPsXkZ24EWga5bXxxUGSCT18rKAWFYn5w9rpw@mail.gmail.com \
    --to=chrisl@kernel.org \
    --cc=21cnbao@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=bhe@redhat.com \
    --cc=david@redhat.com \
    --cc=hannes@cmpxchg.org \
    --cc=hughd@google.com \
    --cc=kasong@tencent.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=nphamcs@gmail.com \
    --cc=ryncsn@gmail.com \
    --cc=shikemeng@huaweicloud.com \
    --cc=willy@infradead.org \
    --cc=ying.huang@linux.alibaba.com \
    --cc=yosryahmed@google.com \
    --cc=ziy@nvidia.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