From: Charan Teja Kalla <quic_charante@quicinc.com>
To: David Hildenbrand <david@redhat.com>, <akpm@linux-foundation.org>,
<shikemeng@huaweicloud.com>, <kasong@tencent.com>,
<nphamcs@gmail.com>, <bhe@redhat.com>, <baohua@kernel.org>,
<chrisl@kernel.org>
Cc: <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>,
"Liam R. Howlett" <Liam.Howlett@Oracle.com>,
Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
Matthew Wilcox <willy@infradead.org>
Subject: Re: [PATCH] mm: swap: check for xa_zero_entry() on vma in swapoff path
Date: Mon, 11 Aug 2025 15:13:14 +0530 [thread overview]
Message-ID: <29e080fd-5f9a-4760-876a-a6ccef33129f@quicinc.com> (raw)
In-Reply-To: <f008107a-2741-476d-9e32-ae9fc0f81838@redhat.com>
Thanks David, for the reply!!
On 8/8/2025 5:34 PM, David Hildenbrand wrote:
>> if (mpnt) {
>> mas_set_range(&vmi.mas, mpnt->vm_start, mpnt->vm_end - 1);
>> mas_store(&vmi.mas, XA_ZERO_ENTRY);
>> /* Avoid OOM iterating a broken tree */
>> set_bit(MMF_OOM_SKIP, &mm->flags);
>> }
>> /*
>> * The mm_struct is going to exit, but the locks will be dropped
>> * first. Set the mm_struct as unstable is advisable as it is
>> * not fully initialised.
>> */
>> set_bit(MMF_UNSTABLE, &mm->flags);
>> }
>>
>> Shouldn't we just remove anything from the tree here that was not copied
>> immediately?
>
> Another fix would be to just check MMF_UNSTABLE in unuse_mm(). But
> having these MMF_UNSTABLE checks all over the place feels a bit like
> whack-a-mole.
>
Seems MMF_UNSTABLE is the expectation per the commit,
64c37e134b12("kernel: be more careful about dup_mmap() failures and
uprobe registering"). Excerpt(s) from the commit message:
This patch sets the MMF_OOM_SKIP to avoid the iteration of the vmas on
the oom side (even though this is extremely unlikely to be selected as
an oom victim in the race window), and __sets MMF_UNSTABLE to avoid
other potential users from using a partially initialised mm_struct.
When registering vmas for uprobe, skip the vmas in an mm that is marked
unstable. Modifying a vma in an unstable mm may cause issues if the mm
isn't fully initialised.__
> Is there anything preventing us from just leaving a proper tree that
> reflects reality in place before we drop the write lock?
When you mean proper tree, is this about the your previous question? --
Shouldn't we just remove anything from the tree here that was not copied
immediately?
Anyway, would request Liam/Lorenzo to comment on this.
Thanks,
Charan
next prev parent reply other threads:[~2025-08-11 9:43 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-08 9:21 [PATCH] mm: swap: check for xa_zero_entry() on vma in swapoff path Charan Teja Kalla
2025-08-08 12:01 ` David Hildenbrand
2025-08-08 12:04 ` David Hildenbrand
2025-08-11 9:43 ` Charan Teja Kalla [this message]
2025-08-11 12:14 ` Lorenzo Stoakes
2025-08-11 13:03 ` David Hildenbrand
2025-08-11 13:08 ` Lorenzo Stoakes
2025-08-11 13:19 ` David Hildenbrand
2025-08-11 13:22 ` Lorenzo Stoakes
2025-08-11 15:17 ` Liam R. Howlett
2025-08-11 15:39 ` David Hildenbrand
2025-08-11 15:48 ` Lorenzo Stoakes
2025-08-11 15:51 ` David Hildenbrand
2025-08-11 15:48 ` Liam R. Howlett
2025-08-11 12:07 ` Lorenzo Stoakes
2025-08-11 16:29 ` Charan Teja Kalla
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=29e080fd-5f9a-4760-876a-a6ccef33129f@quicinc.com \
--to=quic_charante@quicinc.com \
--cc=Liam.Howlett@Oracle.com \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=bhe@redhat.com \
--cc=chrisl@kernel.org \
--cc=david@redhat.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=shikemeng@huaweicloud.com \
--cc=willy@infradead.org \
/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.