[15] RFR 8245124: Shenandoah: optimize code root evacuation/update during concurrent class unloading

Zhengyu Gu zgu at redhat.com
Mon May 18 17:51:12 UTC 2020


Hi,

On 5/18/20 8:47 AM, Aleksey Shipilev wrote:
> On 5/16/20 1:30 PM, Zhengyu Gu wrote:
>> Bug:https://bugs.openjdk.java.net/browse/JDK-8245124
>> Webrev:http://cr.openjdk.java.net/~zgu/JDK-8245124/webrev.00/
> 
> *) Would you mind splitting out the ShenandoahNMethod::oops_do inlining?
> 
Any reason to split? this patch is not backportable to pre-jdk14.

> *) What if we specialize the branch from ShenandoahNMethod::heal_nmethod into
> shenandoahNMethod.inline.hpp, like:
> 
> void ShenandoahNMethod::heal_nmethod(nmethod* nm) {
>    ...
> 
>    if (heap->is_concurrent_mark_in_progress()) {
>      ...
>    } else if (heap->is_concurrent_weak_root_in_progress()) {
>      heal_nmethod_weak_roots();
>    } else {
>      ...
>    }
> }
> 
> ...and then use it in ShenandoahNMethodUnlinkClosure? That would make the code a bit more
> understandable?
> 

Updated: http://cr.openjdk.java.net/~zgu/JDK-8245124/webrev.01/index.html



> *) Odd dangling line here:
> 
>   278       nm_data->oops_do(&oops_cl, true /*fix relocation*/);      _bs->disarm(nm);
> 

Fixed.

Thanks,

-Zhengyu

> 



More information about the shenandoah-dev mailing list