RFR: Fold Partial GC into Traversal GC
Roman Kennke
rkennke at redhat.com
Wed Apr 25 17:17:42 UTC 2018
Am 25.04.2018 um 18:12 schrieb Aleksey Shipilev:
> 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
No it does not. I'll make this work on aarch64 before pushing. Stay
tuned for next webrev.
>
> *) In should_start_traversal_gc(), why periodic GC is ShenandoahHeap::MINOR? I thought it should
> trigger the full cycle to kick out all garbage.
Right. Will fix.
> *) 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.
Good point. Will fix.
> *) Still not very happy with ShenandoahRecycleClearsBitmap in ShHeapRegion::recycle() -- but we can
> redo this later.
Yeah, ok :-)
> *) Is the move of ShenandoahHeapRegionSetIterator::ShenandoahHeapRegionSetIterator from .inline.hpp
> to .cpp sensible? This desyncs backports...
It refused to compile without that change. Alternative seems to be to
mark the constructor volatile to avoid multiple definitions.
> *) shenandoahMarkCompact.cpp: stray newline
>
> 871
Ok, will fix.
> Otherwise we seem to be very close to where we want to be!
I noticed new PauseNotifications test crashes with segv. Need to fix
this before pushing.
Stay tuned!
Roman
>
> Thanks,
> -Aleksey
>
More information about the shenandoah-dev
mailing list