From: "Darrick J. Wong" <djwong@kernel.org>
To: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: Matthew Wilcox <willy@infradead.org>,
Christoph Hellwig <hch@infradead.org>,
SHAURYA RANE <ssrane_b23@ee.vjti.ac.in>,
akpm@linux-foundation.org, shakeel.butt@linux.dev,
eddyz87@gmail.com, andrii@kernel.org, ast@kernel.org,
linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org,
linux-kernel-mentees@lists.linux.dev, skhan@linuxfoundation.org,
david.hunter.linux@gmail.com, khalid@kernel.org,
syzbot+09b7d050e4806540153d@syzkaller.appspotmail.com,
bpf <bpf@vger.kernel.org>
Subject: Re: [PATCH] mm/filemap: fix NULL pointer dereference in do_read_cache_folio()
Date: Tue, 18 Nov 2025 22:29:41 -0800 [thread overview]
Message-ID: <20251119062941.GF196362@frogsfrogsfrogs> (raw)
In-Reply-To: <CAEf4BzYkPxUcQK2VWEE+8N=U5CXjtUNs6GfbfW2+GoTDebk19A@mail.gmail.com>
On Tue, Nov 18, 2025 at 11:38:36AM -0800, Andrii Nakryiko wrote:
> On Tue, Nov 18, 2025 at 8:12 AM Darrick J. Wong <djwong@kernel.org> wrote:
> >
> > On Tue, Nov 18, 2025 at 03:37:09PM +0000, Matthew Wilcox wrote:
> > > On Tue, Nov 18, 2025 at 05:03:24AM -0800, Christoph Hellwig wrote:
> > > > On Mon, Nov 17, 2025 at 10:45:31AM -0800, Andrii Nakryiko wrote:
> > > > > As I replied on another email, ideally we'd have some low-level file
> > > > > reading interface where we wouldn't have to know about secretmem, or
> > > > > XFS+DAX, or whatever other unusual combination of conditions where
> > > > > exposed internal APIs like filemap_get_folio() + read_cache_folio()
> > > > > can crash.
> > > >
> > > > The problem is that you did something totally insane and it kinda works
> > > > most of the time.
> > >
> > > ... on 64-bit systems. The HIGHMEM handling is screwed up too.
> > >
> > > > But bpf or any other file system consumer has
> > > > absolutely not business poking into the page cache to start with.
> > >
> > > Agreed.
> > >
> > > > And I'm really pissed off that you wrote and merged this code without
> > > > ever bothering to talk to a FS or MM person who have immediately told
> > > > you so. Let's just rip out this buildid junk for now and restart
> > > > because the problem isn't actually that easy.
> > >
> > > Oh, they did talk to fs & mm people originally and were told NO, so they
> > > sneaked it in through the BPF tree.
> > >
> > > https://lore.kernel.org/all/20230316170149.4106586-1-jolsa@kernel.org/
> > >
> > > > > The only real limitation is that we'd like to be able to control
> > > > > whether we are ok sleeping or not, as this code can be called from
> > > > > pretty much anywhere BPF might run, which includes NMI context.
> > > > >
> > > > > Would this kiocb_read() approach work under those circumstances?
> > > >
> > > > No. IOCB_NOWAIT is just a hint to avoid blocking function calls.
> > > > It is not guarantee and a guarantee is basically impossible.
> > >
> > > I'm not sure I'd go that far -- I think we're pretty good about not
> > > sleeping when IOCB_NOWAIT is specified and any remaining places can
> > > be fixed up.
> > >
> > > But I am inclined to rip out the buildid code, just because the
> > > authors have been so rude.
> >
> > Which fstest actually checks the functionality of the buildid code?
> > I don't find any, which means none of the fs people have a good signal
> > for breakage in this, um, novel file I/O path.
>
> We have plenty of build ID tests in BPF selftest that validate this
> functionality:
>
> - tools/testing/selftests/bpf/prog_tests/stacktrace_build_id.c
> - tools/testing/selftests/bpf/prog_tests/stacktrace_build_id_nmi.c
> - tools/testing/selftests/bpf/prog_tests/build_id.c
>
> This functionality is exposed to BPF (and PROCMAP_QUERY, which has its
> own mm selftests), so that's where we test this. So we'll know at the
> very least when trees merge that something is broken.
Only if you're testing the buildid functionality with all known file I/O
paths implemented by all filesystems. Or you could add a new testcase
to fstests and we'd do all that *for* you.
--D
> >
> > --D
>
next prev parent reply other threads:[~2025-11-19 6:29 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-14 19:37 [PATCH] mm/filemap: fix NULL pointer dereference in do_read_cache_folio() ssrane_b23
2025-11-14 20:44 ` Matthew Wilcox
2025-11-16 5:42 ` [PATCH v2] " ssrane_b23
2025-11-16 5:43 ` [PATCH] " SHAURYA RANE
2025-11-16 22:32 ` Matthew Wilcox
2025-11-17 14:10 ` Shaurya Rane
2025-11-17 18:42 ` Andrii Nakryiko
2025-11-17 16:41 ` Darrick J. Wong
2025-11-17 18:03 ` Matthew Wilcox
2025-11-17 18:45 ` Andrii Nakryiko
2025-11-18 13:03 ` Christoph Hellwig
2025-11-18 15:37 ` Matthew Wilcox
2025-11-18 16:12 ` Darrick J. Wong
2025-11-18 19:38 ` Andrii Nakryiko
2025-11-19 5:52 ` Christoph Hellwig
2025-11-19 6:29 ` Darrick J. Wong [this message]
2025-11-18 19:27 ` Andrii Nakryiko
2025-11-19 5:50 ` Christoph Hellwig
2025-11-19 17:12 ` Andrii Nakryiko
2025-12-17 7:33 ` Shakeel Butt
2025-11-18 5:05 ` Christoph Hellwig
2025-11-18 12:51 ` Matthew Wilcox
2025-11-18 12:56 ` Christoph Hellwig
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=20251119062941.GF196362@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=andrii.nakryiko@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=david.hunter.linux@gmail.com \
--cc=eddyz87@gmail.com \
--cc=hch@infradead.org \
--cc=khalid@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel-mentees@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=shakeel.butt@linux.dev \
--cc=skhan@linuxfoundation.org \
--cc=ssrane_b23@ee.vjti.ac.in \
--cc=syzbot+09b7d050e4806540153d@syzkaller.appspotmail.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.