RFR: Traveral GC heuristics
Aleksey Shipilev
shade at redhat.com
Wed Jan 17 14:44:21 UTC 2018
On 01/17/2018 03:37 PM, Roman Kennke wrote:
> Testing showed up some regressions in non-traversal code and two issues that I introduced (or
> haven't fixed) when single-flag patch arrived.
>
> The following now passes hotspot_gc_shenandoah tests and runs of specjvm with fastdebug with
> -XX:+ShenandoahVerify -XX:+ShenandoahGCHeuristics=traversal, with -XX:TieredStopAtLevel=0|1|4
>
> Differential:
> http://cr.openjdk.java.net/~rkennke/traversal/webrev.01.diff/
Small-ish questions:
*) This solves some Partial GC bug, not Traversal GC bug? If so, can you RFR and push it separately?
--- old/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp 2018-01-17 15:32:54.756247073 +0100
+++ new/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp 2018-01-17 15:32:54.391251897 +0100
@@ -169,7 +169,7 @@
}
bool ShenandoahBarrierSet::need_update_refs_barrier() {
- if (_heap->is_concurrent_partial_in_progress() || _heap->is_concurrent_traversal_in_progress()) {
+ if (UseShenandoahMatrix || _heap->is_concurrent_traversal_in_progress()) {
return true;
}
if (_heap->shenandoahPolicy()->update_refs()) {
*) I think we have discussed the RFR for this -- does it turn out to be needed after all?
--- old/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp 2018-01-17 15:32:54.135255280 +0100
+++ new/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp 2018-01-17 15:32:53.869258796 +0100
@@ -727,7 +727,7 @@
const int referent_offset = java_lang_ref_Reference::referent_offset;
guarantee(referent_offset > 0, "referent offset not initialized");
- if (UseG1GC || UseShenandoahGC) {
+ if (UseG1GC || (UseShenandoahGC && ShenandoahKeepAliveBarrier)) {
Label slow_path;
// rbx: method
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list