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

Per Liden per.liden at oracle.com
Wed Aug 8 08:02:45 UTC 2018


Hi,

On 08/08/2018 10:00 AM, Yasumasa Suenaga wrote:
> Hi Per,
> 
> Will class unloading be occurred after relocation?

No, before relocation.

/Per

> If so, I think we can use this approach.
> 
> I read the slide [1], it says any garbage does not exist in ZPage after 
> relocation.
> 
> 
> Thanks,
> 
> Yasumasa
> 
> 
> [1] 
> https://www.jfokus.se/jfokus18/preso/ZGC--Low-Latency-GC-for-OpenJDK.pdf
> 
> 
> On 2018/08/08 0:28, Per Liden wrote:
>> 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