All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@infradead.org>
To: Kairui Song <kasong@tencent.com>
Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@redhat.com>,
	Hugh Dickins <hughd@google.com>, Chris Li <chrisl@kernel.org>,
	Yosry Ahmed <yosryahmed@google.com>,
	"Huang, Ying" <ying.huang@linux.alibaba.com>,
	Nhat Pham <nphamcs@gmail.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/6] filemap: do not use folio_contains for swap cache folios
Date: Mon, 28 Apr 2025 01:44:30 +0100	[thread overview]
Message-ID: <aA7PbiXv92WiTy8T@casper.infradead.org> (raw)
In-Reply-To: <20250427185908.90450-5-ryncsn@gmail.com>

On Mon, Apr 28, 2025 at 02:59:06AM +0800, Kairui Song wrote:
> For filemap and truncate, folio_contains is only used for sanity checks
> to verify the folio index matches the expected lookup/invalidation target.
> The swap cache does not utilize filemap or truncate helpers in ways that
> would trigger these checks, as it mostly implements its own cache management.
> 
> Shmem won't interact with these sanity checks either unless thing went
> wrong, it would directly trigger a BUG, because swap cache index are
> unrelated to shmem index, and would almost certainly mismatch (unless
> on collide).

It does happen though.  If shmem is writing the folio to swap at the
same time that the file containing the folio is being truncated, we
can hit this.

> - * Context: The caller should have the page locked in order to prevent
> - * (eg) shmem from moving the page between the page cache and swap cache
> - * and changing its index in the middle of the operation.
> + * Context: The caller should ensure folio->index is stable and it's
> + * not added to the swap cache.

I do think we need to keep the part about the folio being locked.


  reply	other threads:[~2025-04-28  0:44 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-27 18:59 [PATCH 0/6] mm, swap: clean up swap cache mapping helper Kairui Song
2025-04-27 18:59 ` [PATCH 1/6] fuse: drop usage of folio_index Kairui Song
2025-04-28  0:37   ` Matthew Wilcox
2025-04-29  8:54     ` Kairui Song
2025-04-27 18:59 ` [PATCH 2/6] btrfs: " Kairui Song
2025-04-28  0:38   ` Matthew Wilcox
2025-04-28  0:54   ` Qu Wenruo
2025-04-28  2:14     ` Kairui Song
2025-04-27 18:59 ` [f2fs-dev] [PATCH 3/6] f2fs: " Kairui Song
2025-04-27 18:59   ` Kairui Song
2025-04-28  0:41   ` [f2fs-dev] " Matthew Wilcox
2025-04-28  0:41     ` Matthew Wilcox
2025-04-28  2:15     ` [f2fs-dev] " Kairui Song
2025-04-28  2:15       ` Kairui Song
2025-06-09 20:56   ` [f2fs-dev] " patchwork-bot+f2fs--- via Linux-f2fs-devel
2025-06-09 20:56     ` patchwork-bot+f2fs
2025-04-27 18:59 ` [PATCH 4/6] filemap: do not use folio_contains for swap cache folios Kairui Song
2025-04-28  0:44   ` Matthew Wilcox [this message]
2025-04-28  2:58     ` Kairui Song
2025-04-28 18:54       ` Kairui Song
2025-04-27 18:59 ` [PATCH 5/6] mm: move folio_index to mm/swap.h and remove no longer needed helper Kairui Song
2025-04-27 21:37   ` kernel test robot
2025-04-27 22:19   ` kernel test robot
2025-04-27 23:58   ` Matthew Wilcox
2025-04-28  3:14     ` Kairui Song
2025-04-27 18:59 ` [PATCH 6/6] mm, swap: remove no longer used swap mapping helper Kairui Song
2025-04-28  0:31   ` Matthew Wilcox
2025-04-27 19:02 ` [PATCH 0/6] mm, swap: clean up swap cache " Kairui Song
2025-04-28  0:34 ` Matthew Wilcox

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=aA7PbiXv92WiTy8T@casper.infradead.org \
    --to=willy@infradead.org \
    --cc=akpm@linux-foundation.org \
    --cc=chrisl@kernel.org \
    --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=nphamcs@gmail.com \
    --cc=ying.huang@linux.alibaba.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.