syzkaller
syzkaller copied to clipboard
pkg/fuzzer: pregenerate gen/fuzz requests
Mutation can be quite slow and it's on the critical ExchangeInfo path. Pregenerate gen/fuzz requests in a separate goroutine, so that they are readily available for consumption most of the time.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 62.0%. Comparing base (
eaa9ee9) to head (359d28c). Report is 1 commits behind head on master.
Additional details and impacted files
| Files | Coverage Δ | |
|---|---|---|
| pkg/fuzzer/fuzzer.go | 82.2% <100.0%> (+1.3%) |
:arrow_up: |
It looks like a single goroutine can't keep up pregenerating inputs:
I think we need to start NumCPU goroutines + pre-serialize programs in Requests, so that Exchange can just take the byte slice and send.
Did you observe any performance improvements?
And you tested it with the non-instrumented kernel on VMs, right? I think when a kernel is instrumented, and especially when we're on Cloud and have extra network-related delays, the CPU time spent on gen/fuzz operations won't be that much of a bottleneck.