-
Notifications
You must be signed in to change notification settings - Fork 18.8k
Closed
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone
Description
Reproduce:
$ compilebench -alloc -memprofile=m.p -run=Template
BenchmarkTemplate 1 199528196 ns/op 247178000 user-ns/op 34445184 B/op 321957 allocs/op
$ go tool pprof -alloc_space `go tool -n compile` m.p
File: compile
Type: alloc_space
Entering interactive mode (type "help" for commands, "o" for options)
(pprof) top15
Showing nodes accounting for 22332.44kB, 71.95% of 31039.35kB total
Showing top 15 nodes out of 186
flat flat% sum% cum cum%
3584.44kB 11.55% 11.55% 3584.44kB 11.55% cmd/compile/internal/gc.nodl
2094.95kB 6.75% 18.30% 2094.95kB 6.75% runtime.makeBucketArray
2090.29kB 6.73% 25.03% 2090.29kB 6.73% cmd/compile/internal/gc.newliveness
2079.07kB 6.70% 31.73% 3105.51kB 10.01% cmd/compile/internal/ssa.(*regAllocState).init
2048.19kB 6.60% 38.33% 2048.19kB 6.60% cmd/compile/internal/types.New
2003.58kB 6.45% 44.78% 2529.01kB 8.15% cmd/compile/internal/gc.init
1538.56kB 4.96% 49.74% 2052.06kB 6.61% cmd/compile/internal/ssa.cse
1536.55kB 4.95% 54.69% 2061.97kB 6.64% runtime.mapassign
1056.69kB 3.40% 58.10% 1056.69kB 3.40% cmd/compile/internal/ssa.(*stackAllocState).stackalloc
1024.23kB 3.30% 61.39% 1024.23kB 3.30% cmd/compile/internal/gc.newnamel
1024.17kB 3.30% 64.69% 4145.67kB 13.36% cmd/compile/internal/ssa.(*regAllocState).regalloc
683.75kB 2.20% 66.90% 683.75kB 2.20% cmd/compile/internal/gc.initssaconfig
528.17kB 1.70% 68.60% 1040.40kB 3.35% cmd/compile/internal/ssa.(*stackAllocState).init
525.43kB 1.69% 70.29% 525.43kB 1.69% cmd/compile/internal/ssa.schedule
514.38kB 1.66% 71.95% 514.38kB 1.66% cmd/compile/internal/ssa.(*Func).newSparseMap
Though the pprof output says "alloc_space" at the top, this looks conspicuously like "inuse_space" to me.
If you change writeLegacyFormat in cmd/compile/internal/gc/util.go from 1 to 0, so that it writes using the pb format, the results look correct again:
$ compilebench -alloc -memprofile=m.p -run=Template
BenchmarkTemplate 1 198046550 ns/op 240827000 user-ns/op 0 B/op 0 allocs/op
$ go tool pprof -alloc_space `go tool -n compile` m.p
File: compile
Type: alloc_space
Time: Apr 25, 2018 at 9:57pm (PDT)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof) top15
Showing nodes accounting for 18462.70kB, 56.27% of 32809.29kB total
Showing top 15 nodes out of 221
flat flat% sum% cum cum%
3072.41kB 9.36% 9.36% 3072.41kB 9.36% cmd/compile/internal/gc.nodl
2592.39kB 7.90% 17.27% 2592.39kB 7.90% cmd/compile/internal/ssa.(*regAllocState).init
2048.19kB 6.24% 23.51% 2048.19kB 6.24% cmd/compile/internal/types.New
2003.58kB 6.11% 29.62% 2003.58kB 6.11% cmd/compile/internal/gc.init
1028.18kB 3.13% 32.75% 1028.18kB 3.13% cmd/compile/internal/ssa.schedule
1026kB 3.13% 35.88% 1538.12kB 4.69% cmd/internal/obj.(*LSym).WriteAddr
1025.47kB 3.13% 39.00% 1025.47kB 3.13% cmd/compile/internal/ssa.tighten
1025kB 3.12% 42.13% 1025kB 3.12% cmd/internal/obj.(*LSym).Grow
1024.56kB 3.12% 45.25% 1024.56kB 3.12% cmd/internal/obj.(*Link).InitTextSym
1024.02kB 3.12% 48.37% 1024.02kB 3.12% cmd/compile/internal/ssa.(*stackAllocState).computeLive
532.26kB 1.62% 49.99% 532.26kB 1.62% cmd/compile/internal/types.InternString
516.64kB 1.57% 51.57% 516.64kB 1.57% cmd/compile/internal/gc.newliveness
516.01kB 1.57% 53.14% 1540.03kB 4.69% cmd/compile/internal/ssa.(*stackAllocState).init
514kB 1.57% 54.71% 514kB 1.57% cmd/compile/internal/gc.(*EscState).nodeEscState
514kB 1.57% 56.27% 514kB 1.57% cmd/compile/internal/gc.iimport
The choice of legacy format is so that compilebench can parse the stats dumped at the top; see e8d5989.
I discovered all this because I wanted to switch the compiler to use the new "allocs" profile and was confused that it appeared not to work. :)
We could presumably change compilebench to work somehow with the new pprof format, but depending on the root cause this bug might also impact others. Is this a runtime/pprof bug? A cmd/pprof bug?
cc @hyangah
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.