Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process any weak references in full-gc.

This commit is contained in:
Jiri Vanek 2016-05-13 09:48:58 +02:00
parent de90c5adee
commit 26ed4d9b9e
2 changed files with 42 additions and 1 deletions

View File

@ -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) {

View File

@ -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 <jvanek@redhat.com> - 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 <jvanek@redhat.com> - 1:1.8.0.91-5.b14
- Restricted to depend on exactly same version of nss as used for build
- Resolves: rhbz#1332456