90
runtime: eliminate GOMAXPROCS limit · golang/go@ee55000 · GitHub
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
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]>
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.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK