diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-02-12 11:44:13 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-02-17 13:12:18 +0100 |
| commit | ed8812ac86c117831a001923d3048b0acd04ed3e (patch) | |
| tree | 6b8f5973166e0543d316baa54fe03a5a7eb8670c /executor/common_linux.h | |
| parent | 72bfa6f2b74dd2db688c0ca737eb6f3fe24b6a86 (diff) | |
executor: refactor extra cover handling
One observation is that checking for extra cover is very fast
(effectively a memory load), so we can simplify code by removing
th->extra_cover and just check for it always. Additionally, we may
grab some coverage that we would miss otherwise.
Don't sleep for 500 ms at the end if colliding,
we are not going to use the extra coverage in that case anyway.
Check for extra coverage at the end every 100ms to avoid
being killed on timeout before we write any.
Make the 500ms sleep at the end parametrizable.
Enable it for syz_usb syscalls, so we get the same behavior for usb.
But this also allows to get extra coverage for other subsystems.
Some subsystems don't have a good way to detect if we will get any
extra coverage or not. Sleeping for 500ms for all programs slows down
fuzzing too much. So we check for extra coverage at the end for all
programs (cheap anyway), but sleep only for usb program.
This allows to collect extra coverage for vhost and maybe wireguard in future.
Update #806
Diffstat (limited to 'executor/common_linux.h')
0 files changed, 0 insertions, 0 deletions
