Re: [syzbot] [mm?] WARNING in __gup_longterm_locked

From: Eric Biggers
Date: Tue Jul 04 2023 - 13:01:51 EST


On Tue, Jul 04, 2023 at 09:39:48AM -0700, Linus Torvalds wrote:
> On Tue, 4 Jul 2023 at 09:24, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > Thanks. This is the temporary warning which was added by Linus's
> > a425ac5365f6cb3cc4 ("gup: add warning if some caller would seem to want
> > stack expansion").
>
> Yes, and the randomizer system calls aren't very interesting for that warning.
>
> I don't have any good idea for how to distinguish "this is a
> randomizer that is just doing crazy things by its very nature and is
> passing in nonsensical system call arguments" from "this is a real
> application that is doing crazy things that we will sadly have to try
> to be backwards compatible with".
>
> And at the same time, I _really_ don't want that warning to then
> perhaps hide some *other* more real warning from the test automation.
>
> End result: I'd love for that warning to trigger on real applications
> (including ones run by any cloud test infrastructure, although I doubt
> that infrastructure necessarily runs very interesting loads), but not
> on things like syzbot and trinity that just randomize system calls.
>
> Does anybody have any ideas how to tell them apart? Maybe syzbot
> already sets some flag for this purpose that I just haven't thought
> of?
>

syzkaller just makes system calls.

Unless you want to do the crazy thing of checking if current->comm begins with
"syz", I don't think there is a way to distinguish.

In the past there's been some discussion of adding a kconfig option like
CONFIG_FUZZ_TESTING that would be expected to be enabled in order to run a
kernel fuzzer, and changing behavior in certain cases based on that. Changing
behavior in production vs. test is problematic, though...

- Eric