HomePhabricator

[libFuzzer] Scale energy assigned to each input based on input execution time.

Authored by dokyungs on Aug 17 2020, 9:59 AM.

Description

[libFuzzer] Scale energy assigned to each input based on input execution time.

This patch scales the energy computed by the Entropic schedule based on the
execution time of each input. The input execution time is compared with the
average execution time of inputs in the corpus, and, based on the amount by
which they differ, the energy is scaled from 0.1x (for inputs executing slow) to
3x (for inputs executing fast). Note that the exact scaling criteria and formula
is borrowed from AFL.

On FuzzBench, this gives a sizeable throughput increase, which in turn leads to
more coverage on several benchmarks. For details, see the following report.

https://storage.googleapis.com/fuzzer-test-suite-public/exectime-report/index.html

Differential Revision: https://reviews.llvm.org/D86092

Details

Committed
dokyungsSep 3 2020, 1:38 PM
Differential Revision
D86092: [libFuzzer] Scale energy assigned to each input based on input execution time.
Parents
rG952dc7f288a2: [gn build] Port 7fff1fbd3ce
Branches
Unknown
Tags
Unknown