RFR (M): 7163191 G1: introduce a "heap spanning table" abstraction

Thomas Schatzl thomas.schatzl at oracle.com
Thu Aug 29 20:07:52 UTC 2013

Hi all,

  can I have reviews for the following change?

It implements a generic class that allows mapping of subdivision of the
Java heap to single elements of an array. It provides a biased pointer
for fast access and some convenience functions.

Possible applications are mappings from heap addresses to HeapRegion
instances (the heap spanning table), the "fast CSet" tables to detect
whether a region is in the collection set and others.

This change implements the heap spanning table using this new "biased
array" instead of manual management/setup of the array.

John Cuthbertson already had a stab at it, polishing a change from Tony
Printezis. This change is mostly a rewrite, as internal discussion found
that moving some functionality of HeapRegionSeq, the watermark, into
that generic "biased array" was undesirable.

The original mail thread starts here:

The main change is in the new file G1BiasedArray.hpp, providing the new
functionality. Everything else is use of that new data structure (an
instance of G1BiasedMappedArray<HeapRegion*>) in the HeapRegionSeq
class, and resulting cleanup.

jprt, dacapo benchmarks


More information about the hotspot-gc-dev mailing list