aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/bisect/bisect.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-11-29 10:40:36 +0100
committerDmitry Vyukov <dvyukov@google.com>2020-11-30 13:33:18 +0100
commit1fd901159188a5e0c2b3559ae7ec7deff7c4e7a2 (patch)
tree82c9a88630b01824aab94866cbe1d405a7e7219d /pkg/bisect/bisect.go
parenta142e60d5cf11dc798e4909c97803d75add83a11 (diff)
pkg/mgrconfig: add prog&sys.targets targets to Config
These are widely used with the config as the refactoring shows. This removes a bunch of unnecessary code. Also fixes a number of bugs where we confused Arch with VMArch.
Diffstat (limited to 'pkg/bisect/bisect.go')
-rw-r--r--pkg/bisect/bisect.go15
1 files changed, 4 insertions, 11 deletions
diff --git a/pkg/bisect/bisect.go b/pkg/bisect/bisect.go
index 3e64233c6..76c518e6c 100644
--- a/pkg/bisect/bisect.go
+++ b/pkg/bisect/bisect.go
@@ -16,7 +16,6 @@ import (
"github.com/google/syzkaller/pkg/osutil"
"github.com/google/syzkaller/pkg/report"
"github.com/google/syzkaller/pkg/vcs"
- "github.com/google/syzkaller/sys/targets"
)
type Config struct {
@@ -29,7 +28,7 @@ type Config struct {
Kernel KernelConfig
Syzkaller SyzkallerConfig
Repro ReproConfig
- Manager mgrconfig.Config
+ Manager *mgrconfig.Config
}
type KernelConfig struct {
@@ -63,7 +62,6 @@ type ReproConfig struct {
type env struct {
cfg *Config
- target *targets.Target
repo vcs.Repo
bisecter vcs.Bisecter
minimizer vcs.ConfigMinimizer
@@ -116,7 +114,7 @@ func Run(cfg *Config) (*Result, error) {
if err != nil {
return nil, err
}
- inst, err := instance.NewEnv(&cfg.Manager)
+ inst, err := instance.NewEnv(cfg.Manager)
if err != nil {
return nil, err
}
@@ -135,13 +133,8 @@ func runImpl(cfg *Config, repo vcs.Repo, inst instance.Env) (*Result, error) {
if !ok && len(cfg.Kernel.BaselineConfig) != 0 {
return nil, fmt.Errorf("config minimization is not implemented for %v", cfg.Manager.TargetOS)
}
- target := targets.Get(cfg.Manager.TargetOS, cfg.Manager.TargetVMArch)
- if target == nil {
- return nil, fmt.Errorf("unknown target %v/%v", cfg.Manager.TargetOS, cfg.Manager.TargetVMArch)
- }
env := &env{
cfg: cfg,
- target: target,
repo: repo,
bisecter: bisecter,
minimizer: minimizer,
@@ -309,7 +302,7 @@ func (env *env) minimizeConfig() (*testResult, error) {
testResults[hash.Hash(test)] = testRes
return testRes.verdict, err
}
- minConfig, err := env.minimizer.Minimize(env.target, env.cfg.Kernel.Config,
+ minConfig, err := env.minimizer.Minimize(env.cfg.Manager.SysTarget, env.cfg.Kernel.Config,
env.cfg.Kernel.BaselineConfig, env.cfg.Trace, predMinimize)
if err != nil {
return nil, err
@@ -426,7 +419,7 @@ func (env *env) build() (*vcs.Commit, string, error) {
}
env.log("testing commit %v with %v", current.Hash, compilerID)
buildStart := time.Now()
- mgr := &env.cfg.Manager
+ mgr := env.cfg.Manager
if err := build.Clean(mgr.TargetOS, mgr.TargetVMArch, mgr.Type, mgr.KernelSrc); err != nil {
return nil, "", fmt.Errorf("kernel clean failed: %v", err)
}