RFR: 8255232: G1: Make G1BiasedMappedArray freeable
Albert Mingkun Yang
ayang at openjdk.java.net
Thu Oct 29 09:02:43 UTC 2020
On Thu, 22 Oct 2020 13:47:00 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
> Hi all,
>
> can I have reviews for this change that makes G1BiasedMappedArray freeable?
>
> Previously all G1BiasedMappedArray were created as unfreeable i.e. assigned to static variables. However with JDK-8253600 I need one such biased map for the full collector which is created and deleted during full GC. So the biased array should also be freed as necessary to avoid a memory leak.
>
> The alternative would be to statically allocate that map anyway and provide it to the current G1FullCollector instance, but I do not think the single malloc call is perf sensitive compared to full collector work and there is much point in doing something more complicated at this time. In the future I hope that the young gen collector will also be extracted from G1CollectedHeap with the same need. If/when allocation of these helper data structures becomes a problem I would suggest looking into this again.
>
> One option then could be using some ResoureArea for these things in the future.
>
> For this change there should be no change in behavior at all.
>
> Testing: tier1-5
>
> Thanks,
> Thomas
Changes requested by ayang (Author).
src/hotspot/share/gc/g1/g1BiasedArray.cpp line 46:
> 44: _bias = 0;
> 45: _shift_by = 0;
> 46: }
1. `FreeHeap` makes more sense to me, since the allocation sites uses `AllocateHeap`.
2. Why resetting those fields to zero? The only resource we need to release in this destructor is memory, right?
-------------
PR: https://git.openjdk.java.net/jdk/pull/808
More information about the hotspot-dev
mailing list