From 07dedd50ee8834dbca4da7667e69e72b7d0565b9 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 27 Jun 2024 12:01:58 +0200 Subject: 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. --- pkg/fuzzer/cover.go | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) (limited to 'pkg/fuzzer/cover.go') 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 } -- cgit mrf-deployment