Re: fuse: kernel BUG at mm/truncate.c:763!

From: Matthew Wilcox
Date: Fri Mar 12 2021 - 08:12:50 EST


On Fri, Mar 12, 2021 at 12:21:59PM +0000, Luis Henriques wrote:
> > > I've seen a bug report (5.10.16 kernel splat below) that seems to be
> > > reproducible in kernels as early as 5.4.

If this is reproducible, can you turn this BUG_ON into a VM_BUG_ON_PAGE()
so we know what kind of problem we're dealing with? Assuming the SUSE
tumbleweed kernels enable CONFIG_DEBUG_VM, which I'm sure they do.

> > Page fault locks the page before installing a new pte, at least
> > AFAICS, so the BUG looks impossible. The referenced commits only
> > touch very high level control of writeback, so they may well increase
> > the chance of a bug triggering, but very unlikely to be the actual
> > cause of the bug. I'm guessing this to be an MM issue.
>
> Ok, thank you for having a look at it.
>
> Interestingly, there's a single commit to mm/truncate.c in 5.4:
> ef18a1ca847b ("mm/thp: allow dropping THP from page cache"). I'm Cc'ing
> Andrew and Kirill, maybe they have some ideas.

That's probably not it; unless FUSE has developed the ability to insert
compound pages into the page cache without me noticing.

(if it had, that would absolutely explain it -- i have a fix in my thp
tree for this case, but it doesn't affect any existing filesystem
because only shmem uses compound pages and it doesn't call
invalidate_inode_pages2_range)