On Wed, Feb 12, 2020 at 9:37 PM Daimeng Wang <
dwan...@ucr.edu> wrote:
>
> Hi Dmitry,
>
> Will do.
>
> You say "can operate initially", why only initially?
>
> By initially we mean the option to use reinforcement learning can be set when Syzkaller start running. In theory it can benefit Syzkaller throughout the fuzzing process. Sorry for the confusion.
>
> "schedule fuzzing tasks (generate, mutate, triage)" - why does it make sense to ever de-prioritize triage? If we don't triage, we don't get benefit from any other tasks, so I would assume it should be the highest priority regardless. However, mutate/generate may be subject to tuning.
>
> We do find that delaying triage at the fuzzer start can impact the initial seeds Syzkaller creates. Giving triage absolute priority will result in many initial seeds created by minimization. As the fuzzer runs for longer, we do find that reinforcement learning reaches the same agreement on giving triage absolute priority.
Ah, interesting.
I think inputs produced during minimization are somewhat similar to
the "smash" phase, where we indeed try to produce more derivative
inputs from the new input. The concern is that if we pile lots of
inputs into the triage queue and then the VM crashes, we lose all of
that (including potentially part of initial corpus). Maybe it makes
sense to introduce 2 triage queues (primary and secondary) and add
minimization results (and maybe inputs produced during smash) into the
secondary one.
Or maybe a more fundamental solution is to send inputs to the manager
sooner (e.g. before minimization) and then it will distribute them for
minimization and smashing later.
> --
> Daimeng (Desmond) Wang