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

From: Will Deacon
Date: Thu Mar 25 2021 - 15:11:08 EST


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 :(

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,

Will