RFR/RFC: Rework shared bool/enum flags with proper types and synchronization

Aleksey Shipilev shade at redhat.com
Fri Dec 1 16:35:36 UTC 2017


http://cr.openjdk.java.net/~shade/shenandoah/refactor-shared-flags/webrev.01/

Current shared flag handling is messy and ad-hoc: we use char, unsigned int, volatile jbyte, etc,
sometimes inconsistently updating the fields, etc. This fix commons operations on shared flags with
a handy abstraction. Apart from doing the synchronization right, it also pads out the fields to
eliminate false sharing against other heavily-mutated fields, since most of these fields are used on
critical path checks.

Current hotspot_gc_shenandoah testing fails some tests with:
  http://cr.openjdk.java.net/~shade/shenandoah/after-flag-partial-fail-hs_err.log

...which I believe is the pre-existing bug?

Thanks,
-Aleksey




More information about the shenandoah-dev mailing list