[llvm-dev] RFC: Sanitizer-based Heap Profiler

Andrey Bokhanko via llvm-dev llvm-dev at lists.llvm.org
Thu Jul 8 08:03:06 PDT 2021


Hi Teresa,

One more thing, if you don't mind.

On Tue, Jul 6, 2021 at 12:54 AM Teresa Johnson <tejohnson at google.com> wrote:

> We initially plan to use the profile information to provide guidance to
> the dynamic allocation runtime on data allocation and placement. We'll send
> more details on that when it is fleshed out too.
>

I played with the current implementation, and became a bit concerned if the
current data profile is sufficient for an efficient data allocation
optimization.

First, there is no information on temporal locality -- only total_lifetime
of an allocation block is recorded, not start / end times -- let alone
timestamps of actual memory accesses. I wonder what criteria would be used
by data profile-based allocation runtime to allocate two blocks from the
same memory chunk?

Second, according to the data from [Savage'20], memory accesses affinity (=
space distance between temporarily close memory accesses from two different
allocated blocks) is crucial: figure #12 demonstrates that this is vital
for omnetpp benchmark from SPEC CPU 2017.

Said this, my concerns are based essentially on a single paper that employs
specific algorithms to guide memory allocation and measures their impact on
a specific set of benchmarks. I wonder if you have preliminary data that
validates sufficiency of the implemented data profile for efficient
optimization of heap memory allocations?

References:
[Savage'20] Savage, J., & Jones, T. M. (2020). HALO: Post-Link Heap-Layout
Optimisation. CGO 2020: Proceedings of the 18th ACM/IEEE International
Symposium on Code Generation and Optimization,
https://doi.org/10.1145/3368826.3377914

Yours,
Andrey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210708/3719412c/attachment.html>


More information about the llvm-dev mailing list