Antonios Printezis 189be5a71f 6980838: G1: guarantee(false) failed: thread has an unexpected active value in its SATB queue
Under certain circumstances a safepoint could happen between a JavaThread object being created and that object being added to the Java threads list. This could cause the active field of that thread's SATB queue to get out-of-sync with respect to the other Java threads. The solution is to activate the SATB queue, when necessary, before adding the thread to the Java threads list, not when the JavaThread object is created. The changeset also includes a small fix to rename the surrogate locker thread from "Surrogate Locker Thread (CMS)" to "Surrogate Locker Thread (Concurrent GC)" since it's also used in G1.

Reviewed-by: iveresov, ysr, johnc, jcoomes
2010-10-01 16:43:05 -04:00
2007-12-01 00:00:00 +00:00
2007-12-01 00:00:00 +00:00
2007-12-01 00:00:00 +00:00

README:
  This file should be located at the top of the OpenJDK Mercurial repository
  forest. This top or enclosing repository will include a "make" directory,
  and a Makefile at the very top of the repository.
  It should also include the 6 repositories: "jdk", "hotspot", "langtools",
  "corba", "jaxws"  and "jaxp".

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

Simple Build Instructions:

  1. 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 this JDK 6.

  2. Download and install the Binary Plugs for the most recent JDK7 from
     http://download.java.net/openjdk/jdk7/
     Set the environment variable ALT_BINARY_PLUGS_PATH to the location of
     these binary plugs.
     
  3. Check the sanity of doing a build with the current machine:
       gnumake sanity
     See README-builds.html if you run into problems.
  
  4. Do a complete build of the jdk:
       gnumake all
     The resulting JDK image should be found in build/*/j2sdk-image

where gnumake is GNU make 3.78.1 or newer, /usr/bin/make on Linux and
/usr/sfw/bin/gmake or /opt/sfw/bin/gmake on Solaris.

Languages
Java 73.9%
C++ 14.1%
C 7.9%
Assembly 2.7%
Objective-C 0.4%
Other 0.8%