90

runtime: eliminate GOMAXPROCS limit · golang/go@ee55000 · GitHub

 6 years ago
source link: https://github.com/golang/go/commit/ee55000f6c45d2f5c38d91679def933fdf27c029
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

eliminate GOMAXPROCS limit · golang/go@ee55000 · GitHubPermalink

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 <[email protected]>
TryBot-Result: Gobot Gobot <[email protected]>
Reviewed-by: Rick Hudson <[email protected]>
Reviewed-by: Brad Fitzpatrick <[email protected]>

aclements

committed on Sep 27, 2017

1 parent 84d2c7e commit ee55000f6c45d2f5c38d91679def933fdf27c029
Showing with 1 addition and 13 deletions.
@@ -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)
@@ -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 {
@@ -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.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK