diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2024-10-24 10:22:25 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2024-10-25 12:08:02 +0000 |
| commit | 9a199dec544ca9f1560a7352d0d003cf9206d8c5 (patch) | |
| tree | 589d3c30946513dc5d1349d781ef82b67dcd4279 /syz-manager/manager.go | |
| parent | 479141f703a43adab07cba7f8b3c99399fbbeb68 (diff) | |
pkg/mgrconfig, syz-manager: support focus areas
Switch from the CoverageFilter to the more flexible mechanism of focus
areas.
Diffstat (limited to 'syz-manager/manager.go')
| -rw-r--r-- | syz-manager/manager.go | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/syz-manager/manager.go b/syz-manager/manager.go index 66713e43b..eeab0a290 100644 --- a/syz-manager/manager.go +++ b/syz-manager/manager.go @@ -24,7 +24,6 @@ import ( "github.com/google/syzkaller/dashboard/dashapi" "github.com/google/syzkaller/pkg/asset" "github.com/google/syzkaller/pkg/corpus" - "github.com/google/syzkaller/pkg/cover/backend" "github.com/google/syzkaller/pkg/csource" "github.com/google/syzkaller/pkg/db" "github.com/google/syzkaller/pkg/flatrpc" @@ -92,7 +91,7 @@ type Manager struct { checkDone atomic.Bool reportGenerator *manager.ReportGeneratorWrapper fresh bool - coverFilter map[uint64]struct{} // includes only coverage PCs + coverFilters manager.CoverageFilters dash *dashapi.Dashboard // This is specifically separated from dash, so that we can keep dash = nil when @@ -876,11 +875,10 @@ func (mgr *Manager) uploadReproAssets(repro *repro.Result) []dashapi.NewAsset { func (mgr *Manager) corpusInputHandler(updates <-chan corpus.NewItemEvent) { for update := range updates { - if len(update.NewCover) != 0 && mgr.coverFilter != nil { + if len(update.NewCover) != 0 && mgr.coverFilters.ExecutorFilter != nil { filtered := 0 for _, pc := range update.NewCover { - pc = backend.PreviousInstructionPC(mgr.cfg.SysTarget, mgr.cfg.Type, pc) - if _, ok := mgr.coverFilter[pc]; ok { + if _, ok := mgr.coverFilters.ExecutorFilter[pc]; ok { filtered++ } } @@ -1329,17 +1327,22 @@ func (mgr *Manager) dashboardReproTasks() { func (mgr *Manager) CoverageFilter(modules []*vminfo.KernelModule) []uint64 { mgr.reportGenerator.Init(modules) - execFilter, filter, err := manager.CreateCoverageFilter(mgr.reportGenerator, mgr.cfg.CovFilter) + filters, err := manager.PrepareCoverageFilters(mgr.reportGenerator, mgr.cfg) if err != nil { log.Fatalf("failed to init coverage filter: %v", err) } - mgr.coverFilter = filter + mgr.coverFilters = filters mgr.http.Cover.Store(&manager.CoverageInfo{ Modules: modules, ReportGenerator: mgr.reportGenerator, - CoverFilter: filter, + CoverFilter: filters.ExecutorFilter, }) - return execFilter + mgr.corpus.SetFocusAreas(filters.Areas) + var pcs []uint64 + for pc := range filters.ExecutorFilter { + pcs = append(pcs, pc) + } + return pcs } func publicWebAddr(addr string) string { |
