Antonios Printezis 9332c44d84 7045330: G1: Simplify/fix the HeapRegionSeq class
7042285: G1: native memory leak during humongous object allocation
6804436: G1: heap region indices should be size_t

A series of fixes and improvements to the HeapRegionSeq class: a) replace the _regions growable array with a standard C array, b) avoid de-allocating / re-allocating HeapRegion instances when the heap shrinks / grows (fix for 7042285), c) introduce fast method to map address to HeapRegion via a "biased" array pointer, d) embed the _hrs object in G1CollectedHeap, instead of pointing to it via an indirection, e) assume that all the regions added to the HeapRegionSeq instance are contiguous, f) replace int's with size_t's for indexes (and expand that to HeapRegion as part of 6804436), g) remove unnecessary / unused methods, h) rename a couple of fields (_alloc_search_start and _seq_bottom), i) fix iterate_from() not to always start from index 0 irrespective of the region passed to it, j) add a verification method to check the HeapRegionSeq assumptions, k) always call the wrappers for _hrs.iterate(), _hrs_length(), and _hrs.at() from G1CollectedHeap, not those methods directly, and l) unify the code that expands the sequence (by either re-using or creating a new HeapRegion) and make it robust wrt to a HeapRegion allocation failing.

Reviewed-by: stefank, johnc, brutisso
2011-06-10 13:16:40 -04:00
2011-05-14 10:24:05 -07:00
2011-05-18 18:18:04 -07:00
2011-04-12 18:35:57 -07:00
2007-12-01 00:00:00 +00:00

README:
  This file should be located at the top of the OpenJDK Mercurial root
  repository. This root repository will include a "make" directory,
  and a Makefile for building the entire OpenJDK.
  A full OpenJDK repository set (forest) should also include the following
  6 nested repositories:
    "jdk", "hotspot", "langtools", "corba", "jaxws"  and "jaxp".
  There are also several source downloads for the jax* repositories that
  will be needed.

  This one root repository can be obtained with something like:
    hg clone http://hg.openjdk.java.net/jdk7/jdk7 openjdk7
  To make sure you have all the nested repositories, you can run:
    cd openjdk7 && sh ./get_source.sh
  (This is identical to using the Mercurial Forest Extension command 
   'hg fclone http://hg.openjdk.java.net/jdk7/jdk7 openjdk7').
  People unfamiliar with Mercurial should read the first few chapters of
  the Mercurial book: http://hgbook.red-bean.com/read/

  See http://openjdk.java.net/ for more information about the OpenJDK.

Simple Build Instructions:
  
  0. Get the necessary system software/packages installed on your system, see
     http://hg.openjdk.java.net/jdk7/build/raw-file/tip/README-builds.html

  1. If you don't have a jdk6 installed, download and install a JDK 6 from
     http://java.sun.com/javase/downloads/index.jsp
     Set the environment variable ALT_BOOTDIR to the location of JDK 6.

  2. Check the sanity of doing a build with your current system:
       make sanity
     See README-builds.html if you run into problems.
  
  3. Do a complete build of the OpenJDK:
       make all
     The resulting JDK image should be found in build/*/j2sdk-image

where make is GNU make 3.81 or newer, /usr/bin/make on Linux usually
is 3.81 or newer.

Complete details are available in README-builds.html.
Description
jdk-24 fork (from: https://github.com/openjdk/jdk) with modifications to be used in Wildcard-Usage analysis tools
Readme 1.2 GiB
Languages
Java 74.2%
C++ 13.7%
C 8%
Assembly 2.7%
Objective-C 0.4%
Other 0.8%