From 1be1a06281dccada078a2a51e8b483811af8f596 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 29 Mar 2024 15:02:10 +0100 Subject: all: refactor stats Add ability for each package to create and export own stats. Each stat is self-contained, describes how it should be presented, and there is not need to copy them from one package to another. Stats also keep historical data and allow building graphs over time. --- pkg/fuzzer/cover.go | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'pkg/fuzzer/cover.go') diff --git a/pkg/fuzzer/cover.go b/pkg/fuzzer/cover.go index 31d1fee1b..03580128d 100644 --- a/pkg/fuzzer/cover.go +++ b/pkg/fuzzer/cover.go @@ -7,6 +7,7 @@ import ( "sync" "github.com/google/syzkaller/pkg/signal" + "github.com/google/syzkaller/pkg/stats" ) // Cover keeps track of the signal known to the fuzzer. @@ -17,6 +18,13 @@ type Cover struct { dropSignal signal.Signal // the newly dropped max signal } +func newCover() *Cover { + cover := new(Cover) + stats.Create("max signal", "Maximum fuzzing signal (including flakes)", + stats.Graph("signal"), stats.LenOf(&cover.maxSignal, &cover.mu)) + return cover +} + // Signal that should no longer be chased after. // It is not returned in GrabSignalDelta(). func (cover *Cover) AddMaxSignal(sign signal.Signal) { @@ -61,18 +69,6 @@ func (cover *Cover) GrabSignalDelta() (plus, minus signal.Signal) { return } -type CoverStats struct { - MaxSignal int -} - -func (cover *Cover) Stats() CoverStats { - cover.mu.RLock() - defer cover.mu.RUnlock() - return CoverStats{ - MaxSignal: len(cover.maxSignal), - } -} - func (cover *Cover) subtract(delta signal.Signal) { cover.mu.Lock() defer cover.mu.Unlock() -- cgit mrf-deployment