libgo: reduce overhead for memory/block/mutex profiling
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 14 May 2019 14:59:42 +0000 (14:59 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 14 May 2019 14:59:42 +0000 (14:59 +0000)
commit1ac09ef2c611d3113665ec8c74e38b125217edb3
tree0bed1e11d205c99ef1f13dd4b7aece761779c360
parentce9f305e44ff0353ee9e6cb07599240354ae9ed2
libgo: reduce overhead for memory/block/mutex profiling

    Revise the gccgo version of memory/block/mutex profiling to reduce
    runtime overhead. The main change is to collect raw stack traces while
    the profile is on line, then post-process the stacks just prior to the
    point where we are ready to use the final product. Memory profiling
    (at a very low sampling rate) is enabled by default, and the overhead
    of the symbolization / DWARF-reading from backtrace_full was slowing
    things down relative to the main Go runtime.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/171497

From-SVN: r271172
gcc/go/gofrontend/MERGE
libgo/go/runtime/heapdump.go
libgo/go/runtime/mgcmark.go
libgo/go/runtime/mprof.go
libgo/go/runtime/panic.go
libgo/go/runtime/string.go
libgo/go/runtime/symtab.go
libgo/go/runtime/traceback_gccgo.go
libgo/runtime/go-caller.c
libgo/runtime/go-callers.c
libgo/runtime/runtime.h