[llvm-dev] RFC: Sanitizer-based Heap Profiler (original) (raw)
Teresa Johnson via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 6 12:08:07 PDT 2020
- Previous message: [llvm-dev] RFC: Sanitizer-based Heap Profiler
- Next message: [llvm-dev] RFC: Sanitizer-based Heap Profiler
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, Jun 24, 2020 at 4:57 PM Teresa Johnson <tejohnson at google.com> wrote:
...
Shadow Memory
There are some basic facilities in sanitizercommon for mmap’ing the shadow memory, but most of the existing setup lives in the ASAN and HWASAN libraries. In the case of ASAN, there is support for both statically assigned shadow offsets (the default on most platforms), and for dynamically assigned shadow memory (implemented for Windows and currently also used for Android and iOS). According to kcc, recent experiments show that the performance with a dynamic shadow is close to that with a static mapping. In fact, that is the only approach currently used by HWASAN. Given the simplicity, the heap profiler will be implemented with a dynamic shadow as well. There are a number of functions in ASAN and HWASAN related to setup of the shadow that are duplicated but very nearly identical, at least for linux (which seems to be the only OS flavor currently supported for HWASAN). E.g. ReserveShadowMemoryRange, ProtectGap, and FindDynamicShadowStart (in ASAN there is another nearly identical copy in PremapShadow, used by Android, whereas in HW ASAN the premap handling is already commoned with the non-premap handling). Rather than make yet another copy of these mechanisms, I propose refactoring them into sanitizercommon versions. Like HWASAN, the initial version of the heap profiler will be supported for linux only, but other OSes can be added as needed similar to ASAN.
FYI I just mailed D83247 for this refactoring.
Teresa Johnson | Software Engineer | tejohnson at google.com |
-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200706/6b92a659/attachment.html>
- Previous message: [llvm-dev] RFC: Sanitizer-based Heap Profiler
- Next message: [llvm-dev] RFC: Sanitizer-based Heap Profiler
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]