Integrated: JDK-8292072: NMT: repurpose Tracking overhead counter as global malloc counter
Thomas Stuefe
stuefe at openjdk.org
Sat Aug 13 18:43:31 UTC 2022
On Tue, 9 Aug 2022 06:13:13 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:
> I need a fast counter for global mallocs for [JDK-8291878](https://bugs.openjdk.org/browse/JDK-8291878). NMT does not keep a global counter, just category-specific counters. At the moment, `MallocMemorySummary::total()` iterates all these counters and adds them up, which is quite costly.
>
> This patch makes `MallocMemorySummary::total()` fast by introducing a global malloc counter. However, we don't add a new counter, we just repurpose the tracking overhead counter.
>
> The tracking overhead counter gets updated on every malloc and counts number and size of all malloc headers. But malloc headers have always the same size. This patch uses the former overhead counter to count number and size of all mallocs. So now we have a global malloc counter, at no additional cost, and the overhead gets calculated from the number of total mallocs * constant header size.
>
> ---
>
> Tests done:
>
> - GHAs (which execute NMT jtreg + gtests tests in all modes)
> - manual test (checking that tracking overhead numbers are the same as before)
This pull request has now been integrated.
Changeset: 1c1c4410
Author: Thomas Stuefe <stuefe at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/1c1c4410b20f598c7e81fae044b6cb298ed12bab
Stats: 168 lines in 5 files changed: 126 ins; 30 del; 12 mod
8292072: NMT: repurpose Tracking overhead counter as global malloc counter
Reviewed-by: iklam, clanger
-------------
PR: https://git.openjdk.org/jdk/pull/9804
More information about the hotspot-runtime-dev
mailing list