From: Michael Hudson-Doyle Date: Wed, 6 Apr 2016 23:47:32 +0000 (+1200) Subject: runtime: clamp OS-reported number of processors to _MaxGomaxprocs X-Git-Tag: go1.6.2~5 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5fdefe91da79eda584a30b6f32b9b841bbcc23dc;p=gostls13.git runtime: clamp OS-reported number of processors to _MaxGomaxprocs 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 Reviewed-on: https://go-review.googlesource.com/22206 --- diff --git a/src/runtime/proc.go b/src/runtime/proc.go index d1f5088b50..47ccb37c9f 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -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