RFR: 8218733: SA: CollectedHeap provides broken implementation for used() and capacity()

Stefan Karlsson stefan.karlsson at oracle.com
Thu Feb 14 09:10:50 UTC 2019


Thanks, Erik.

Stefank

On 2019-02-14 09:38, Erik Österlund wrote:
> Hi Stefan,
> 
> Looks good.
> 
> Thanks,
> /Erik
> 
> On 2019-02-11 09:13, Stefan Karlsson wrote:
>> Hi all,
>>
>> Please review this patch to remove the broken implementation of 
>> CollectedHeap used() and capacity() and instead force all GCs to 
>> provide their own implementations.
>>
>> https://cr.openjdk.java.net/~stefank/8218733/webrev.01/
>> https://bugs.openjdk.java.net/browse/JDK-8218733
>>
>> This was found while running 
>> serviceability/sa/TestHeapDumpForLargeArray.java on an experimental 
>> implementation of heap dumping in ZGC.
>>
>> ZGC didn't provide a ZCollectedHeap.used() function and 
>> CollectedHeap.used() was used instead at:
>>          // Check weather we should dump the heap as segments
>>          useSegmentedHeapDump = vm.getUniverse().heap().used() > 
>> HPROF_SEGMENTED_HEAP_DUMP_THRESHOLD;
>>
>> Because of this we incorrectly did not use segmented heap dumps, and 
>> therefore overflowed later in the code
>>
>> Aleksey and Roman,
>>
>> Could you verify that the implementation for Epsilon is correct? I 
>> also haven't implemented capacity for Shenandoah, as the information 
>> isn't trivially available in the ShenandoahHeap SA class. Do you want 
>> to fix it as part of this patch, or should I create a separate RFE for 
>> Shenandoah?
>>
>> Thanks,
>> StefanK


More information about the hotspot-gc-dev mailing list