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

Thomas Schatzl thomas.schatzl at oracle.com
Thu Aug 29 20:08:41 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:
http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2013-February/005937.html

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.

bugs.sun.com
http://bugs.sun.com/view_bug.do?bug_id=7163191

Webrev:
http://cr.openjdk.java.net/~tschatzl/7163191/webrev/

Testing:
jprt, dacapo benchmarks

Thanks,
  Thomas




More information about the hotspot-gc-dev mailing list