From 26ed4d9b9ed562ab0bac5825dfab4a4475b69481 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Fri, 13 May 2016 09:48:58 +0200 Subject: [PATCH] Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process any weak references in full-gc. --- criticalShenandoahFix.patch | 34 ++++++++++++++++++++++++++++++++++ java-1.8.0-openjdk.spec | 9 ++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 criticalShenandoahFix.patch diff --git a/criticalShenandoahFix.patch b/criticalShenandoahFix.patch new file mode 100644 index 0000000..8242684 --- /dev/null +++ b/criticalShenandoahFix.patch @@ -0,0 +1,34 @@ +# HG changeset patch +# User rkennke +# Date 1463083411 -7200 +# Thu May 12 22:03:31 2016 +0200 +# Node ID 632ccab070e6b8f0114f4c636508de5b9d7210ab +# Parent 04726a0d70bbbdef63056ebfe3ef20bf21fb4be7 +Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process any weak references in full-gc. + +diff --git a/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp b/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp +@@ -126,6 +126,8 @@ + ShenandoahMarkCompactBarrierSet bs(_heap); + oopDesc::set_bs(&bs); + ++ _heap->set_need_update_refs(true); ++ + OrderAccess::fence(); + + phase1_mark_heap(); +@@ -260,6 +262,12 @@ + ShenandoahConcurrentMark* cm = _heap->concurrentMark(); + + cm->prepare_unmarked_root_objs_no_derived_ptrs(true); ++ if (ShenandoahProcessReferences) { ++ ReferenceProcessor* rp = _heap->ref_processor(); ++ // enable ("weak") refs discovery ++ rp->enable_discovery(true /*verify_no_refs*/, true); ++ rp->setup_policy(true); // snapshot the soft ref policy to be used in this cycle ++ } + cm->shared_finish_mark_from_roots(); + + if (VerifyDuringGC) { + diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index bac6ca7..f77445e 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -783,7 +783,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1 Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 5.%{buildver}%{?dist} +Release: 6.%{buildver}%{?dist} # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -927,6 +927,9 @@ Patch201: system-libjpeg.patch # Local fixes # see http://mail.openjdk.java.net/pipermail/build-dev/2016-March/016852.html thread Patch400: jdk8-archivedJavadoc.patch +# already in shenandoah repo: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/06556235f193 +# proposed for shenandoah integration forest: http://mail.openjdk.java.net/pipermail/aarch64-port-dev/2016-May/003461.html +Patch401: criticalShenandoahFix.patch # Non-OpenJDK fixes Patch300: jstack-pr1845.patch @@ -1259,6 +1262,7 @@ sh %{SOURCE12} %patch517 %patch518 %patch400 +%patch401 # Extract systemtap tapsets %if %{with_systemtap} @@ -1847,6 +1851,9 @@ require "copy_jdk_configs.lua" %endif %changelog +* Fri May 13 2016 jvanek - 1:1.8.0.91-6.b14 +- Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process any weak references in full-gc. + * Tue May 03 2016 jvanek - 1:1.8.0.91-5.b14 - Restricted to depend on exactly same version of nss as used for build - Resolves: rhbz#1332456