RFR: Soft refs policy needs reliable heap usage data after the GC cycle
Roman Kennke
rkennke at redhat.com
Tue Sep 4 15:48:47 UTC 2018
Seems reasonable. Ship it!
Am 4. September 2018 17:19:01 MESZ schrieb Aleksey Shipilev <shade at redhat.com>:
>Following up on fixes for soft refs policy handling in Shenandoah.
>Global soft refs policy expects
>GC to report their last used/capacity after the GC, yet Shenandoah
>reports it only after the final
>mark, which overestimates used heap. I guess that is a leftover from
>the time Shenandoah only did
>CM-with-UR unconditionally.
>
>This should be done at the end of GC instead. Done in GC epilog under
>heap lock to get coherent
>used/capacity values:
>
>diff -r 2ced7933815f
>src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp
>--- a/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp
>Tue Sep 04 12:08:47 2018 +0200
>+++ b/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp
>Tue Sep 04 17:17:33 2018 +0200
>@@ -212,10 +212,15 @@
> // Report current free set state at the end of cycle, whether
> // it is a normal completion, or the abort.
> {
> ShenandoahHeapLocker locker(heap->lock());
> heap->free_set()->log_status();
>+
>+ // Notify Universe about new heap usage. This has implications
>for
>+ // global soft refs policy, and we better report it every time
>heap
>+ // usage goes down.
>+ Universe::update_heap_info_at_gc();
> }
>
> // Disable forced counters update, and update counters one more time
> // to capture the state at the end of GC session.
> handle_force_counters_update();
>diff -r 2ced7933815f src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
>--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Tue Sep
>04 12:08:47 2018 +0200
>+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Tue Sep
>04 17:17:33 2018 +0200
>@@ -1155,12 +1155,10 @@
> heuristics()->choose_collection_set(_collection_set);
>
> _free_set->rebuild();
> }
>
>- Universe::update_heap_info_at_gc();
>-
> if (ShenandoahVerify) {
> verifier()->verify_before_evacuation();
> }
> }
> }
>
>Testing: tier3_gc_shenandoah, adhoc benchmarks
>
>-Aleksey
More information about the shenandoah-dev
mailing list