All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kairui Song <ryncsn@gmail.com>
To: Breno Leitao <leitao@debian.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	 Chris Li <chrisl@kernel.org>, Kairui Song <kasong@tencent.com>,
	 Kemeng Shi <shikemeng@huaweicloud.com>,
	Nhat Pham <nphamcs@gmail.com>, Baoquan He <baoquan.he@linux.dev>,
	 Barry Song <baohua@kernel.org>,
	Youngjun Park <youngjun.park@lge.com>,
	 David Hildenbrand <david@kernel.org>,
	Lorenzo Stoakes <ljs@kernel.org>,
	 "Liam R. Howlett" <liam@infradead.org>,
	Vlastimil Babka <vbabka@kernel.org>,
	 Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	 Michal Hocko <mhocko@suse.com>, Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	 Hugh Dickins <hughd@google.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	 Peter Xu <peterx@redhat.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	 Yosry Ahmed <yosry@kernel.org>,
	Chengming Zhou <chengming.zhou@linux.dev>,
	linux-mm@kvack.org,  linux-kernel@vger.kernel.org,
	kernel-team@meta.com
Subject: Re: [PATCH v2 3/3] mm: fail the fault on a malformed swap entry instead of retrying it
Date: Tue, 18 Aug 2026 17:30:24 +0800	[thread overview]
Message-ID: <aoQhNdJEZFjW8TuV@KASONG-MC4> (raw)
In-Reply-To: <20260813-swap-v2-3-4a625ccabdae@debian.org>

On Thu, Aug 13, 2026 at 03:02:22AM +0800, Breno Leitao wrote:
> do_swap_page() returns 0 when get_swap_device() fails, which the fault
> handler reads as "handled". For an entry that can never become valid
> the retry takes the same fault again, so the thread spins forever,
> retrying on the same fault.
> 
> Return VM_FAULT_SIGBUS (Bad access) for a malformed entry (pr_err() was
> called at get_swap_device()).
> 
> Signed-off-by: Breno Leitao <leitao@debian.org>
> ---
>  mm/memory.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/mm/memory.c b/mm/memory.c
> index 7201e848129a7..fa2b3d2ad3202 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -4957,6 +4957,9 @@ vm_fault_t do_swap_page(struct vm_fault *vmf)
>  	/* Prevent swapoff from happening to us, and reject a bad entry. */
>  	si = get_swap_device(entry);
>  	if (IS_ERR_OR_NULL(si)) {
> +		/* A malformed entry never becomes valid, so don't retry it. */
> +		if (IS_ERR(si))
> +			ret = VM_FAULT_SIGBUS;
>  		si = NULL;
>  		goto out;
>  	}
> 
> -- 
> 2.53.0-Meta
> 

Looks good to me but interesting b4 shazam will apply a Fixed tag to this,
maybe it picked up the "Fixes" in discussion.
I checked the discussion and the history behind this, 2799e77529c2
caused the loop, and 23b230ba8ac3 caused the pr_err spam. But before
2799e77529c2 it wasn't correct either, it was OOM kill.

So anyway, the fix is good, we might omit the fixes tag on this I
think, the behavior was never correct.

Acked-by: Kairui Song <kasong@tencent.com>

  parent reply	other threads:[~2026-08-18  9:30 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-13 10:02 [PATCH v2 0/3] mm, swap: don't spin or flood the console on a bad swap entry Breno Leitao
2026-08-13 10:02 ` [PATCH v2 1/3] mm, swap: ratelimit bad swap entry reports Breno Leitao
2026-08-17 10:14   ` Barry Song
2026-08-17 22:52   ` Nhat Pham
2026-08-18  7:11   ` Kairui Song
2026-08-13 10:02 ` [PATCH v2 2/3] mm, swap: distinguish a malformed swap entry from a dying device Breno Leitao
2026-08-16 22:20   ` Barry Song
2026-08-17  9:24     ` Breno Leitao
2026-08-17 10:22   ` Barry Song
2026-08-18  9:08   ` Kairui Song
2026-08-13 10:02 ` [PATCH v2 3/3] mm: fail the fault on a malformed swap entry instead of retrying it Breno Leitao
2026-08-16 22:22   ` Barry Song
2026-08-17  9:30     ` Breno Leitao
2026-08-17  9:40       ` Barry Song
2026-08-17 10:05         ` Breno Leitao
2026-08-17 10:29   ` Barry Song
2026-08-18  9:30   ` Kairui Song [this message]
2026-08-13 20:34 ` [PATCH v2 0/3] mm, swap: don't spin or flood the console on a bad swap entry Andrew Morton
2026-08-17 12:21   ` Breno Leitao
2026-08-17 21:53     ` Andrew Morton
2026-08-18  8:50       ` Breno Leitao

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=aoQhNdJEZFjW8TuV@KASONG-MC4 \
    --to=ryncsn@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=baoquan.he@linux.dev \
    --cc=chengming.zhou@linux.dev \
    --cc=chrisl@kernel.org \
    --cc=david@kernel.org \
    --cc=hannes@cmpxchg.org \
    --cc=hughd@google.com \
    --cc=jannh@google.com \
    --cc=kasong@tencent.com \
    --cc=kernel-team@meta.com \
    --cc=leitao@debian.org \
    --cc=liam@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=mhocko@suse.com \
    --cc=nphamcs@gmail.com \
    --cc=peterx@redhat.com \
    --cc=pfalcato@suse.de \
    --cc=rppt@kernel.org \
    --cc=shikemeng@huaweicloud.com \
    --cc=surenb@google.com \
    --cc=vbabka@kernel.org \
    --cc=yosry@kernel.org \
    --cc=youngjun.park@lge.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.