[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJuCfpF0RJ9w0STKFaFA7vLEA5_kEsebuowYWSVnK-=5J2wsPQ@mail.gmail.com>
Date: Wed, 6 Aug 2025 11:21:04 -0700
From: Suren Baghdasaryan <surenb@...gle.com>
To: Peter Xu <peterx@...hat.com>
Cc: akpm@...ux-foundation.org, david@...hat.com, aarcange@...hat.com,
lokeshgidra@...gle.com, linux-mm@...ck.org, linux-kernel@...r.kernel.org,
syzbot+b446dbe27035ef6bd6c2@...kaller.appspotmail.com, stable@...r.kernel.org
Subject: Re: [PATCH v3 1/1] userfaultfd: fix a crash in UFFDIO_MOVE with some
non-present PMDs
On Wed, Aug 6, 2025 at 11:09 AM Peter Xu <peterx@...hat.com> wrote:
>
> On Wed, Aug 06, 2025 at 10:09:30AM -0700, Suren Baghdasaryan wrote:
> > On Wed, Aug 6, 2025 at 9:56 AM Peter Xu <peterx@...hat.com> wrote:
> > >
> > > On Wed, Aug 06, 2025 at 08:40:15AM -0700, Suren Baghdasaryan wrote:
> > > > When UFFDIO_MOVE is used with UFFDIO_MOVE_MODE_ALLOW_SRC_HOLES and it
> > >
> > > The migration entry can appear with/without ALLOW_SRC_HOLES, right? Maybe
> > > drop this line?
> >
> > Yes, you are right. I'll update.
> >
> > >
> > > If we need another repost, the subject can further be tailored to mention
> > > migration entry too rather than non-present. IMHO that's clearer on
> > > explaining the issue this patch is fixing (e.g. a valid transhuge THP can
> > > also have present bit cleared).
> > >
> > > > encounters a non-present PMD (migration entry), it proceeds with folio
> > > > access even though the folio is not present. Add the missing check and
> > >
> > > IMHO "... even though folio is not present" is pretty vague. Maybe
> > > "... even though it's a swap entry"? Fundamentally it's because of the
> > > different layouts of normal THP v.s. a swap entry, hence pmd_folio() should
> > > not be used on top of swap entries.
> >
> > Well, technically a migration entry is a non_swap_entry(), so calling
> > migration entries "swap entries" is confusing to me. Any better
> > wording we can use or do you think that's ok?
>
> The more general definition of "swap entry" should follow what swp_entry_t
> is defined, where, for example, is_migration_entry() itself takes
> swp_entry_t as input. So it should be fine, but I agree it's indeed
> confusing.
>
> If we want to make it clearer, IMHO we could rename non_swap_entry()
> instead to is_swapfile_entry() / is_real_swap_entry() / ... but that can be
> discussed separately. Here, if we want to make it super accurate, we could
> also use "swp_entry_t" instead of "swap entry", that'll be 100% accurate.
Ok, that I think is our best option. I'll post an update shortly.
Thanks!
>
> Thanks,
>
> --
> Peter Xu
>
Powered by blists - more mailing lists