RFR: 8218733: SA: CollectedHeap provides broken implementation for used() and capacity()
Erik Österlund
erik.osterlund at oracle.com
Thu Feb 14 08:38:07 UTC 2019
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 serviceability-dev
mailing list