aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/corpus/minimize.go
Commit message (Collapse)AuthorAgeFilesLines
* pkg/corpus: upgrade corpus minimization algorithmGrigory Bazilevich6 days1-1/+20
|
* pkg/corpus: support multiple focus areasAleksandr Nogikh2024-10-251-6/+13
| | | | | | | | Focus area assigns a fuzzing priority to a set of PCs. When running ChooseProgram(), corpus will first select a focus area proportionally to the specified weights, and only then continue with selecting a program belonging to it.
* pkg/corpus: prefer smaller programs during minimizationAleksandr Nogikh2024-08-071-3/+9
| | | | | | | | | | | | | Occasionally, deflake() and minimize() fail and we end up with huge programs in the syzkaller corpus. Huge programs in the corpus, in turn, lead to slower corpus triage and slower exec/sec overall, since many of the executed programs are based on the ones from the corpus. A slightly bigger corpus with on average shorter and more focused programs sounds like a more desirable outcome. Give preference to smaller programs during minimization. It should hopefully improve the situation over time.
* pkg/corpus: don't overwrite ProgsListAleksandr Nogikh2024-05-131-4/+3
| | | | | | | There's still a risk of a race between the pointer overwriting and accesses to the embedded object. Let's use an internal replace() method instead.
* pkg/corpus: avoid a race in Corpus.Minimize()Aleksandr Nogikh2024-04-051-1/+3
| | | | | | | | The following two operations were in conflict: 1) Overwriting of corpus.ProgramsList in Minimize(). 2) ProgramsList.ChooseProgram() that used its own mutex. Instead of overwriting the object, let's create a new one.
* pkg/corpus: a separate package for the corpus functionalityAleksandr Nogikh2024-03-181-0/+41
pkg/fuzzer and syz-manager have a common corpus functionality that can be well be unified. Create a separate pkg/corpus package that would be used by both of them. It will simplify further work of moving pkg/fuzzer to the host.