1
0
mirror of https://github.com/golang/go synced 2024-11-24 05:50:13 -07:00

runtime: improve scheduler trace

Output number of spinning threads,
this is useful to understanding whether the scheduler
is in a steady state or not.

R=golang-codereviews, khr
CC=golang-codereviews, rsc
https://golang.org/cl/103540045
This commit is contained in:
Dmitriy Vyukov 2014-06-26 17:16:43 -07:00
parent 548dece8f3
commit a7186dc303

View File

@ -2730,12 +2730,12 @@ runtime·schedtrace(bool detailed)
starttime = now;
runtime·lock(&runtime·sched);
runtime·printf("SCHED %Dms: gomaxprocs=%d idleprocs=%d threads=%d idlethreads=%d runqueue=%d",
runtime·printf("SCHED %Dms: gomaxprocs=%d idleprocs=%d threads=%d spinningthreads=%d idlethreads=%d runqueue=%d",
(now-starttime)/1000000, runtime·gomaxprocs, runtime·sched.npidle, runtime·sched.mcount,
runtime·sched.nmidle, runtime·sched.runqsize);
runtime·sched.nmspinning, runtime·sched.nmidle, runtime·sched.runqsize);
if(detailed) {
runtime·printf(" gcwaiting=%d nmidlelocked=%d nmspinning=%d stopwait=%d sysmonwait=%d\n",
runtime·sched.gcwaiting, runtime·sched.nmidlelocked, runtime·sched.nmspinning,
runtime·printf(" gcwaiting=%d nmidlelocked=%d stopwait=%d sysmonwait=%d\n",
runtime·sched.gcwaiting, runtime·sched.nmidlelocked,
runtime·sched.stopwait, runtime·sched.sysmonwait);
}
// We must be careful while reading data from P's, M's and G's.