RFR: Replace risky SBS::need_update_refs_barrier with straightforward check

Roman Kennke rkennke at redhat.com
Mon Jun 18 16:38:50 UTC 2018


Am 18.06.2018 um 18:34 schrieb Aleksey Shipilev:
> http://cr.openjdk.java.net/~shade/shenandoah/sbs-risky-check/webrev.01/
> 
> Heuristics has the automatic switch between separate-UR and CM-with-UR modes. Current check relies
> on heuristics()->update_refs() to figure out if we should check ur-in-progress or mark-in-progress
> when updating the references. This is risky, because heuristics may have stale idea about which mode
> to operate in. It is safer to check all potential GC states at once.
> 

Good idea!

Seems like some of it can be collapsed into a single mask check:

+         _heap->is_update_refs_in_progress() ||
+         _heap->is_concurrent_traversal_in_progress() ||
+         (_heap->is_concurrent_mark_in_progress() &&
_heap->has_forwarded_objects());

Probably not worth though. Your call.

Thanks, Roman




More information about the shenandoah-dev mailing list