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
OpenJDK Trademark Notice
Version 1.1, 2008/3/10
OpenJDK (the "Name") is a trademark of Sun Microsystems, Inc. (the "Owner").
Owner permits any person obtaining a copy of this software (the "Software")
which is based on original software retrieved from one of the following
websites: http://download.java.net/openjdk, http://hg.openjdk.java.net/jdk6,
or http://openjdk.java.net (each a "Website", with the original software made
available by the Owner on a Website being known as the "Website Software") to
use the Name in package names and version strings of the Software subject to
the following conditions:
- The Software is a substantially complete implementation of the OpenJDK
development kit or runtime environment code made available by Owner on a
Website, and the vast majority of the Software code is identical to the
upstream Website Software;
- No permission is hereby granted to use the Name in any other manner,
unless such use constitutes "fair use."
- The Owner makes no warranties of any kind respecting the Name and all
representations and warranties, including any implied warranty of
merchantability, fitness for a particular purpose or non-infringement
are hereby disclaimed; and
- This notice and the following legend are included in all copies of the
Software or portions of it:
OpenJDK is a trademark or registered trademark of Sun Microsystems,
Inc. in the United States and other countries.
The Name may also be used in connection with descriptions of the Software that
constitute "fair use," such as "derived from the OpenJDK code base" or "based
on the OpenJDK source code."
Owner intends to revise this Notice as necessary in order to meet the needs of
the OpenJDK Community. Please send questions or comments about this Notice to
Sun Microsystems at openjdk-tm@sun.com. Revisions to this Notice will be
announced on the public mailing list announce@openjdk.java.net, to which you
may subscribe by visiting http://mail.openjdk.java.net. The latest version of
this Notice may be found at http://openjdk.java.net/legal.