Re: arm64 syzbot instances

From: Dmitry Vyukov
Date: Thu Mar 18 2021 - 04:34:08 EST


On Wed, Mar 17, 2021 at 7:45 PM Mark Rutland <mark.rutland@xxxxxxx> wrote:
>
> On Thu, Mar 11, 2021 at 05:56:46PM +0100, Dmitry Vyukov wrote:
> > On Thu, Mar 11, 2021 at 1:33 PM Mark Rutland <mark.rutland@xxxxxxx> wrote:
> > > FWIW, I keep my fuzzing config fragment in my fuzzing/* branches on
> > > git.kernel.org, and for comparison my fragment for v5.12-rc1 is:
> > >
> > > https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?h=fuzzing/5.12-rc1&id=6d9f7f8a2514fe882823fadbe7478228f71d7ab1
> > >
> > > ... I'm not sure whether there's anything in that which is novel to you.
> >
> > Hi Mark,
> >
> > I've learned about DEBUG_TIMEKEEPING which we had disabled. I am enabling it.
> > We also have CONTEXT_TRACKING_FORCE disabled. I don't completely
> > understand what it's doing. Is it also "more debug checks" type of
> > config?
>
> Context tracking tracks user<->kernel transitions, and tries to disable
> RCU when it is not needed (e.g. while a CPU is in usersspace), to avoid
> the need to perturb that CPU with IPIs and so on. Normally this is not
> enabled unless CPUs are set aside for NOHZ usage, as there's some
> expense in doing this tracking. I haven't measured how expensive it is
> in practice.
>
> CONTEXT_TRACKING_FORCE enables that tracking regardless of whether any
> CPUs are set aside for NOHZ usage, and makes it easier to find bugs in
> that tracking code, or where it is not being used correctly (e.g. missed
> calls, or called in the wrong places).
>
> I added it to my debug fragment back when I fixed the arm64 entry code
> accounting for lockdep, and I keep it around to make sure that we don't
> accidentally regress any of that.

Looks like a debug config we should enable on syzbot. I am enabling it in:
https://github.com/google/syzkaller/pull/2500/commits/8ebea47133e458293e3c71e1189e18052286393d
Thanks

> > FWIW we have more debug configs:
> > https://github.com/google/syzkaller/blob/master/dashboard/config/linux/bits/debug.yml
> > https://github.com/google/syzkaller/blob/master/dashboard/config/linux/bits/base.yml
> > https://github.com/google/syzkaller/blob/master/dashboard/config/linux/bits/kasan.yml
> > https://github.com/google/syzkaller/blob/master/dashboard/config/linux/bits/kmemleak.yml