aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
diff options
context:
space:
mode:
authorHongtao Yu <hoy@fb.com>2022-03-23 12:36:44 -0700
committerHongtao Yu <hoy@fb.com>2022-03-23 14:15:11 -0700
commit3f97016857b0305294f3a55ea220884fb50ce033 (patch)
tree3c5afd53b31a9f558b4e26190419913dfde0a636 /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
parentd90a3fcacda7257b26ac32350353410f79be6d2b (diff)
downloadllvm-3f97016857b0305294f3a55ea220884fb50ce033.zip
llvm-3f97016857b0305294f3a55ea220884fb50ce033.tar.gz
llvm-3f97016857b0305294f3a55ea220884fb50ce033.tar.bz2
[llvm-profgen] Decoding pseudo probe for profiled function only.
Complete pseudo probes decoding can result in large memory usage. In practice only a small porting of the decoded probes are used in profile generation. I'm changing the full decoding mode to be decoding for profiled functions only, though we still do a full scan of the .pseudoprobe section due to a missing table-of-content but we don't have to build the in-memory data structure for functions not sampled. To build the in-memory data structure for profiled functions only, I'm rewriting the previous non-recursive probe decoding logic to be recursive. This is easy to read and maintain. I also have to change the previous representation of unsymbolized context from probe-based stack to address-based stack since the profiled functions are unknown yet by the time of virtual unwinding. The address-based stack will be converted to probe-based stack after virtual unwinding and on-demand probe decoding. I'm seeing 20GB memory is saved for one of our internal large service. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D121643
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp')
0 files changed, 0 insertions, 0 deletions