[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 19 Sep 2013, Dave Jones wrote:

> It might be worth looking at Vince's perf fuzzer to see what he's done there
> for bisecting/generating test cases.

my perf_fuzzer doesn't do anything that complicated.

In its current setup it only has one thread, which occasionally forks off 
a child but it always kills the child before forking off another.

I find the run-to-run reproducibility of traces to be surprisingly 
consistent when given the same random seed.  Even hundreds of thousands
of syscalls in I can usually hit the same bugs at roughly the same
syscall count.

I find this suprising because when perf events are involved nothing is 
deterministic; if you are measuring things like cycles with overflow, the 
cycle count is going to depend on what else is going on in the system, and 
if your overflow handler consumes randomness (hard because rand() isn't
signal-handler safe, but possible with a few hacks) you'd expect things ro 
diverge.

As for bisecting, my major problem is dependent syscalls, something that 
might not be as big an issue on trinity.  The way perf_fuzzer is set up 
you open an fd with perf_event_open(), then lots of other syscalls act on 
the fd.  So if your bisect happens to cut off the open of the fd, then 
all subsequent dependent syscalls fail.  I don't have a good automatic 
solution to that, I've so far been placing the bisect points by hand and 
just having the replayer be robust in cases where invalid dependent 
syscalls appear in the trace.

perf_fuzzer also has a somewhat human-readable log format, which wastes 
disk space but makes it easier to do somewhat manual bisects using a text 
editor.

Vince






--
To unsubscribe from this list: send the line "unsubscribe trinity" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SCSI]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux