Thu, 20 Nov 2008 16:56:09 -0800
6684579: SoftReference processing can be made more efficient
Summary: For current soft-ref clearing policies, we can decide at marking time if a soft-reference will definitely not be cleared, postponing the decision of whether it will definitely be cleared to the final reference processing phase. This can be especially beneficial in the case of concurrent collectors where the marking is usually concurrent but reference processing is usually not.
Reviewed-by: jmasa
1 #
2 # Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 #
5 # This code is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License version 2 only, as
7 # published by the Free Software Foundation.
8 #
9 # This code is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 # version 2 for more details (a copy is included in the LICENSE file that
13 # accompanied this code).
14 #
15 # You should have received a copy of the GNU General Public License version
16 # 2 along with this work; if not, write to the Free Software Foundation,
17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 #
19 # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 # CA 95054 USA or visit www.sun.com if you need additional information or
21 # have any questions.
22 #
23 #
25 # Properties for jprt
27 # All build result bundles are full jdks, so the 64bit testing does not
28 # need the 32bit sibling bundle installed.
29 # Note: If the hotspot/make/Makefile changed to only bundle the 64bit files
30 # when bundling 64bit, and stripped out the 64bit files from any 32bit
31 # bundles, then this setting would be need to be "true".
33 jprt.need.sibling.build=false
35 # At submit time, the release supplied will be in jprt.submit.release
36 # and will be one of the official release names defined in jprt.
37 # jprt supports property value expansion using ${property.name} syntax.
39 # This tells jprt what default release we want to build
41 jprt.tools.default.release=${jprt.submit.release}
43 # Define the Solaris platforms we want for the various releases
45 jprt.my.solaris.sparc.jdk7=solaris_sparc_5.10
46 jprt.my.solaris.sparc.jdk6=solaris_sparc_5.8
47 jprt.my.solaris.sparc.jdk6perf=solaris_sparc_5.8
48 jprt.my.solaris.sparc.jdk6u10=solaris_sparc_5.8
49 jprt.my.solaris.sparc=${jprt.my.solaris.sparc.${jprt.tools.default.release}}
51 jprt.my.solaris.sparcv9.jdk7=solaris_sparcv9_5.10
52 jprt.my.solaris.sparcv9.jdk6=solaris_sparcv9_5.8
53 jprt.my.solaris.sparcv9.jdk6perf=solaris_sparcv9_5.8
54 jprt.my.solaris.sparcv9.jdk6u10=solaris_sparcv9_5.8
55 jprt.my.solaris.sparcv9=${jprt.my.solaris.sparcv9.${jprt.tools.default.release}}
57 jprt.my.solaris.i586.jdk7=solaris_i586_5.10
58 jprt.my.solaris.i586.jdk6=solaris_i586_5.8
59 jprt.my.solaris.i586.jdk6perf=solaris_i586_5.8
60 jprt.my.solaris.i586.jdk6u10=solaris_i586_5.8
61 jprt.my.solaris.i586=${jprt.my.solaris.i586.${jprt.tools.default.release}}
63 jprt.my.solaris.x64.jdk7=solaris_x64_5.10
64 jprt.my.solaris.x64.jdk6=solaris_x64_5.10
65 jprt.my.solaris.x64.jdk6perf=solaris_x64_5.10
66 jprt.my.solaris.x64.jdk6u10=solaris_x64_5.10
67 jprt.my.solaris.x64=${jprt.my.solaris.x64.${jprt.tools.default.release}}
69 jprt.my.linux.i586=linux_i586
70 jprt.my.linux.x64=linux_x64
71 jprt.my.windows.i586=windows_i586
72 jprt.my.windows.x64=windows_x64
74 # Standard list of jprt build targets for this source tree
76 jprt.build.targets= \
77 ${jprt.my.solaris.sparc}-{product|fastdebug|debug}, \
78 ${jprt.my.solaris.sparcv9}-{product|fastdebug|debug}, \
79 ${jprt.my.solaris.i586}-{product|fastdebug|debug}, \
80 ${jprt.my.solaris.x64}-{product|fastdebug|debug}, \
81 ${jprt.my.linux.i586}-{product|fastdebug|debug}, \
82 ${jprt.my.linux.x64}-{product|fastdebug}, \
83 ${jprt.my.windows.i586}-{product|fastdebug|debug}, \
84 ${jprt.my.windows.x64}-{product|fastdebug|debug}
86 # Subset lists of test targets for this source tree
88 jprt.my.solaris.sparc.test.targets= \
89 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-jvm98, \
90 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-scimark, \
91 ${jprt.my.solaris.sparc}-product-{c1|c2}-runThese, \
92 ${jprt.my.solaris.sparc}-product-{c1|c2}-runThese_Xcomp, \
93 ${jprt.my.solaris.sparc}-product-{c1|c2}-runThese_Xcomp_2, \
94 ${jprt.my.solaris.sparc}-product-{c1|c2}-runThese_Xcomp_3, \
95 ${jprt.my.solaris.sparc}-fastdebug-c1-runThese_Xshare, \
96 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCBasher_default, \
97 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC, \
98 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC, \
99 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC, \
100 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCBasher_CMS, \
101 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCBasher_default_2, \
102 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC_2, \
103 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC_2, \
104 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC_2, \
105 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCBasher_CMS_2, \
106 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCOld_default, \
107 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCOld_SerialGC, \
108 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCOld_ParallelGC, \
109 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCOld_ParNewGC, \
110 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-GCOld_CMS, \
111 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-jbb_default, \
112 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-jbb_SerialGC, \
113 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-jbb_ParallelGC, \
114 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-jbb_CMS, \
115 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-scimark_2, \
116 ${jprt.my.solaris.sparc}-{product|fastdebug}-{c1|c2}-scimark_3
118 jprt.my.solaris.sparcv9.test.targets= \
119 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jvm98, \
120 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-scimark, \
121 ${jprt.my.solaris.sparcv9}-product-c2-runThese, \
122 ${jprt.my.solaris.sparcv9}-product-c2-runThese_Xcomp, \
123 ${jprt.my.solaris.sparcv9}-product-c2-runThese_Xcomp_2, \
124 ${jprt.my.solaris.sparcv9}-product-c2-runThese_Xcomp_3, \
125 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCBasher_default, \
126 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCBasher_SerialGC, \
127 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCBasher_ParallelGC, \
128 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCBasher_ParNewGC, \
129 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCBasher_CMS, \
130 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCBasher_default_2, \
131 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCBasher_SerialGC_2, \
132 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCBasher_ParallelGC_2, \
133 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCBasher_ParNewGC_2, \
134 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCBasher_CMS_2, \
135 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCOld_default, \
136 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCOld_SerialGC, \
137 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCOld_ParallelGC, \
138 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCOld_ParNewGC, \
139 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-GCOld_CMS, \
140 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jbb_default, \
141 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jbb_SerialGC, \
142 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jbb_ParallelGC, \
143 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-jbb_CMS, \
144 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-scimark_2, \
145 ${jprt.my.solaris.sparcv9}-{product|fastdebug}-c2-scimark_3
147 jprt.my.solaris.x64.test.targets= \
148 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-jvm98, \
149 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-scimark, \
150 ${jprt.my.solaris.x64}-product-c2-runThese, \
151 ${jprt.my.solaris.x64}-product-c2-runThese_Xcomp, \
152 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCBasher_default, \
153 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCBasher_SerialGC, \
154 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCBasher_ParallelGC, \
155 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCBasher_ParNewGC, \
156 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCBasher_CMS, \
157 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCBasher_default_2, \
158 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCBasher_SerialGC_2, \
159 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCBasher_ParallelGC_2, \
160 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCBasher_ParNewGC_2, \
161 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCBasher_CMS_2, \
162 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCOld_default, \
163 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCOld_SerialGC, \
164 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCOld_ParallelGC, \
165 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCOld_ParNewGC, \
166 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-GCOld_CMS, \
167 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-jbb_default, \
168 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-jbb_SerialGC, \
169 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-jbb_ParallelGC, \
170 ${jprt.my.solaris.x64}-{product|fastdebug}-c2-jbb_CMS
172 jprt.my.solaris.i586.test.targets= \
173 ${jprt.my.solaris.i586}-{product|fastdebug}-{c1|c2}-jvm98, \
174 ${jprt.my.solaris.i586}-{product|fastdebug}-{c1|c2}-scimark, \
175 ${jprt.my.solaris.i586}-product-{c1|c2}-runThese_Xcomp, \
176 ${jprt.my.solaris.i586}-product-c2-runThese_Xcomp_2, \
177 ${jprt.my.solaris.i586}-fastdebug-c1-runThese_Xcomp_2, \
178 ${jprt.my.solaris.i586}-fastdebug-c1-runThese_Xshare, \
179 ${jprt.my.solaris.i586}-product-c1-GCBasher_default, \
180 ${jprt.my.solaris.i586}-product-c1-GCBasher_SerialGC, \
181 ${jprt.my.solaris.i586}-product-c1-GCBasher_ParallelGC, \
182 ${jprt.my.solaris.i586}-product-c1-GCBasher_ParNewGC, \
183 ${jprt.my.solaris.i586}-product-c1-GCBasher_CMS, \
184 ${jprt.my.solaris.i586}-fastdebug-c2-GCBasher_default, \
185 ${jprt.my.solaris.i586}-fastdebug-c2-GCBasher_SerialGC, \
186 ${jprt.my.solaris.i586}-fastdebug-c2-GCBasher_ParallelGC, \
187 ${jprt.my.solaris.i586}-fastdebug-c2-GCBasher_ParNewGC, \
188 ${jprt.my.solaris.i586}-fastdebug-c2-GCBasher_CMS, \
189 ${jprt.my.solaris.i586}-product-c1-GCOld_default, \
190 ${jprt.my.solaris.i586}-product-c1-GCOld_SerialGC, \
191 ${jprt.my.solaris.i586}-product-c1-GCOld_ParallelGC, \
192 ${jprt.my.solaris.i586}-product-c1-GCOld_ParNewGC, \
193 ${jprt.my.solaris.i586}-product-c1-GCOld_CMS, \
194 ${jprt.my.solaris.i586}-fastdebug-c2-jbb_default, \
195 ${jprt.my.solaris.i586}-fastdebug-c2-jbb_ParallelGC, \
196 ${jprt.my.solaris.i586}-fastdebug-c2-jbb_CMS, \
197 ${jprt.my.solaris.i586}-{product|fastdebug}-{c1|c2}-scimark_2, \
198 ${jprt.my.solaris.i586}-{product|fastdebug}-{c1|c2}-scimark_3
200 jprt.my.linux.i586.test.targets = \
201 ${jprt.my.linux.i586}-{product|fastdebug}-{c1|c2}-jvm98, \
202 ${jprt.my.linux.i586}-{product|fastdebug}-{c1|c2}-scimark, \
203 ${jprt.my.linux.i586}-product-c1-runThese_Xcomp, \
204 ${jprt.my.linux.i586}-product-c1-runThese_Xcomp_2, \
205 ${jprt.my.linux.i586}-product-c1-runThese_Xcomp_3, \
206 ${jprt.my.linux.i586}-fastdebug-c1-runThese_Xshare, \
207 ${jprt.my.linux.i586}-fastdebug-c2-runThese_Xcomp, \
208 ${jprt.my.linux.i586}-fastdebug-c2-runThese_Xcomp_2, \
209 ${jprt.my.linux.i586}-{product|fastdebug}-{c1|c2}-GCBasher_default, \
210 ${jprt.my.linux.i586}-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC, \
211 ${jprt.my.linux.i586}-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC, \
212 ${jprt.my.linux.i586}-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC, \
213 ${jprt.my.linux.i586}-{product|fastdebug}-{c1|c2}-GCBasher_CMS, \
214 ${jprt.my.linux.i586}-product-{c1|c2}-GCOld_default, \
215 ${jprt.my.linux.i586}-product-{c1|c2}-GCOld_SerialGC, \
216 ${jprt.my.linux.i586}-product-{c1|c2}-GCOld_ParallelGC, \
217 ${jprt.my.linux.i586}-product-{c1|c2}-GCOld_ParNewGC, \
218 ${jprt.my.linux.i586}-product-{c1|c2}-GCOld_CMS, \
219 ${jprt.my.linux.i586}-{product|fastdebug}-c1-jbb_default, \
220 ${jprt.my.linux.i586}-{product|fastdebug}-c1-jbb_ParallelGC, \
221 ${jprt.my.linux.i586}-{product|fastdebug}-c1-jbb_CMS, \
222 ${jprt.my.linux.i586}-{product|fastdebug}-c2-scimark_2, \
223 ${jprt.my.linux.i586}-{product|fastdebug}-c2-scimark_3
225 jprt.my.linux.x64.test.targets = \
226 ${jprt.my.linux.x64}-{product|fastdebug}-c2-jvm98, \
227 ${jprt.my.linux.x64}-{product|fastdebug}-c2-scimark, \
228 ${jprt.my.linux.x64}-{product|fastdebug}-c2-GCBasher_default, \
229 ${jprt.my.linux.x64}-{product|fastdebug}-c2-GCBasher_SerialGC, \
230 ${jprt.my.linux.x64}-{product|fastdebug}-c2-GCBasher_ParallelGC, \
231 ${jprt.my.linux.x64}-{product|fastdebug}-c2-GCBasher_ParNewGC, \
232 ${jprt.my.linux.x64}-{product|fastdebug}-c2-GCBasher_CMS, \
233 ${jprt.my.linux.x64}-{product|fastdebug}-c2-GCOld_default, \
234 ${jprt.my.linux.x64}-{product|fastdebug}-c2-GCOld_SerialGC, \
235 ${jprt.my.linux.x64}-{product|fastdebug}-c2-GCOld_ParallelGC, \
236 ${jprt.my.linux.x64}-{product|fastdebug}-c2-GCOld_ParNewGC, \
237 ${jprt.my.linux.x64}-{product|fastdebug}-c2-GCOld_CMS, \
238 ${jprt.my.linux.x64}-{product|fastdebug}-c2-jbb_default, \
239 ${jprt.my.linux.x64}-{product|fastdebug}-c2-jbb_ParallelGC, \
240 ${jprt.my.linux.x64}-{product|fastdebug}-c2-scimark_2, \
241 ${jprt.my.linux.x64}-{product|fastdebug}-c2-scimark_3
243 jprt.my.windows.i586.test.targets = \
244 ${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-jvm98, \
245 ${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-scimark, \
246 ${jprt.my.windows.i586}-product-{c1|c2}-runThese, \
247 ${jprt.my.windows.i586}-product-{c1|c2}-runThese_Xcomp, \
248 ${jprt.my.windows.i586}-fastdebug-c1-runThese_Xshare, \
249 ${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-GCBasher_default, \
250 ${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-GCBasher_SerialGC, \
251 ${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-GCBasher_ParallelGC, \
252 ${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-GCBasher_ParNewGC, \
253 ${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-GCBasher_CMS, \
254 ${jprt.my.windows.i586}-product-{c1|c2}-GCOld_default, \
255 ${jprt.my.windows.i586}-product-{c1|c2}-GCOld_SerialGC, \
256 ${jprt.my.windows.i586}-product-{c1|c2}-GCOld_ParallelGC, \
257 ${jprt.my.windows.i586}-product-{c1|c2}-GCOld_ParNewGC, \
258 ${jprt.my.windows.i586}-product-{c1|c2}-GCOld_CMS, \
259 ${jprt.my.windows.i586}-{product|fastdebug}-{c1|c2}-jbb_default, \
260 ${jprt.my.windows.i586}-product-{c1|c2}-jbb_ParallelGC, \
261 ${jprt.my.windows.i586}-product-{c1|c2}-jbb_CMS, \
262 ${jprt.my.windows.i586}-product-{c1|c2}-scimark_2, \
263 ${jprt.my.windows.i586}-product-{c1|c2}-scimark_3
265 jprt.my.windows.x64.test.targets = \
266 ${jprt.my.windows.x64}-{product|fastdebug}-c2-jvm98, \
267 ${jprt.my.windows.x64}-{product|fastdebug}-c2-scimark, \
268 ${jprt.my.windows.x64}-product-c2-runThese, \
269 ${jprt.my.windows.x64}-product-c2-runThese_Xcomp, \
270 ${jprt.my.windows.x64}-{product|fastdebug}-c2-GCBasher_default, \
271 ${jprt.my.windows.x64}-{product|fastdebug}-c2-GCBasher_SerialGC, \
272 ${jprt.my.windows.x64}-{product|fastdebug}-c2-GCBasher_ParallelGC, \
273 ${jprt.my.windows.x64}-{product|fastdebug}-c2-GCBasher_ParNewGC, \
274 ${jprt.my.windows.x64}-{product|fastdebug}-c2-GCBasher_CMS, \
275 ${jprt.my.windows.x64}-{product|fastdebug}-c2-GCOld_default, \
276 ${jprt.my.windows.x64}-{product|fastdebug}-c2-GCOld_SerialGC, \
277 ${jprt.my.windows.x64}-{product|fastdebug}-c2-GCOld_ParallelGC, \
278 ${jprt.my.windows.x64}-{product|fastdebug}-c2-GCOld_ParNewGC, \
279 ${jprt.my.windows.x64}-{product|fastdebug}-c2-GCOld_CMS, \
280 ${jprt.my.windows.x64}-{product|fastdebug}-c2-jbb_default, \
281 ${jprt.my.windows.x64}-product-c2-jbb_CMS, \
282 ${jprt.my.windows.x64}-product-c2-jbb_ParallelGC, \
283 ${jprt.my.windows.x64}-{product|fastdebug}-c2-scimark_2, \
284 ${jprt.my.windows.x64}-{product|fastdebug}-c2-scimark_3
286 # The complete list of test targets for jprt
288 jprt.test.targets = \
289 ${jprt.my.solaris.sparc.test.targets}, \
290 ${jprt.my.solaris.sparcv9.test.targets}, \
291 ${jprt.my.solaris.i586.test.targets}, \
292 ${jprt.my.solaris.x64.test.targets}, \
293 ${jprt.my.linux.i586.test.targets}, \
294 ${jprt.my.linux.x64.test.targets}, \
295 ${jprt.my.windows.i586.test.targets}, \
296 ${jprt.my.windows.x64.test.targets}
298 # The default test/Makefile targets that should be run
300 # Example:
301 # jprt.make.rule.test.targets=*-*-*-packtest
302 #jprt.make.rule.test.targets=*-product-*-packtest