RFR (jdk8): Backport weakroots stuff to sh/jdk8
Zhengyu Gu
zgu at redhat.com
Mon May 20 14:19:53 UTC 2019
Hi Roman,
1) Should StringTable also belong to WeakProcessor?
2) Why SRP::processor_vm_roots() still contains JNIHandles' weak oops
3) SRP::process_all_roots(), should we call WeakProcessor::oops_do()
instead? when we need to mark through all roots?
Thanks,
-Zhengyu
On 5/17/19 8:29 AM, Roman Kennke wrote:
> This backports the following two changes from sh/jdk11 -> sh/jdk8:
>
> 49: JDK-8221435: Shenandoah should not mark through weak roots
> 49: JDK-8221629: Shenandoah: Cleanup class unloading logic
>
>
> This is a bit risky and complicated. I added a compat class in
> shenandoahWeakProcessor.hpp/cpp which is basically the same (with minor
> removals) as jdk11's weakProcessor.hpp/cpp.
>
> Other than that, the weakroots-handling in systemDictionary is a bit
> different and more messy than in jdk11, which is why I moved those bits
> into process_strong_roots() (only scans strong sys-dict roots) and
> process_weak_roots (scans both strong+weak sys-dict roots). This keeps
> the interfaces the same as in jdk11 and 13 and does the right thing.
> Unfortunately, we can't drive the strong and weak sys-dict roots
> separately as it's done in jdk11 and upwards.
>
> The stringdedup stuff is also different. I believe I got it right, as
> much as it is possible.
>
> Testing: hotspot_gc_shenandoah looks good. Some point testing in specjvm
> did not show up any problems. We want to test this thouroughly in our CI
> before shipping it anywhere.
>
> http://cr.openjdk.java.net/~rkennke/backport-jdk8-2019-05-17-1/webrev.00/
>
> Ok to go?
>
> Roman
>
More information about the shenandoah-dev
mailing list