Permalink
Browse files

runtime: eliminate GOMAXPROCS limit

Now that allp is dynamically allocated, there's no need for a hard cap
on GOMAXPROCS.

Fixes #15131.

Change-Id: I53eee8e228a711a818f7ebce8d9fd915b3865eed
Reviewed-on: https://go-review.googlesource.com/45574
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rick Hudson <rlh@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
  • Loading branch information...
aclements committed Jun 13, 2017
1 parent 84d2c7e commit ee55000f6c45d2f5c38d91679def933fdf27c029
Showing with 1 addition and 13 deletions.
  1. +0 −3 src/runtime/debug.go
  2. +1 −4 src/runtime/proc.go
  3. +0 −6 src/runtime/runtime2.go
View
@@ -15,9 +15,6 @@ import (
// The number of logical CPUs on the local machine can be queried with NumCPU.
// This call will go away when the scheduler improves.
func GOMAXPROCS(n int) int {
- if n > _MaxGomaxprocs {
- n = _MaxGomaxprocs
- }
lock(&sched.lock)
ret := int(gomaxprocs)
unlock(&sched.lock)
View
@@ -495,9 +495,6 @@ func schedinit() {
if n, ok := atoi32(gogetenv("GOMAXPROCS")); ok && n > 0 {
procs = n
}
- if procs > _MaxGomaxprocs {
- procs = _MaxGomaxprocs
- }
if procresize(procs) != nil {
throw("unknown runnable goroutine during bootstrap")
}
@@ -3529,7 +3526,7 @@ func setcpuprofilerate(hz int32) {
// Returns list of Ps with local work, they need to be scheduled by the caller.
func procresize(nprocs int32) *p {
old := gomaxprocs
- if old < 0 || old > _MaxGomaxprocs || nprocs <= 0 || nprocs > _MaxGomaxprocs {
+ if old < 0 || nprocs <= 0 {
throw("procresize: invalid arg")
}
if trace.enabled {
View
@@ -520,12 +520,6 @@ type p struct {
pad [sys.CacheLineSize]byte
}
-const (
- // The max value of GOMAXPROCS.
- // There are no fundamental restrictions on the value.
- _MaxGomaxprocs = 1 << 10
-)
-
type schedt struct {
// accessed atomically. keep at top to ensure alignment on 32-bit systems.
goidgen uint64

0 comments on commit ee55000

Please sign in to comment.