Skip to content

Commit

Permalink
pkg/signal: delete unused
Browse files Browse the repository at this point in the history
  • Loading branch information
tarasmadan committed Feb 7, 2025
1 parent 3c9f3d0 commit 983f360
Show file tree
Hide file tree
Showing 13 changed files with 54 additions and 68 deletions.
6 changes: 3 additions & 3 deletions pkg/corpus/corpus.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ type Item struct {
Call int
Prog *prog.Prog
HasAny bool // whether the prog contains squashed arguments
Signal signal.Signal
Signal *signal.Signal
Cover []uint64
Updates []ItemUpdate

Expand All @@ -112,7 +112,7 @@ func (item Item) StringCall() string {
type NewInput struct {
Prog *prog.Prog
Call int
Signal signal.Signal
Signal *signal.Signal
Cover []uint64
RawCover []uint64
}
Expand Down Expand Up @@ -208,7 +208,7 @@ func (corpus *Corpus) applyFocusAreas(item *Item, coverDelta []uint64) {
}
}

func (corpus *Corpus) Signal() signal.Signal {
func (corpus *Corpus) Signal() *signal.Signal {
corpus.mu.RLock()
defer corpus.mu.RUnlock()
return corpus.signal.Copy()
Expand Down
4 changes: 2 additions & 2 deletions pkg/corpus/corpus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ func TestCorpusOperation(t *testing.T) {
}

// Verify the total signal.
assert.Equal(t, corpus.StatSignal.Val(), 5)
assert.Equal(t, corpus.StatProgs.Val(), 2)
assert.Equal(t, 5, corpus.StatSignal.Val())
assert.Equal(t, 2, corpus.StatProgs.Val())

corpus.Minimize(true)
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/corpus/prio.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func (pl *ProgramsList) chooseProgram(r *rand.Rand) *prog.Prog {
return pl.progs[idx]
}

func (pl *ProgramsList) saveProgram(p *prog.Prog, signal signal.Signal) {
func (pl *ProgramsList) saveProgram(p *prog.Prog, signal *signal.Signal) {
prio := int64(signal.Len())
if prio == 0 {
prio = 1
Expand Down
12 changes: 6 additions & 6 deletions pkg/fuzzer/cover.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ 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
maxSignal *signal.Signal // max signal ever observed (including flakes)
newSignal *signal.Signal // newly identified max signal
}

func newCover() *Cover {
Expand All @@ -24,7 +24,7 @@ func newCover() *Cover {
return cover
}

func (cover *Cover) addRawMaxSignal(signal []uint64, prio uint8) signal.Signal {
func (cover *Cover) addRawMaxSignal(signal []uint64, prio uint8) *signal.Signal {
cover.mu.Lock()
defer cover.mu.Unlock()
diff := cover.maxSignal.DiffRaw(signal, prio)
Expand All @@ -36,16 +36,16 @@ func (cover *Cover) addRawMaxSignal(signal []uint64, prio uint8) signal.Signal {
return diff
}

func (cover *Cover) CopyMaxSignal() signal.Signal {
func (cover *Cover) CopyMaxSignal() *signal.Signal {
cover.mu.RLock()
defer cover.mu.RUnlock()
return cover.maxSignal.Copy()
}

func (cover *Cover) GrabSignalDelta() signal.Signal {
func (cover *Cover) GrabSignalDelta() *signal.Signal {
cover.mu.Lock()
defer cover.mu.Unlock()
plus := cover.newSignal
cover.newSignal = signal.Nil
cover.newSignal = nil
return plus
}
2 changes: 1 addition & 1 deletion pkg/fuzzer/fuzzer.go
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ func (fuzzer *Fuzzer) triageProgCall(p *prog.Prog, info *flatrpc.CallInfo, call
(*triage)[call] = &triageCall{
errno: info.Error,
newSignal: newMaxSignal,
signals: [deflakeNeedRuns]signal.Signal{signal.FromRaw(info.Signal, prio)},
signals: [deflakeNeedRuns]*signal.Signal{signal.FromRaw(info.Signal, prio)},
}
}

Expand Down
16 changes: 8 additions & 8 deletions pkg/fuzzer/job.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,12 @@ type triageJob struct {

type triageCall struct {
errno int32
newSignal signal.Signal
newSignal *signal.Signal

// Filled after deflake:
signals [deflakeNeedRuns]signal.Signal
stableSignal signal.Signal
newStableSignal signal.Signal
signals [deflakeNeedRuns]*signal.Signal
stableSignal *signal.Signal
newStableSignal *signal.Signal
cover cover.Cover
rawCover []uint64
}
Expand Down Expand Up @@ -356,7 +356,7 @@ func (job *triageJob) minimize(call int, info *triageCall) (*prog.Prog, int) {
if stop {
return false
}
var mergedSignal signal.Signal
var mergedSignal *signal.Signal
for i := 0; i < minimizeAttempts; i++ {
result := job.execute(&queue.Request{
Prog: p1,
Expand Down Expand Up @@ -408,18 +408,18 @@ func reexecutionSuccess(info *flatrpc.ProgInfo, oldErrno int32, call int) bool {
return info.Extra != nil && len(info.Extra.Signal) != 0
}

func getSignalAndCover(p *prog.Prog, info *flatrpc.ProgInfo, call int) signal.Signal {
func getSignalAndCover(p *prog.Prog, info *flatrpc.ProgInfo, call int) *signal.Signal {
inf := info.Extra
if call != -1 {
inf = info.Calls[call]
}
if inf == nil {
return signal.Nil
return nil
}
return signal.FromRaw(inf.Signal, signalPrio(p, inf, call))
}

func signalPreview(s signal.Signal) string {
func signalPreview(s *signal.Signal) string {
if s.Len() > 0 && s.Len() <= 3 {
var sb strings.Builder
sb.WriteString(" (")
Expand Down
4 changes: 2 additions & 2 deletions pkg/fuzzer/job_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ func TestDeflake(t *testing.T) {
info := test.Info
info.signals[0] = test.Info.newSignal.Copy()
info.cover = nil
info.stableSignal = signal.Nil
info.newStableSignal = signal.Nil
info.stableSignal = nil
info.newStableSignal = nil
testJob := &triageJob{
p: prog,
calls: map[int]*triageCall{0: &info},
Expand Down
2 changes: 1 addition & 1 deletion pkg/fuzzer/queue/queue.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ func (r *Request) Validate() error {
return fmt.Errorf("program is not set")
}
sandboxes := flatrpc.ExecEnvSandboxNone | flatrpc.ExecEnvSandboxSetuid |
flatrpc.ExecEnvSandboxNamespace | flatrpc.ExecEnvSandboxAndroid
flatrpc.ExecEnvSandboxNamespace | flatrpc.ExecEnvSandboxAndroid
if r.ExecOpts.EnvFlags&sandboxes == 0 {
return fmt.Errorf("no sandboxes set")
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/manager/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -330,11 +330,11 @@ func (kc *kernelContext) Loop() error {
return eg.Wait()
}

func (kc *kernelContext) MaxSignal() signal.Signal {
func (kc *kernelContext) MaxSignal() *signal.Signal {
if fuzzer := kc.fuzzer.Load(); fuzzer != nil {
return fuzzer.Cover.CopyMaxSignal()
}
return signal.Nil
return nil
}

func (kc *kernelContext) BugFrames() (leaks, races []string) {
Expand Down
2 changes: 1 addition & 1 deletion pkg/rpcserver/local.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ func (ctx *local) BugFrames() ([]string, []string) {
return nil, nil
}

func (ctx *local) MaxSignal() signal.Signal {
func (ctx *local) MaxSignal() *signal.Signal {
return signal.FromRaw(ctx.cfg.MaxSignal, 0)
}

Expand Down
6 changes: 3 additions & 3 deletions pkg/rpcserver/rpcserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ type RemoteConfig struct {

//go:generate ../../tools/mockery.sh --name Manager --output ./mocks
type Manager interface {
MaxSignal() signal.Signal
MaxSignal() *signal.Signal
BugFrames() (leaks []string, races []string)
MachineChecked(features flatrpc.Feature, syscalls map[*prog.Syscall]bool) (queue.Source, error)
CoverageFilter(modules []*vminfo.KernelModule) ([]uint64, error)
Expand All @@ -80,7 +80,7 @@ type Server interface {
CreateInstance(id int, injectExec chan<- bool, updInfo dispatcher.UpdateInfo) chan error
ShutdownInstance(id int, crashed bool, extraExecs ...report.ExecutorInfo) ([]ExecRecord, []byte)
StopFuzzing(id int)
DistributeSignalDelta(plus signal.Signal)
DistributeSignalDelta(plus *signal.Signal)
}

type server struct {
Expand Down Expand Up @@ -564,7 +564,7 @@ func (serv *server) ShutdownInstance(id int, crashed bool, extraExecs ...report.
return runner.Shutdown(crashed, extraExecs...), runner.MachineInfo()
}

func (serv *server) DistributeSignalDelta(plus signal.Signal) {
func (serv *server) DistributeSignalDelta(plus *signal.Signal) {
plusRaw := plus.ToRaw()
serv.foreachRunnerAsync(func(runner *Runner) {
runner.SendSignalUpdate(plusRaw)
Expand Down
58 changes: 22 additions & 36 deletions pkg/signal/signal.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,36 +12,36 @@ type Signal struct {
m map[uint64]int8
}

var Nil = Signal{}

func makeSignal(n ...int) Signal {
func makeSignal(n ...int) *Signal {
if len(n) == 0 {
return Signal{
return &Signal{
m: make(map[uint64]int8),
}
}
return Signal{
return &Signal{
m: make(map[uint64]int8, n[0]),
}
}

func (s Signal) Len() int {
func (s *Signal) Len() int {
return len(s.m)
}

func (s Signal) Empty() bool {
func (s *Signal) Empty() bool {
return s.Len() == 0
}

func (s Signal) Copy() Signal {
return Signal{
func (s *Signal) Copy() *Signal {
return &Signal{
m: maps.Clone(s.m),
}
}

func FromRaw(raw []uint64, prio uint8) Signal {


func FromRaw(raw []uint64, prio uint8) *Signal {
if len(raw) == 0 {
return Nil
return nil
}
s := makeSignal(len(raw))
for _, e := range raw {
Expand All @@ -50,28 +50,14 @@ func FromRaw(raw []uint64, prio uint8) Signal {
return s
}

func (s Signal) Diff(s1 Signal) Signal {
if s1.Empty() {
return Nil
}
var res map[uint64]int8
for e, p1 := range s1.m {
if p, ok := s.m[e]; ok && p >= p1 {
continue
}
if res == nil {
res = make(map[uint64]int8)
}
res[e] = p1
func (s *Signal) InnerMap() *map[uint64]int8 {
if s.m == nil {
s.m = make(map[uint64]int8)
}
return Signal{m: res}
}

func (s Signal) InnerMap() *map[uint64]int8 {
return &s.m
}

func (s Signal) DiffRaw(raw []uint64, prio uint8) Signal {
func (s *Signal) DiffRaw(raw []uint64, prio uint8) *Signal {
var res map[uint64]int8
for _, e := range raw {
if p, ok := s.m[e]; ok && p >= int8(prio) {
Expand All @@ -82,10 +68,10 @@ func (s Signal) DiffRaw(raw []uint64, prio uint8) Signal {
}
res[e] = int8(prio)
}
return Signal{m: res}
return &Signal{m: res}
}

func (s Signal) IntersectsWith(other Signal) bool {
func (s *Signal) IntersectsWith(other *Signal) bool {
for e, p := range s.m {
if p1, ok := other.m[e]; ok && p1 >= p {
return true
Expand All @@ -94,9 +80,9 @@ func (s Signal) IntersectsWith(other Signal) bool {
return false
}

func (s Signal) Intersection(s1 Signal) Signal {
func (s *Signal) Intersection(s1 *Signal) *Signal {
if s1.Empty() {
return Nil
return nil
}
res := makeSignal(s.Len())
for e, p := range s.m {
Expand All @@ -107,7 +93,7 @@ func (s Signal) Intersection(s1 Signal) Signal {
return res
}

func (s Signal) Merge(s1 Signal) {
func (s *Signal) Merge(s1 *Signal) {
if s1.Empty() {
return
}
Expand All @@ -121,7 +107,7 @@ func (s Signal) Merge(s1 Signal) {
}
}

func (s Signal) ToRaw() []uint64 {
func (s *Signal) ToRaw() []uint64 {
var raw []uint64
for e := range s.m {
raw = append(raw, e)
Expand All @@ -130,7 +116,7 @@ func (s Signal) ToRaw() []uint64 {
}

type Context struct {
Signal Signal
Signal *Signal
Context interface{}
}

Expand Down
4 changes: 2 additions & 2 deletions syz-manager/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -1257,11 +1257,11 @@ func (mgr *Manager) corpusMinimization() {
}
}

func (mgr *Manager) MaxSignal() signal.Signal {
func (mgr *Manager) MaxSignal() *signal.Signal {
if fuzzer := mgr.fuzzer.Load(); fuzzer != nil {
return fuzzer.Cover.CopyMaxSignal()
}
return signal.Nil
return nil
}

func (mgr *Manager) fuzzerLoop(fuzzer *fuzzer.Fuzzer) {
Expand Down

0 comments on commit 983f360

Please sign in to comment.