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.7beta1~846 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=31cf1c17792d4da9dae2504c703633a0db8072c7;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 Change-Id: I52e061a0de97be41d684dd8b748fa9087d6f1aef Reviewed-on: https://go-review.googlesource.com/21599 Reviewed-by: Brad Fitzpatrick --- diff --git a/src/runtime/proc.go b/src/runtime/proc.go index 5145c84aea..1f55b0fa21 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -449,6 +449,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