aboutsummaryrefslogtreecommitdiffstats
path: root/tools/syz-testbed/stats.go
Commit message (Collapse)AuthorAgeFilesLines
* all: use any instead of interface{}Dmitry Vyukov2025-12-221-1/+1
| | | | Any is the preferred over interface{} now in Go.
* all: fix recvcheck errorsTaras Madan2025-02-071-10/+10
|
* all: use min/max functionsDmitry Vyukov2025-01-171-4/+1
| | | | They are shorter, more readable, and don't require temp vars.
* pkg/manager: factor out the crash storage functionalityAleksandr Nogikh2024-10-111-25/+7
| | | | | | It reduces the size of the syz-manager/ code and makes it testable. Use it in syz-testbed.
* pkg/stat: rename package name to singular formDmitry Vyukov2024-07-241-1/+1
| | | | | | | | Go package names should generally be singular form: https://go.dev/blog/package-names https://rakyll.org/style-packages https://groups.google.com/g/golang-nuts/c/buBwLar1gNw
* pkg/stats: split out pkg/stats/sampleAleksandr Nogikh2024-06-141-13/+13
| | | | | This will reduce the number of dependencies needed for the main syzkaller tools.
* tools/syz-testbed: allow to view unaligned recordsDmitry Vyukov2024-06-031-1/+23
| | | | | This is useful if instances run for different amount of time. It's hard to make any sense out of aligned records in that case.
* tools/syz-testbed: remove unused variableDmitry Vyukov2024-06-031-4/+0
|
* tools/syz-testbed: limit the number of graph data pointsAleksandr Nogikh2024-04-291-1/+13
| | | | | In long runs, it can be thousands of points for every single graph that we render. It's much more than is actually needed.
* all: ioutil is deprecated in go1.19 (#3718)Taras Madan2023-02-231-3/+2
|
* tools/syz-testbed: consider the resulting bug titlesAleksandr Nogikh2022-11-251-1/+3
| | | | | | | | It's more correct to evaluate whether we managed to reproduce the original bug rather than just any bug. Retrieve the title information from syz-repro and pretent that the reproduction failed if the title does not match.
* tools/syz-testbed: accept syzkaller workdir as crash log sourceAleksandr Nogikh2022-02-251-3/+16
|
* tools/syz-testbed: support experiments with syz-reproAleksandr Nogikh2022-02-251-1/+113
| | | | | | | Add a "syz-repro" target and 3 tables: - List of all performed (and ongoing) reproductions. - Comparison of repro rate for different bugs on different checkouts. - Comparison of the share of C reproducers.
* tools/syz-testbed: support multiple targetsAleksandr Nogikh2022-02-251-8/+21
| | | | | | | | | | | | | | | Refactor the code of syz-testbed to enable support of different targets. This required the following changes: - Instead of doing mass start and mass restart of instances, let them be more independent. - Support different types of instances, which may have different expectations of the target behavior. E.g. syz-manager normally never exits, while syz-repro is expected to exit after a certain time. - Factor out stats management, as stat entries may be different for different targets. - Introduce locking to TestbedCtx and Checkout, as slices there can be modified at arbitrary times.
* tools/syz-testbed: introduce BoolCell cell typeAleksandr Nogikh2022-02-251-1/+1
|
* tools/syz-testbed: add a bug count tableAleksandr Nogikh2021-12-061-4/+29
| | | | | This table does not just collect YES/NO, but also shows the number of test runs in which syz-manager has discovered the given bug.
* tools/syz-testbed: align table per particular rowsAleksandr Nogikh2021-12-061-6/+27
| | | | | | | | | | It turns out that we often want to see the data aligned on some specific property - e.g. align all checkouts by "exec total" and see how other parameters differ. Add a preliminary support of such a feature. On a row title click, pick the minimal value in the row and wind the history of each column back until the target row value is closest to the minimal one.
* tools/syz-testbed: show one stat view at a timeAleksandr Nogikh2021-12-061-0/+9
| | | | | In the HTML form, show only one stat view at a time. Let user switch between the views.
* tools/syz-testbed: introduce a special type for tableAleksandr Nogikh2021-12-061-39/+9
| | | | | This simplifies table generation and will let us more easily implement relative difference and p-value calculation and printing.
* tools/syz-testbed: use median instead of meanAleksandr Nogikh2021-12-061-36/+61
| | | | | | | Data generated in experiments indicates that the distribution for most (all?) syzkaller parameters is not perfectly normal - it is skewed and there are many outliers. Median seems like a more adequate statistic in this case.
* tools/syz-testbed: align checkout stats to the same timeAleksandr Nogikh2021-11-121-6/+16
| | | | | | | | | | If `max_instances` is smaller than the total number of checkouts in the testbed configuration file, the averaged per checkout statistics was inconsistend with respect to the point in time. Checkouts with running instances were winded back to the current uptime, while others used to show the complete data. Fix that inconsistency.
* tools/syz-testbed: add a simple web interfaceAleksandr Nogikh2021-11-121-0/+13
| | | | For now, just display the avg stats and generate graphs on demand.
* tools/syz-testbed: produce results indefinitelyAleksandr Nogikh2021-11-121-75/+67
| | | | | | | | | | | | | | | | | | Creation of instances only at the start of the tool limits the scale of the experiments. Instead of setting up instances at the beginning, create, start and stop them dynamically. This allows to conduct much larger experiments while keeping the maximal resource consuption under control. When an instance has been executing for the specified time, it is stopped and replaced by another one. Introduce two new parameters: - max_instances - the maximal number of simultaneously running instances. - run_hours - the lifetime (in hours) of a single instance. The longer the tool runs, the more test results will be accumulated for each checkout specified in the configuration file.
* tools: introduce the syz-testbed toolAleksandr Nogikh2021-10-201-0/+248
The tool automates check-out, compilation, config generation and a simultaneous startup of a number of syz-manager instances. Also, it can collect and output the combined statistics from these managers in order to simplify further analysis of the results.