RFR: 8288129: Shenandoah: Skynet test crashed with iu + aggressive

Erik Österlund eosterlund at openjdk.org
Tue Aug 30 15:46:07 UTC 2022


On Tue, 30 Aug 2022 15:20:48 GMT, Ashutosh Mehra <duke at openjdk.org> wrote:

> > The neat thing with using the right Access API stores instead of an ad hoc barrier, is that it works for both shenandoah IU mode, and generational ZGC, while the ad hoc barrier does not.
> 
> @fisk are you suggesting that changing the Access API from `set_parent_raw` to `set_parent_access` is the right approach? This introduces gc policy specific code which does not look clean. It appears that the combination of `requires_barriers()` and `do_barriers()` API is suppose to encapsulate the gc policy specific requirements. `requires_barriers()` would handle any gc specific requirement for using barriers and `do_barriers()` would then take the necessary action. This makes sense as it keeps the code clean. wdyt?

That is precisely what I am suggesting. The situation is the opposite from what you think. The Access API *is* the public interface to the GC, that will do the right thing for all GCs, while the requires_barriers and do_barriers stuff is less general, as I just discussed.

-------------

PR: https://git.openjdk.org/jdk/pull/9982


More information about the shenandoah-dev mailing list