jjb: lava: Reimplement kprobe fuzzing job
authorFrancis Deslauriers <francis.deslauriers@efficios.com>
Mon, 12 Mar 2018 20:13:32 +0000 (16:13 -0400)
committerFrancis Deslauriers <francis.deslauriers@efficios.com>
Wed, 14 Mar 2018 19:08:33 +0000 (15:08 -0400)
commit6dffa64f09899cc452e4824eabb1d15ddd9ab155
treeb12209f483839a7c2739efa91764a0652407be93
parent19278dc71704426ba786c899f03db6241ff1de3e
jjb: lava: Reimplement kprobe fuzzing job

This commits reimplements the kprobe fuzzing job in Python.

The Lava job is split into two stages. The first stage generates the
list of instrumentation points to try and saves it to the Lava job.
The second stage, reads this file and perform the fuzzing.

To save the instrumentation points file, we need to attach it to the job
from a Lava test shell that doesn't crash since that would prevent the
file from being saved. Because the fuzzing stage is likely to crash, we
need to do the generation and saving in a different stage.

In the past, we only fuzzed kallsyms symbols. Now we also fuzz random
offsets from these symbols and random addresses in the entire address
range.

We now save the list of instrumentation points before running the
fuzzing, so we don't have to print tested symbols along the way.
Instead, at each iteration, we print what interval of lines we are
currently testing. When we witness a crash, we can go back to the saved
file to see what instrumentation points caused it.

Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
lava/system-tests/kprobe-fuzzing-generate-data.yml [new file with mode: 0644]
lava/system-tests/kprobe-fuzzing-tests.yml
scripts/system-tests/kprobe-fuzzing.sh [deleted file]
scripts/system-tests/lava-submit.py
scripts/system-tests/run-kprobe-fuzzing.py [new file with mode: 0644]
scripts/system-tests/run-kprobe-generate-instr-points.py [new file with mode: 0644]
This page took 0.025991 seconds and 4 git commands to generate.