RFR (M): 8159978: Use an array to store the collection set regions instead of linking through regions

Thomas Schatzl thomas.schatzl at oracle.com
Mon Jun 27 12:19:40 UTC 2016


Hi all,

  can I have reviews for the following change that changes the
collection set to use an external array of region ids instead of
linking them through the HeapRegion class.

This

- fixes some problems with the sampling thread iterating through the
collection set without any memory barriers/synchronization. I.e. the
sampling thread is not guaranteed to see all changes previously made to
the HeapRegion members by the mutator threads.

Note that we have not seen any crashes because of that yet, or at least
not able to pinpoint it down to that.

- removes some hairy code about the gc time stamp and distributing work
across threads when iterating over the collection set much easier to
understand.

- makes the follow-up change to free the collection set in parallel
(JDK-8034842) simpler.

CR:
https://bugs.openjdk.java.net/browse/JDK-8159978
Webrev:
http://cr.openjdk.java.net/~tschatzl/8159978/webrev/
Testing:
jprt multiple times, vm.gc testlist with that change.

Thanks,
  Thomas





More information about the hotspot-gc-dev mailing list