Re: [syzbot] BUG: soft lockup in do_wp_page (4)

From: Dmitry Vyukov
Date: Thu Mar 25 2021 - 15:26:09 EST


On Thu, Mar 25, 2021 at 8:10 PM Will Deacon <will@xxxxxxxxxx> wrote:
>
> On Thu, Mar 25, 2021 at 07:34:54PM +0100, Dmitry Vyukov wrote:
> > On Thu, Mar 25, 2021 at 7:20 PM Will Deacon <will@xxxxxxxxxx> wrote:
> > >
> > > On Thu, Mar 18, 2021 at 08:34:16PM +0100, Dmitry Vyukov wrote:
> > > > On Thu, Mar 18, 2021 at 8:31 PM syzbot
> > > > <syzbot+0b036374a865ba0efa8e@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> > > > >
> > > > > Hello,
> > > > >
> > > > > syzbot found the following issue on:
> > > > >
> > > > > HEAD commit: bf152b0b Merge tag 'for_linus' of git://git.kernel.org/pub..
> > > > > git tree: upstream
> > > > > console output: https://syzkaller.appspot.com/x/log.txt?x=17d5264ed00000
> > > > > kernel config: https://syzkaller.appspot.com/x/.config?x=2c9917c41f0bc04b
> > > > > dashboard link: https://syzkaller.appspot.com/bug?extid=0b036374a865ba0efa8e
> > > > > userspace arch: arm64
> > > > >
> > > > > Unfortunately, I don't have any reproducer for this issue yet.
> > > > >
> > > > > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > > > > Reported-by: syzbot+0b036374a865ba0efa8e@xxxxxxxxxxxxxxxxxxxxxxxxx
> > > > >
> > > > > watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [syz-executor.1:3684]
> > > >
> > > > +Will, arm
> > > >
> > > > If I am reading this commit correctly, this is caused by:
> > > >
> > > > commit cae118b6acc309539b33339e846cbb19187c164c
> > > > Author: Will Deacon
> > > > Date: Wed Mar 3 13:49:27 2021 +0000
> > > > arm64: Drop support for CMDLINE_EXTEND
> > > >
> > > > syzbot passes lots of critical things in CONFIG_CMDLINE:
> > > > https://github.com/google/syzkaller/blob/c3c81c94865791469d376eba84f4a2d7763d3f71/dashboard/config/linux/upstream-arm64-kasan.config#L495
> > > > but also wants the bootloader args to be appended.
> > > > What is the way to do it now?
> > >
> > > For now, there isn't a way to do it with CONFIG_CMDLINE, so I think you can
> > > either:
> > >
> > > * Revert my patch for your kernels
> > > * Pass the arguments via QEMU's -append option
> > > * Take a look at one of the series which should hopefully add this
> > > functionality back (but with well-defined semantics) [1] [2]
> >
> > Unfortunately none of these work for syzbot (and I assume other
> > testing environments).
> >
> > syzbot does not support custom patches by design:
> > http://bit.do/syzbot#no-custom-patches
> > As any testing system, it tests the official trees.
> >
> > It's not humans who start these VMs, so it's not as easy as changing
> > the command line after typing...
> > There is no support for passing args specifically to qemu, syzkaller
> > support not just qemu, so these things are specifically localized in
> > the config. Additionally there is an issue of communicating all these
> > scattered details to developers in bug reports. Currently syzbot
> > reports the kernel config and it as well captures command line.
> >
> > Could you revert the patch? Is there any point in removing the
> > currently supported feature before the new feature lands?
>
> Well, we only just merged it (in 5.10 I think?), and the semantics of the
> new version will be different, so I really don't see the value in supporting
> both (even worse, Android has its own implementation which is different
> again). The timeline was: we merged CMDLINE_EXTEND, then we noticed it was
> broken, my fixes were rejected, so we removed the feature rather than
> support the broken version. In the relatively small window while it was
> merged, syzbot started using it :(

I didn't realize it was just introduced :)
We used CMDLINE_EXTEND on x86, and I looked for a similar option for
arm64 and found it.

> So I really think the best bet is to wait until the patches are sorted out.
> I think Christophe is about to spin a new version, and I reviewed his last
> copy, so I don't see this being far off,

If it's expected to be merged soon, let's wait.