29 Commits

Author SHA1 Message Date
Dmitry Vyukov
68621900a3 pkg/report: move from report 2017-06-17 14:41:15 +02:00
Dmitry Vyukov
ec95d17c32 pkg/cover: move from cover 2017-06-17 14:41:15 +02:00
Dmitry Vyukov
4cc7e08628 all: use osutil.IsExist instead of os.Stat 2017-06-17 12:23:52 +02:00
Andrey Konovalov
493434090e report: extract guilty file 2017-06-13 19:33:21 +02:00
Dmitry Vyukov
23b94422d3 pkg/log: move from log 2017-06-03 10:41:09 +02:00
Dmitry Vyukov
22361c62e9 manager: collect crash info without holding the global mutex
Crash collection just reads files, so the mutex is unnecessary.
2017-01-30 15:23:29 +01:00
Dmitry Vyukov
8365c3838d all: implement edge coverage
Currently syzkaller uses per-call basic block (BB) coverage.
This change implements edge (not-per-call) coverage.
Edge coverage is more detailed than BB coverage as it captures
not-taken branches, looping, etc. So it provides better feedback signal.
This coverage is now called "signal" throughout the code.
BB code coverage is also collected as it is required for visualisation.
Not doing per-call coverage reduces corpus ~6-7x (from ~35K to ~5K),
this has profound effect on fuzzing efficiency.
2017-01-27 20:46:18 +01:00
Dmitry Vyukov
823604de7e syz-manager: track fuzzing time
Fuzzing time is amount of time we spent actually fuzzing.
It excludes VM creation time, crash reproducing time, etc.
On the other hand it is multipled by number of currently
fuzzing VMs, so it can be larger than uptime time.
2017-01-20 14:56:20 +01:00
Dmitry Vyukov
f6c7b90523 syz-manager: speed up crash reading
Currently we read lots of unnecessary files. This is slow on GCE.
Read only necessary info.
For summary report use on readdirnames (which does not do stat on every file).
For detailed crash report read additional info, but only for this crash.
2017-01-16 21:39:34 +01:00
Dmitry Vyukov
ec9744f3e5 syz-manager, syz-gce: output 20 log lines instead of 50 in web UI
50 lines take too much space, there is scroll bar if necessary.
2017-01-09 20:19:44 +01:00
Dmitry Vyukov
9604794dce manager: reproduce crashes on the fly
With this change manager will run reproduction on crashes
until reproducer is discovered, but at most 3 times.

If reproducer is discovered it is saved with crashes and shown on the web UI.
2016-11-25 11:07:52 +01:00
Andrey Konovalov
5f1dc34693 manager: add empty line before per-call coverage in html 2016-11-22 16:06:49 +01:00
Dmitry Vyukov
128816142c syz-gce,syz-manager: add name config parameter
Name is used for identification on web ui
and included in gce instance names (so that
several managers can coexist in a single project).
2016-11-16 13:19:33 +01:00
Dmitry Vyukov
f5a15094af syz-gce, syz-manager: save image tag in syz-gce, show in syz-manager 2016-10-10 17:32:27 +02:00
Dmitry Vyukov
ef3ee4ad56 manager: minor tweaks to web ui 2016-10-10 13:11:31 +02:00
Dmitry Vyukov
6796d65400 syz-manager, syz-gce: show latest log messages in log textarea 2016-10-10 13:00:27 +02:00
Dmitry Vyukov
1af94b8f0c manager: show cached log in web ui 2016-10-09 11:45:39 +02:00
Dmitry Vyukov
222090e3b4 log: add package
Log is a simple wrapper around std log package.
It is meant to solve 2 main problems:
1. Logging from non-main packages (mainly, vm/* packages).
   Currently they can either always log or not log at all.
   But they can't respect program verbosity setting.
   Log package allows all packages to use the same verbosity setting.
2. Exposing recent logs in html UI.
   Namely we want to tee logs to console and html UI.
2016-10-09 11:27:48 +02:00
Dmitry Vyukov
ff62857ef3 manager: fix html table markup 2016-10-07 09:25:42 +02:00
Dmitry Vyukov
f032ffb788 manager: unify handling of various stats in web ui 2016-10-06 19:53:32 +02:00
Dmitry Vyukov
ec073e08ad manager: show crashes in web ui 2016-10-06 18:48:14 +02:00
Dmitry Vyukov
2bdb521fb0 manager: server http over ipv4
ipv4 is still more prevalent. In particular, GCE does not support ipv6.
2016-10-06 16:22:35 +02:00
Dmitry Vyukov
6b42c2d6da manager: show unique coverage
Add an option to view unique coverage per syscall (i.e. not covered
by any other calls) and unique coverage per-program (not covered by
any other program).
2016-09-06 19:34:55 +02:00
Dmitry Vyukov
96cc1ccc79 manager: measure execution speed starting from first VM connect
Currently execution speed is considerably skewed on start
because we take into account VM boot time.
2016-08-21 19:04:50 -07:00
Dmitry Vyukov
2db4e4554b manager: print keep alive to stdout
Print a message with total number of programs executed every 10 seconds.
Helps to understand if this thing is working or not.
2016-08-05 19:42:24 +02:00
Dmitry Vyukov
862594f1b6 manager: don't confuse users with zero coverage 2016-02-18 21:48:45 +01:00
Dmitry Vyukov
d439da5b7c manager: do GC after cover profile generation
Don't retain more memory than necessary.
2016-02-16 15:07:27 +01:00
Dmitry Vyukov
36b96db4da manager: import net/http/pprof
Also expose how much memory is spent on coverage information.
2016-01-19 12:29:59 +01:00
Dmitry Vyukov
8e7ca7c5ff remove master and naming overhaul
Remove master process entirely, it is not useful in its current form.
We first need to understand what we want from it, and them re-implement it.

Prefix all binaries with syz- to avoid name clashes.
2015-12-17 16:06:33 +01:00