Integrated: JDK-8298298: NMT: count deltas are printed with 32-bit signed size
Thomas Stuefe
stuefe at openjdk.org
Fri Dec 9 17:50:56 UTC 2022
On Wed, 7 Dec 2022 17:10:18 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:
> Deltas for counts in NMT differential reports are shown as signed int, restricting them to +-2g. These counts are number of malloc blocks, or number of classes, or number of threads. In all cases number of physically existing somethings.
>
> On large 64-bit machines they can conceivably overflow. Well, at least the malloc block counters. Granted, mallocing even just >2g number of 1 byte blocks costs about 40-50GB due to overhead in libc and NMT (on glibc). But it is conceivable.
>
> Patch changes delta printing from int to ssize_t.
>
> Note that I don't worry about overflowing SSIZE_MIN or SSIZE_MAX here. That would be ridiculous: we just cannot have that many physically existing things. Not on 64bit, not even on 32-bit where ssize_t is int, since in both cases the address space would be the limit. So, if the counters are that large, we have a different problem (probably counter overflow), and so we assert, resp. in release, ignore it.
>
> Note we have the same problem with diff sizes. I expect [8281213](https://bugs.openjdk.org/browse/JDK-8281213) to fix that.
This pull request has now been integrated.
Changeset: f729f5b6
Author: Thomas Stuefe <stuefe at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/f729f5b6d01b0d3a0ee21f50199ca30935c8237a
Stats: 49 lines in 4 files changed: 34 ins; 1 del; 14 mod
8298298: NMT: count deltas are printed with 32-bit signed size
Reviewed-by: shade, dholmes
-------------
PR: https://git.openjdk.org/jdk/pull/11568
More information about the hotspot-dev
mailing list