RFR: Partial should always be preceded by UR
Roman Kennke
rkennke at redhat.com
Fri Aug 4 12:59:08 UTC 2017
Am 04.08.2017 um 14:43 schrieb Aleksey Shipilev:
> We actually had this invariant enforced earlier, when PartialHeuristics was telling that
> update_refs() and should_start_update_refs() is "true" unconditionally. But after LRU/Generational
> that brought the split to major and minor heuristics, nobody asks minor heuristics about this
> anymore. In our current testing, this causes intermittent matrix verification failures before
> partial GC.
>
> Fix:
>
> $ hg diff
> diff -r 905879854473 src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp
> --- a/src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp Fri Aug 04 12:12:36 2017 +0200
> +++ b/src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp Fri Aug 04 14:43:23 2017 +0200
> @@ -1370,10 +1370,16 @@
> }
>
> bool ShenandoahCollectorPolicy::update_refs() {
> + if (_minor_heuristics != NULL && _minor_heuristics->update_refs()) {
> + return true;
> + }
> return _heuristics->update_refs();
> }
>
> bool ShenandoahCollectorPolicy::should_start_update_refs() {
> + if (_minor_heuristics != NULL && _minor_heuristics->should_start_update_refs()) {
> + return true;
> + }
> return _heuristics->should_start_update_refs();
> }
>
>
> Testing: hotspot_gc_shenandoah
>
> Thanks,
> -Aleksey
>
Yes
More information about the shenandoah-dev
mailing list