annotate ASSEMBLY_EXCEPTION @ 452:00b023ae2d78

6722113: CMS: Incorrect overflow handling during precleaning of Reference lists Summary: When we encounter marking stack overflow during precleaning of Reference lists, we were using the overflow list mechanism, which can cause problems on account of mutating the mark word of the header because of conflicts with mutator accesses and updates of that field. Instead we should use the usual mechanism for overflow handling in concurrent phases, namely dirtying of the card on which the overflowed object lies. Since precleaning effectively does a form of discovered list processing, albeit with discovery enabled, we needed to adjust some code to be correct in the face of interleaved processing and discovery. Reviewed-by: apetrusenko, jcoomes
author ysr
date Thu, 20 Nov 2008 12:27:41 -0800
parents a61af66fc99e
children c18cbe5936b8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1
a61af66fc99e Initial load
duke
parents:
diff changeset
2 OPENJDK ASSEMBLY EXCEPTION
a61af66fc99e Initial load
duke
parents:
diff changeset
3
a61af66fc99e Initial load
duke
parents:
diff changeset
4 The OpenJDK source code made available by Sun at openjdk.java.net and
a61af66fc99e Initial load
duke
parents:
diff changeset
5 openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the
a61af66fc99e Initial load
duke
parents:
diff changeset
6 GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2
a61af66fc99e Initial load
duke
parents:
diff changeset
7 only ("GPL2"), with the following clarification and special exception.
a61af66fc99e Initial load
duke
parents:
diff changeset
8
a61af66fc99e Initial load
duke
parents:
diff changeset
9 Linking this OpenJDK Code statically or dynamically with other code
a61af66fc99e Initial load
duke
parents:
diff changeset
10 is making a combined work based on this library. Thus, the terms
a61af66fc99e Initial load
duke
parents:
diff changeset
11 and conditions of GPL2 cover the whole combination.
a61af66fc99e Initial load
duke
parents:
diff changeset
12
a61af66fc99e Initial load
duke
parents:
diff changeset
13 As a special exception, Sun gives you permission to link this
a61af66fc99e Initial load
duke
parents:
diff changeset
14 OpenJDK Code with certain code licensed by Sun as indicated at
a61af66fc99e Initial load
duke
parents:
diff changeset
15 http://openjdk.java.net/legal/exception-modules-2007-05-08.html
a61af66fc99e Initial load
duke
parents:
diff changeset
16 ("Designated Exception Modules") to produce an executable,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 regardless of the license terms of the Designated Exception Modules,
a61af66fc99e Initial load
duke
parents:
diff changeset
18 and to copy and distribute the resulting executable under GPL2,
a61af66fc99e Initial load
duke
parents:
diff changeset
19 provided that the Designated Exception Modules continue to be
a61af66fc99e Initial load
duke
parents:
diff changeset
20 governed by the licenses under which they were offered by Sun.
a61af66fc99e Initial load
duke
parents:
diff changeset
21
a61af66fc99e Initial load
duke
parents:
diff changeset
22 As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to
a61af66fc99e Initial load
duke
parents:
diff changeset
23 build an executable that includes those portions of necessary code that Sun
a61af66fc99e Initial load
duke
parents:
diff changeset
24 could not provide under GPL2 (or that Sun has provided under GPL2 with the
a61af66fc99e Initial load
duke
parents:
diff changeset
25 Classpath exception). If you modify or add to the OpenJDK code, that new
a61af66fc99e Initial load
duke
parents:
diff changeset
26 GPL2 code may still be combined with Designated Exception Modules if the
a61af66fc99e Initial load
duke
parents:
diff changeset
27 new code is made subject to this exception by its copyright holder.