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

Thomas Schatzl thomas.schatzl at oracle.com
Tue Jun 28 12:19:59 UTC 2016


Hi all,

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

Webrev:
http://cr.openjdk.java.net/~tschatzl/8159978/webrev.1 (full)
http://cr.openjdk.java.net/~tschatzl/8159978/webrev.0_to_1/ (diff

Testing:
jprt

Thanks,
  Thomas




More information about the hotspot-gc-dev mailing list