aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/fuzzer/cover.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-06-27 12:01:58 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-07-02 15:07:08 +0000
commit07dedd50ee8834dbca4da7667e69e72b7d0565b9 (patch)
tree44925ee15f9fad9ad0641435fd459d25375c811d /pkg/fuzzer/cover.go
parent6a2ff1acbd95b320444a729d9d281835be88ec66 (diff)
pkg/fuzzer: remove signal rotation
Signal rotation is intended to make the fuzzer re-discover flaky coverage in non flaky way. However, taking into accout that we get effectively the same effect after each manager restart, and that the fuzzer is overloaded with triage/smash jobs, it does not look to be worth it.
Diffstat (limited to 'pkg/fuzzer/cover.go')
-rw-r--r--pkg/fuzzer/cover.go31
1 files changed, 6 insertions, 25 deletions
diff --git a/pkg/fuzzer/cover.go b/pkg/fuzzer/cover.go
index c34a3b219..4421693b1 100644
--- a/pkg/fuzzer/cover.go
+++ b/pkg/fuzzer/cover.go
@@ -12,10 +12,9 @@ import (
// Cover keeps track of the signal known to the fuzzer.
type Cover struct {
- mu sync.RWMutex
- maxSignal signal.Signal // max signal ever observed (including flakes)
- newSignal signal.Signal // newly identified max signal
- dropSignal signal.Signal // the newly dropped max signal
+ mu sync.RWMutex
+ maxSignal signal.Signal // max signal ever observed (including flakes)
+ newSignal signal.Signal // newly identified max signal
}
func newCover() *Cover {
@@ -31,7 +30,6 @@ func (cover *Cover) AddMaxSignal(sign signal.Signal) {
cover.mu.Lock()
defer cover.mu.Unlock()
cover.maxSignal.Merge(sign)
- cover.dropSignal.Subtract(sign)
}
func (cover *Cover) addRawMaxSignal(signal []uint64, prio uint8) signal.Signal {
@@ -43,36 +41,19 @@ func (cover *Cover) addRawMaxSignal(signal []uint64, prio uint8) signal.Signal {
}
cover.maxSignal.Merge(diff)
cover.newSignal.Merge(diff)
- cover.dropSignal.Subtract(diff)
return diff
}
-func (cover *Cover) pureMaxSignal(corpus signal.Signal) signal.Signal {
- cover.mu.RLock()
- defer cover.mu.RUnlock()
- return corpus.Diff(cover.maxSignal)
-}
-
func (cover *Cover) CopyMaxSignal() signal.Signal {
cover.mu.RLock()
defer cover.mu.RUnlock()
return cover.maxSignal.Copy()
}
-func (cover *Cover) GrabSignalDelta() (plus, minus signal.Signal) {
+func (cover *Cover) GrabSignalDelta() signal.Signal {
cover.mu.Lock()
defer cover.mu.Unlock()
- plus = cover.newSignal
+ plus := cover.newSignal
cover.newSignal = nil
- minus = cover.dropSignal
- cover.dropSignal = nil
- return
-}
-
-func (cover *Cover) subtract(delta signal.Signal) {
- cover.mu.Lock()
- defer cover.mu.Unlock()
- cover.maxSignal.Subtract(delta)
- cover.newSignal.Subtract(delta)
- cover.dropSignal.Merge(delta)
+ return plus
}