RFR: Full GC should cleanup earlier/bad version of redefined classes

Roman Kennke rkennke at redhat.com
Tue Jun 5 18:50:20 UTC 2018


Am 05.06.2018 um 20:41 schrieb Zhengyu Gu:
>>>>
>>>> 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.
> 
> We do parallel cleaning from full-gc, but it is not enough and "defer
> cleaning" is misleading.
> 
> Without do_cleaning = true, metadata is not walked and clean
> (ClassLoaderDataGraph::do_unloading()), previous versions of redefined
> classes are not cleaned.
> 
> It is potential costly, but only if there are redefined classes.
> Otherwise, it is the same as do_cleaning = false.

Hmm, well, ok. If there's no other way to do that, go for it!

Thanks, Roman




More information about the shenandoah-dev mailing list