aboutsummaryrefslogtreecommitdiffstats
path: root/syz-ci/jobs.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2023-01-02 17:49:22 +0100
committerAleksandr Nogikh <wp32pw@gmail.com>2023-01-19 11:26:54 +0100
commit4ac68196f128fe22ddd1e5b57d021c70f19e4894 (patch)
tree2afb6304deb57af561271568c4adf58d8ba9584a /syz-ci/jobs.go
parent4bd62a18b32a876e5ef2b024e454ccf793849050 (diff)
syz-ci: move build semaphore closer to builds
Currently it's held during the whole job processing, which can take too long. Adjust it so that it's only taken when we really begin to build the kernel or syzkaller.
Diffstat (limited to 'syz-ci/jobs.go')
-rw-r--r--syz-ci/jobs.go14
1 files changed, 4 insertions, 10 deletions
diff --git a/syz-ci/jobs.go b/syz-ci/jobs.go
index ed999a5ff..7f19a862f 100644
--- a/syz-ci/jobs.go
+++ b/syz-ci/jobs.go
@@ -79,7 +79,7 @@ loop:
}
select {
case <-jobTicker.C:
- if len(kernelBuildSem) != 0 {
+ if buildSem.Available() == 0 {
// If normal kernel build is in progress (usually on start), don't query jobs.
// Otherwise we claim a job, but can't start it for a while.
continue loop
@@ -250,13 +250,6 @@ func (jp *JobProcessor) pollJobs() {
}
func (jp *JobProcessor) processJob(job *Job) {
- select {
- case kernelBuildSem <- struct{}{}:
- case <-jp.stop:
- return
- }
- defer func() { <-kernelBuildSem }()
-
req := job.req
log.Logf(0, "starting job %v type %v for manager %v on %v/%v",
req.ID, req.Type, req.Manager, req.KernelRepo, req.KernelBranch)
@@ -439,7 +432,8 @@ func (jp *JobProcessor) bisect(job *Job, mgrcfg *mgrconfig.Config) error {
Syz: req.ReproSyz,
C: req.ReproC,
},
- Manager: mgrcfg,
+ Manager: mgrcfg,
+ BuildSemaphore: buildSem,
}
res, err := bisect.Run(cfg)
@@ -499,7 +493,7 @@ func (jp *JobProcessor) bisect(job *Job, mgrcfg *mgrconfig.Config) error {
func (jp *JobProcessor) testPatch(job *Job, mgrcfg *mgrconfig.Config) error {
req, resp, mgr := job.req, job.resp, job.mgr
- env, err := instance.NewEnv(mgrcfg)
+ env, err := instance.NewEnv(mgrcfg, buildSem)
if err != nil {
return err
}