Messages in this thread | | | Date | Wed, 17 Mar 2021 18:45:38 +0000 | From | Mark Rutland <> | Subject | Re: arm64 syzbot instances |
| |
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@arm.com> 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.
Thanks, Mark.
> 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
| |