RFR: Full GC should cleanup earlier/bad version of redefined classes
Roman Kennke
rkennke at redhat.com
Tue Jun 5 16:59:43 UTC 2018
Am 05.06.2018 um 18:45 schrieb Zhengyu Gu:
>
>
> On 06/05/2018 12:36 PM, Zhengyu Gu wrote:
>>
>>
>> On 06/05/2018 12:28 PM, Roman Kennke wrote:
>>> Am 05.06.2018 um 18:24 schrieb Zhengyu Gu:
>>>> Tests suggest that it expects that earlier versions of redefined
>>>> classes, or classes with errors should be cleaned up during full GC
>>>> cycles.
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~zgu/shenandoah/fullgc_class_unload/webrev.00/
>>>>
>>>>
>>>> Test:
>>>> tier3_gc_shenandoah.
>>>>
>>>> Thanks,
>>>>
>>>> -Zhengyu
>>>
>>> But that flag only indicates that class cleanup is deferred to parallel
>>> cleaning phase.
>> Correct!
>>
>> Aren't we calling this from full-gc? Or is this flag
>>> enabling something else that parallel cleaning does not do?
>>
>> Yes, we do unload classes during full gc. However, if the flag =
>> false, it won't do the cleanup within full gc cycle, and those classes
>> can still be seen after full gc, which fails the test.
> In other words, it expects full gc to cleanup those classes, cause
> cleanup tasks may run much later.
So what if we call the parallelcleaning from full-gc instead? What you
propose enables serial cleaning, which might impact our (good) full-gc
performance.
Roman
More information about the shenandoah-dev
mailing list