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

Aleksey Shipilev shade at redhat.com
Mon May 18 12:47:38 UTC 2020


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?

*) 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?

*) Odd dangling line here:

 278       nm_data->oops_do(&oops_cl, true /*fix relocation*/);      _bs->disarm(nm);


-- 
Thanks,
-Aleksey



More information about the shenandoah-dev mailing list