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
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
Languages
Java
74.2%
C++
13.7%
C
8%
Assembly
2.7%
Objective-C
0.4%
Other
0.8%