From 66fcb0a84fcd55ad8e1444cdd0bc0ad6592f7329 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 1 Jul 2024 14:26:05 +0200 Subject: pkg/fuzzer: try to triage on different VMs Distribute triage requests to different VMs. --- pkg/rpcserver/runner.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'pkg/rpcserver/runner.go') diff --git a/pkg/rpcserver/runner.go b/pkg/rpcserver/runner.go index a0b519d20..f14a2ec29 100644 --- a/pkg/rpcserver/runner.go +++ b/pkg/rpcserver/runner.go @@ -25,7 +25,8 @@ import ( ) type Runner struct { - source queue.Source + id int + source *queue.Distributor procs int cover bool coverEdges bool @@ -174,7 +175,7 @@ func (runner *Runner) ConnectionLoop() error { } } for len(runner.requests)-len(runner.executing) < 2*runner.procs { - req := runner.source.Next() + req := runner.source.Next(runner.id) if req == nil { break } @@ -320,11 +321,21 @@ func (runner *Runner) sendRequest(req *queue.Request) error { } data = fileData } + var avoid uint64 + for _, id := range req.Avoid { + if id.VM == runner.id { + avoid |= uint64(1 << id.Proc) + } + } + if avoid == (uint64(1)<