ZGC: RFR: 8207843: HSDB cannot show Object Histogram when ZGC is working

Per Liden per.liden at oracle.com
Tue Aug 7 15:28:11 UTC 2018


Hi,

On 08/07/2018 03:02 PM, Yasumasa Suenaga wrote:
> Hi Per,
> 
> Currently, class unloading seems not to be implemented.
> So do not worry about it?

Support for class unloading is coming, so this assumption would not hold 
for very long.

cheers,
Per

> 
> http://hg.openjdk.java.net/jdk/jdk/file/10ef3d870cb7/src/hotspot/share/gc/z/zArguments.cpp#l86 
> 
> 
> 
> Thanks,
> 
> Yasumasa
> 
> 
> On 2018/08/07 21:32, Per Liden wrote:
>> Hi Yasumasa,
>>
>> I'm afraid this approach of iterating over objects doesn't work. In 
>> ZGC, you can't walk over ZPages since some objects in there might be 
>> unreachable and hence might have an invalid/dead class pointer, which 
>> in turn means you can't tell the size of the object. When iterating 
>> over the heap you must start from the roots and only visit live 
>> objects. This becomes very complicated to do in the SA, which is why 
>> it hasn't been implemented.
>>
>> cheers,
>> Per
>>
>> On 07/26/2018 03:52 PM, Yasumasa Suenaga wrote:
>>> CC'ing to hotspot-gc-dev
>>>
>>>
>>> On 2018/07/26 21:30, Yasumasa Suenaga wrote:
>>>> PING: Could you review it?
>>>>
>>>>>    webrev: http://cr.openjdk.java.net/~ysuenaga/JDK-8207843/webrev.00/
>>>>
>>>>
>>>> Yasumasa
>>>>
>>>>
>>>> On 2018/07/19 23:03, Yasumasa Suenaga wrote:
>>>>> Hi all,
>>>>>
>>>>> Please review this webrev.
>>>>>
>>>>>       JBS: https://bugs.openjdk.java.net/browse/JDK-8207843
>>>>>    webrev: http://cr.openjdk.java.net/~ysuenaga/JDK-8207843/webrev.00/
>>>>>
>>>>> I encountered AssertionFailure when I attached HSDB to the process 
>>>>> which is working with ZGC as below:
>>>>>
>>>>> sun.jvm.hotspot.utilities.AssertionFailure: Unexpected 
>>>>> CollectedHeap type: sun.jvm.hotspot.gc.z.ZCollectedHeap
>>>>>      at 
>>>>> jdk.hotspot.agent/sun.jvm.hotspot.utilities.Assert.that(Assert.java:32) 
>>>>>
>>>>>      at 
>>>>> jdk.hotspot.agent/sun.jvm.hotspot.oops.ObjectHeap.collectLiveRegions(ObjectHeap.java:448) 
>>>>>
>>>>>      at 
>>>>> jdk.hotspot.agent/sun.jvm.hotspot.oops.ObjectHeap.iterate(ObjectHeap.java:173) 
>>>>>
>>>>>      at 
>>>>> jdk.hotspot.agent/sun.jvm.hotspot.HSDB$VisitHeap.run(HSDB.java:1741)
>>>>>      at 
>>>>> jdk.hotspot.agent/sun.jvm.hotspot.utilities.WorkerThread$MainLoop.run(WorkerThread.java:70) 
>>>>>
>>>>>      at java.base/java.lang.Thread.run(Thread.java:832)
>>>>>
>>>>> ObjectHeap#collectLiveRegions() branches by instance type of 
>>>>> CollectedHeap. However it does not support ZCollectedHeap.
>>>>> So I add ZCollectedHeap to it and add some methods to iterate 
>>>>> ZPageTable.
>>>>>
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Yasumasa



More information about the hotspot-gc-dev mailing list