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 serviceability-dev
mailing list