Skip to content

Commit cc5f615

Browse files
cmd/dist: increase test parallelism starting with GOMAXPROCS=2 runtime
Fixes #65164 Change-Id: Ia10952f50a3c2a7868e30dcdba333927947b3ac3
1 parent 69d6c7b commit cc5f615

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/cmd/dist/test.go

+17-2
Original file line numberDiff line numberDiff line change
@@ -1272,8 +1272,8 @@ func (t *tester) runPending(nextTest *distTest) {
12721272
worklist := t.worklist
12731273
t.worklist = nil
12741274
for _, w := range worklist {
1275-
w.start = make(chan bool)
1276-
w.end = make(chan struct{})
1275+
w.start = make(chan bool, runtime.NumCPU()*2)
1276+
w.end = make(chan struct{}, runtime.NumCPU()*2)
12771277
// w.cmd must be set up to write to w.out. We can't check that, but we
12781278
// can check for easy mistakes.
12791279
if w.cmd.Stdout == nil || w.cmd.Stdout == os.Stdout || w.cmd.Stderr == nil || w.cmd.Stderr == os.Stderr {
@@ -1303,6 +1303,21 @@ func (t *tester) runPending(nextTest *distTest) {
13031303
}(w)
13041304
}
13051305

1306+
// for runtime.NumCPU() > 4 , do not change maxbg.
1307+
// Because there is not enough CPU to parallel the testing of multiple packages.
1308+
if runtime.NumCPU() > 4 {
1309+
for _, w := range worklist {
1310+
// because GOMAXPROCS=2 runtime CPU usage is low,
1311+
// so increase maxbg to avoid slowing down execution with low CPU usage.
1312+
// This makes testing a single package slower,
1313+
// but testing multiple packages together faster.
1314+
if strings.Contains(w.dt.heading, "GOMAXPROCS=2 runtime") {
1315+
maxbg = runtime.NumCPU() * 2
1316+
break
1317+
}
1318+
}
1319+
}
1320+
13061321
started := 0
13071322
ended := 0
13081323
var last *distTest

0 commit comments

Comments
 (0)