RFR: Fold Partial GC into Traversal GC

Aleksey Shipilev shade at redhat.com
Wed Apr 25 16:12:11 UTC 2018


On 04/25/2018 05:07 PM, Roman Kennke wrote:
> Re-based on latest merged repo:
> http://cr.openjdk.java.net/~rkennke/partial-traversal/webrev.03/

*) Does this build on aarch64? Because I think the relevant changes are missing from
c1_Runtime1_aarch64.cpp, shenandoahBarrierSetAssembler_aarch64.cpp, macroAssembler_aarch64.cpp,
stubGenerator_aarch64.cpp

*) In should_start_traversal_gc(), why periodic GC is ShenandoahHeap::MINOR? I thought it should
trigger the full cycle to kick out all garbage.

*) I think accesses to _gc_cycle_mode are racy: it is now used by ShConcThread and heuristics, but
we can accidentally use is_{minor|major} some time in the future. There's ShenandoahSharedEnumFlag
you can use to turn it thread-safe.

*) Still not very happy with ShenandoahRecycleClearsBitmap in ShHeapRegion::recycle() -- but we can
redo this later.

*) Is the move of ShenandoahHeapRegionSetIterator::ShenandoahHeapRegionSetIterator from .inline.hpp
to .cpp sensible? This desyncs backports...

*) shenandoahMarkCompact.cpp: stray newline

  871


Otherwise we seem to be very close to where we want to be!

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list