RFR (M): 8159978: Use an array to store the collection set regions instead of linking through regions
thomas.schatzl at oracle.com
Tue Jun 28 12:19:59 UTC 2016
On Mon, 2016-06-27 at 14:19 +0200, Thomas Schatzl wrote:
> 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.
I got some feedback from Erik Helin about this change. These are
- we do not really need the multiple-writer/multiple-reader
implementation to store the list of collection set regions. We only
ever have one concurrent reader and one concurrent writer to it.
So I simplified the data structure to use only storestore/loadload
barriers for synchronization. The relevant changes got so small that an
extra data structure was not warranted, so I removed it.
- I strengthened (added) some asserts about some methods that should
only be called by the vm thread at a safepoint to support this. Just to
indicate that in these methods we do not need the memory barriers.
- fixed a bug in the collection set iteration where the
HeapRegionClosure::incomplete() method has not been called if the
iteration was aborted.
- some cleanup
More information about the hotspot-gc-dev