Re: kernel BUG at include/linux/swapops.h:LINE!

From: Kirill A. Shutemov
Date: Fri Jul 24 2020 - 07:13:15 EST


On Thu, Jul 23, 2020 at 03:37:44PM +0800, Hillf Danton wrote:
>
> On Tue, 21 Jul 2020 14:11:31 +0300 Kirill A. Shutemov wrote:
> > On Mon, Jul 20, 2020 at 04:51:44PM -0700, Andrew Morton wrote:
> > > On Sun, 19 Jul 2020 14:10:19 -0700 syzbot wrote:
> > >
> > > > syzbot has found a reproducer for the following issue on:
> > > >
> > > > HEAD commit: 4c43049f Add linux-next specific files for 20200716
> > > > git tree: linux-next
> > > > console output: https://syzkaller.appspot.com/x/log.txt?x=12c56087100000
> > > > kernel config: https://syzkaller.appspot.com/x/.config?x=2c76d72659687242
> > > > dashboard link: https://syzkaller.appspot.com/bug?extid=c48f34012b06c4ac67dd
> > > > compiler: gcc (GCC) 10.1.0-syz 20200507
> > > > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1344abeb100000
> > > >
> > > > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > > > Reported-by: syzbot+c48f34012b06c4ac67dd@xxxxxxxxxxxxxxxxxxxxxxxxx
> > >
> > > Thanks.
> > >
> > > __handle_mm_fault
> > > ->pmd_migration_entry_wait
> > > ->migration_entry_to_page
> > >
> > > stumbled onto an unlocked page.
> > >
> > > I don't immediately see a cause. Perhaps Matthew's "THP prep patches",
> > > perhaps something else.
> > >
> > > Is it possible to perform a bisection?
> >
> > Maybe it's related to the new lock_page_async()?
>
> Or is there likely the window that after copy_huge_pmd() the src pmd migrate
> entry is removed and the page unlocked but the dst is not?

No.

copy_huge_pmd() runs with exclusive mmap_lock on the source side and
destination side is not running yet.

--
Kirill A. Shutemov