Re: [RESEND PATCH 0/5] perf core: Support overwrite ring buffer

From: Peter Zijlstra
Date: Tue Mar 08 2016 - 08:58:38 EST


On Tue, Mar 08, 2016 at 02:49:01PM +0100, Ingo Molnar wrote:
>
> * Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> > On Mon, Mar 07, 2016 at 03:50:14AM +0000, Wang Nan wrote:
> > > This patch set has been posted multiple times (with and without
> > > corresponding 'perf tool' patches), and doesn't receive further
> > > comment. I think it should be okay to merge them into mainline.
> > > There are many perf's improvement depend on it. However, Peter
> > > is not responsive after I fixed some problems he pointed out.
> > >
> > > Introduces 'write_backward' into perf_event_attr, allows kernel
> > > writing the ring buffer from the end of it. This feature allows
> > > extracting data from overwritable ring buffer.
> > >
> > > Wang Nan (5):
> > > perf core: Introduce new ioctl options to pause and resume ring buffer
> > > perf core: Set event's default overflow_handler
> > > perf core: Prepare writing into ring buffer from end
> > > perf core: Add backward attribute to perf event
> > > perf core: Reduce perf event output overhead by new overflow handler
> >
> > perf kernel features are currently on hold until I can manage to run a
> > fuzzer for more than a few minutes without my machine having a seizure.
>
> Btw., could you describe exactly what commands you are running, with what
> configuration options (if that matters), so that people who'd like our feature
> freeze to be lifted can help out?

Mostly syz-kaller, but also Vince's perf-fuzzer and your perf-stress
script, which I'm not sure is publicly available.

perf_fuzzer lives at:

https://github.com/deater/perf_event_tests.git

Here's a thread on syz-kaller:

lkml.kernel.org/r/CACT4Y+Ym0TZLkmRrM0ZGgLpu8kqS-YjoWTMrvaLz=tx2tnyO3w@xxxxxxxxxxxxxx

If things have shifted again I'm sure Dmitry is willing to help.

I run the thing natively on actual real hardware, which ensure I get to
test the PMU drivers too.

# cat go-fuzz.sh
#!/bin/bash

echo 1 > /proc/sys/kernel/traceoff_on_warning
echo 1 > /debug/tracing/options/stacktrace
echo 1 > /debug/tracing/events/sched/enable
cd gopath/src/github.com/google/syzkaller/
./bin/syz-manager -config perf.cfg

# cat gopath/src/github.com/google/syzkaller/perf.cfg

{
"http": "localhost:50000",
"workdir": "/root/gopath/src/github.com/google/syzkaller/workdir",
"syzkaller": "/root/gopath/src/github.com/google/syzkaller",
"vmlinux": "-",
"type": "local",
"count": 1,
"procs": 160,
"cover": false,
"dropprivs": false,
"enable_syscalls": [
"getpid",
"gettid",
"perf_event_open",
"ioctl$PERF*",
"prctl$void",
"bpf$*",
"sched_yield"
]
}