Re: [RFC][PATCH 00/12] various perf fixes
From: Dmitry Vyukov
Date: Mon Feb 15 2016 - 10:05:03 EST
On Thu, Jan 14, 2016 at 11:05 AM, Dmitry Vyukov <dvyukov@xxxxxxxxxx> wrote:
> On Thu, Jan 14, 2016 at 10:35 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>> On Tue, Jan 12, 2016 at 12:26:27PM +0100, Dmitry Vyukov wrote:
>>> What do you think if we work on making syzkaller work for you locally?
>>
>> There's no easy way to do this right? I had a look at that project on
>> github and it looks like the most complex test setup possible :-(
>>
>> I don't generally do VMs so I'm not much good at setting those up nor do
>> I speak Go (although I did play the game a lot of years ago).
>>
>> Isn't there an easy way to just run syz-fuzzer on a machine without all
>> the bells and whistles on?
Peter, I want to check status of these perf crashes. I see that you
landed a bunch of patches. But I still see perf-related crashes while
running syzkaller. Are there any existing bugs left that you know
about? Or should I report new crashes?
Did you have any luck setting up syzkaller locally? That could
significantly reduce turnaround time.
> There is a way to run it without coverage on a local machine.
>
> First, you need to setup Go toolchain: download latest Go distribution
> from https://golang.org/dl:
> https://storage.googleapis.com/golang/go1.5.3.linux-amd64.tar.gz
> Unpack it to $HOME/go1.5.
>
> $ export GOROOT=$HOME/go1.5
> $ export GOPATH=$HOME/gopath
>
> Download syzkaller sources:
>
> $ go get github.com/google/syzkaller
>
> Build necessary syzkaller binaries:
>
> $ cd $GOPATH/src/github.com/google/syzkaller
> $ make
>
> Then save the following content into
> $GOPATH/src/github.com/google/syzkaller/perf.cfg
>
> {
> "http": "localhost:50000",
> "workdir": "home/gopath/src/github.com/google/syzkaller/workdir",
> "syzkaller": "/home/gopath/src/github.com/google/syzkaller",
> "vmlinux": "-",
> "type": "local",
> "count": 1,
> "procs": 16,
> "nocover": true,
> "nodropprivs": true,
> "enable_syscalls": [
> "getpid",
> "perf_event_open",
> "ioctl$PERF*",
> "prctl$void",
> "bpf$*",
> "sched_yield"
> ]
> }
>
> Alter paths as necessary. Also you can change procs parameter (number
> of parallel test processes), something like NCPU*4 would be a good
> number. Also you can add additional syscalls to the mix.
>
> Then run:
>
> $ bin/syz-manager -config perf.cfg
>
> If you run it on a separate test machine, then scp syzkaller/bin dir
> and perf.cfg to the machine (the syzkaller param in config is where it
> will search for the bin dir).
>
> If syz-manager does not appear to be doing anything useful, then pleas
> run it in the following mode and post output:
>
> $ bin/syz-manager -config perf.cfg -v 1 -debug