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