]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: clamp OS-reported number of processors to _MaxGomaxprocs
authorMichael Hudson-Doyle <michael.hudson@canonical.com>
Wed, 6 Apr 2016 23:47:32 +0000 (11:47 +1200)
committerAndrew Gerrand <adg@golang.org>
Tue, 19 Apr 2016 04:49:31 +0000 (04:49 +0000)
So that all Go processes do not die on startup on a system with >256 CPUs.

I tested this by hacking osinit to set ncpu to 1000.

Updates #15131
Fixes #15160

Change-Id: I52e061a0de97be41d684dd8b748fa9087d6f1aef
Reviewed-on: https://go-review.googlesource.com/21599
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-on: https://go-review.googlesource.com/22206

src/runtime/proc.go

index d1f5088b5029bef85c0380c0dd068e13bbb8df2e..47ccb37c9fa59645b18d9ee6d72ff92606ec09c9 100644 (file)
@@ -443,6 +443,9 @@ func schedinit() {
 
        sched.lastpoll = uint64(nanotime())
        procs := int(ncpu)
+       if procs > _MaxGomaxprocs {
+               procs = _MaxGomaxprocs
+       }
        if n := atoi(gogetenv("GOMAXPROCS")); n > 0 {
                if n > _MaxGomaxprocs {
                        n = _MaxGomaxprocs