Mercurial > hg > graal-jvmci-8
view agent/doc/ReadMe-JavaScript.text @ 1716:be3f9c242c9d
6948538: CMS: BOT walkers can fall into object allocation and initialization cracks
Summary: GC workers now recognize an intermediate transient state of blocks which are allocated but have not yet completed initialization. blk_start() calls do not attempt to determine the size of a block in the transient state, rather waiting for the block to become initialized so that it is safe to query its size. Audited and ensured the order of initialization of object fields (klass, free bit and size) to respect block state transition protocol. Also included some new assertion checking code enabled in debug mode.
Reviewed-by: chrisphi, johnc, poonam
author | ysr |
---|---|
date | Mon, 16 Aug 2010 15:58:42 -0700 |
parents | a61af66fc99e |
children |
line wrap: on
line source
The HotSpot Serviceability Agent (SA) is a debugger for hotspot core dumps and hung processes. There is a read-only JDI (Java Debugger Interface) implementation on top of SA. This is part of JDK product and the classes are in $JDK/tools/sa-jdi.jar. In addition, there are few serviceability tools in $JDK/bin, namely, jstack (java stack trace tool), jmap (heap tool), jinfo (Java config tool) and jsadebugd. The classes for these are also in sa-jdi.jar file. sa-jdi.jar file is built along with hotspot (libjvm.so) on Solaris and Linux platforms. On Windows platform, SA-JDI is not included and serviceability tools do not use SA. Apart from these, HotSpot SA consists of a number of tools that are *not* included in JDK product bits. The sources and makefile for all-of-SA (including non-productized stuff) are under $HOTSPOT_WS/agent directory. The makefile $HOTSPOT/agent/make directory and shell scripts (and batch files) are used to build and run SA non-product tools. There is also documentation of SA under $HOTSPOT/agent/doc directory. To build complete SA, you need to have Rhino Mozilla jar (js.jar) version 1.5R5 under $HOTSPOT/agent/src/share/lib directory. Rhino is JavaScript interpreter written in Java. Rhino is used to implement SA features such as * SA command line debugger's JavaScript interface - refer to $HOTSPOT/agent/doc/clhsdb.html - refer to $HOTSPOT/agent/doc/jsdb.html * SA simple object query language (SOQL) - language to query Java heap. Rhino's "js.jar" is not included in hotspot source bundles. You need to download it from http://www.mozilla.org/rhino/download.html. Without js.jar, $HOTSPOT/agent/make/Makefile will fail to build. But, note that sa-jdi.jar containing the productized portions of SA will still be built when you build hotspot JVM.