author | azakharov |
Fri, 14 Nov 2014 17:36:56 +0400 | |
changeset 27605 | a162df7acd89 |
parent 26933 | 2929c88db04e |
child 27647 | 4dcb647196fd |
permissions | -rw-r--r-- |
26933
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
1 |
/* |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
2 |
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
4 |
* |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
5 |
* This code is free software; you can redistribute it and/or modify it |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation. |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
8 |
* |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
9 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
10 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
11 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
12 |
* version 2 for more details (a copy is included in the LICENSE file that |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
13 |
* accompanied this code). |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
14 |
* |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
15 |
* You should have received a copy of the GNU General Public License version |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
16 |
* 2 along with this work; if not, write to the Free Software Foundation, |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
17 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
18 |
* |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
19 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
20 |
* or visit www.oracle.com if you need additional information or have any |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
21 |
* questions. |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
22 |
*/ |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
23 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
24 |
import static com.oracle.java.testlibrary.Asserts.assertLessThanOrEqual; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
25 |
import com.oracle.java.testlibrary.OutputAnalyzer; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
26 |
import com.oracle.java.testlibrary.Platform; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
27 |
import com.oracle.java.testlibrary.ProcessTools; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
28 |
import com.oracle.java.testlibrary.Utils; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
29 |
import java.io.IOException; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
30 |
import java.lang.management.ManagementFactory; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
31 |
import java.lang.management.MemoryUsage; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
32 |
import java.text.DecimalFormat; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
33 |
import java.text.DecimalFormatSymbols; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
34 |
import java.util.ArrayList; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
35 |
import java.util.Arrays; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
36 |
import java.util.Collections; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
37 |
import java.util.LinkedList; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
38 |
import java.util.List; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
39 |
import sun.misc.Unsafe; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
40 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
41 |
public class TestShrinkAuxiliaryData { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
42 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
43 |
private final static String[] initialOpts = new String[]{ |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
44 |
"-XX:MinHeapFreeRatio=10", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
45 |
"-XX:MaxHeapFreeRatio=11", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
46 |
"-XX:+UseG1GC", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
47 |
"-XX:G1HeapRegionSize=1m", |
27605
a162df7acd89
8064716: TestHumongousShrinkHeap.java can not be run with -XX:+ExplicitGCInvokesConcurrent
azakharov
parents:
26933
diff
changeset
|
48 |
"-XX:-ExplicitGCInvokesConcurrent", |
26933
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
49 |
"-XX:+PrintGCDetails" |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
50 |
}; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
51 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
52 |
private final int RSetCacheSize; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
53 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
54 |
protected TestShrinkAuxiliaryData(int RSetCacheSize) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
55 |
this.RSetCacheSize = RSetCacheSize; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
56 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
57 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
58 |
protected void test() throws Exception { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
59 |
ArrayList<String> vmOpts = new ArrayList(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
60 |
Collections.addAll(vmOpts, initialOpts); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
61 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
62 |
int maxCacheSize = Math.max(0, Math.min(31, getMaxCacheSize())); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
63 |
if (maxCacheSize < RSetCacheSize) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
64 |
System.out.format("Skiping test for %d cache size due max cache size %d", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
65 |
RSetCacheSize, maxCacheSize |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
66 |
); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
67 |
return; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
68 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
69 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
70 |
printTestInfo(maxCacheSize); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
71 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
72 |
vmOpts.add("-XX:G1ConcRSLogCacheSize=" + RSetCacheSize); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
73 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
74 |
vmOpts.addAll(Arrays.asList(Utils.getFilteredTestJavaOpts( |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
75 |
ShrinkAuxiliaryDataTest.prohibitedVmOptions))); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
76 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
77 |
// for 32 bits ObjectAlignmentInBytes is not a option |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
78 |
if (Platform.is32bit()) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
79 |
ArrayList<String> vmOptsWithoutAlign = new ArrayList(vmOpts); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
80 |
vmOptsWithoutAlign.add(ShrinkAuxiliaryDataTest.class.getName()); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
81 |
performTest(vmOptsWithoutAlign); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
82 |
return; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
83 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
84 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
85 |
for (int alignment = 3; alignment <= 8; alignment++) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
86 |
ArrayList<String> vmOptsWithAlign = new ArrayList(vmOpts); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
87 |
vmOptsWithAlign.add("-XX:ObjectAlignmentInBytes=" |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
88 |
+ (int) Math.pow(2, alignment)); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
89 |
vmOptsWithAlign.add(ShrinkAuxiliaryDataTest.class.getName()); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
90 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
91 |
performTest(vmOptsWithAlign); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
92 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
93 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
94 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
95 |
private void performTest(List<String> opts) throws Exception { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
96 |
ProcessBuilder pb |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
97 |
= ProcessTools.createJavaProcessBuilder( |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
98 |
opts.toArray(new String[opts.size()]) |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
99 |
); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
100 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
101 |
OutputAnalyzer output = new OutputAnalyzer(pb.start()); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
102 |
output.shouldHaveExitValue(0); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
103 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
104 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
105 |
private void printTestInfo(int maxCacheSize) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
106 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
107 |
DecimalFormat grouped = new DecimalFormat("000,000"); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
108 |
DecimalFormatSymbols formatSymbols = grouped.getDecimalFormatSymbols(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
109 |
formatSymbols.setGroupingSeparator(' '); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
110 |
grouped.setDecimalFormatSymbols(formatSymbols); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
111 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
112 |
System.out.format("Test will use %s bytes of memory of %s available%n" |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
113 |
+ "Available memory is %s with %d bytes pointer size - can save %s pointers%n" |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
114 |
+ "Max cache size: 2^%d = %s elements%n", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
115 |
grouped.format(ShrinkAuxiliaryDataTest.getMemoryUsedByTest()), |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
116 |
grouped.format(Runtime.getRuntime().freeMemory()), |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
117 |
grouped.format(Runtime.getRuntime().freeMemory() |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
118 |
- ShrinkAuxiliaryDataTest.getMemoryUsedByTest()), |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
119 |
Unsafe.ADDRESS_SIZE, |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
120 |
grouped.format((Runtime.getRuntime().freeMemory() |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
121 |
- ShrinkAuxiliaryDataTest.getMemoryUsedByTest()) |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
122 |
/ Unsafe.ADDRESS_SIZE), |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
123 |
maxCacheSize, |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
124 |
grouped.format((int) Math.pow(2, maxCacheSize)) |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
125 |
); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
126 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
127 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
128 |
/** |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
129 |
* Detects maximum possible size of G1ConcRSLogCacheSize available for |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
130 |
* current process based on maximum available process memory size |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
131 |
* |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
132 |
* @return power of two |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
133 |
*/ |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
134 |
private static int getMaxCacheSize() { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
135 |
long availableMemory = Runtime.getRuntime().freeMemory() |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
136 |
- ShrinkAuxiliaryDataTest.getMemoryUsedByTest() - 1l; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
137 |
if (availableMemory <= 0) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
138 |
return 0; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
139 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
140 |
long availablePointersCount = availableMemory / Unsafe.ADDRESS_SIZE; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
141 |
return (63 - (int) Long.numberOfLeadingZeros(availablePointersCount)); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
142 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
143 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
144 |
static class ShrinkAuxiliaryDataTest { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
145 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
146 |
public static void main(String[] args) throws IOException { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
147 |
int iterateCount = DEFAULT_ITERATION_COUNT; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
148 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
149 |
if (args.length > 0) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
150 |
try { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
151 |
iterateCount = Integer.parseInt(args[0]); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
152 |
} catch (NumberFormatException e) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
153 |
//num_iterate remains default |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
154 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
155 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
156 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
157 |
new ShrinkAuxiliaryDataTest().test(iterateCount); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
158 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
159 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
160 |
class GarbageObject { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
161 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
162 |
private final List<byte[]> payload = new ArrayList(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
163 |
private final List<GarbageObject> ref = new LinkedList(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
164 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
165 |
public GarbageObject(int size) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
166 |
payload.add(new byte[size]); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
167 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
168 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
169 |
public void addRef(GarbageObject g) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
170 |
ref.add(g); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
171 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
172 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
173 |
public void mutate() { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
174 |
if (!payload.isEmpty() && payload.get(0).length > 0) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
175 |
payload.get(0)[0] = (byte) (Math.random() * Byte.MAX_VALUE); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
176 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
177 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
178 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
179 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
180 |
private final List<GarbageObject> garbage = new ArrayList(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
181 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
182 |
public void test(int num_iterate) throws IOException { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
183 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
184 |
allocate(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
185 |
link(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
186 |
mutate(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
187 |
deallocate(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
188 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
189 |
MemoryUsage muBeforeHeap |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
190 |
= ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
191 |
MemoryUsage muBeforeNonHeap |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
192 |
= ManagementFactory.getMemoryMXBean().getNonHeapMemoryUsage(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
193 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
194 |
for (int i = 0; i < num_iterate; i++) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
195 |
allocate(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
196 |
link(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
197 |
mutate(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
198 |
deallocate(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
199 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
200 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
201 |
System.gc(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
202 |
MemoryUsage muAfterHeap |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
203 |
= ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
204 |
MemoryUsage muAfterNonHeap |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
205 |
= ManagementFactory.getMemoryMXBean().getNonHeapMemoryUsage(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
206 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
207 |
assertLessThanOrEqual(muAfterHeap.getCommitted(), muBeforeHeap.getCommitted(), |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
208 |
String.format("heap decommit failed - after > before: %d > %d", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
209 |
muAfterHeap.getCommitted(), muBeforeHeap.getCommitted() |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
210 |
) |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
211 |
); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
212 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
213 |
if (muAfterHeap.getCommitted() < muBeforeHeap.getCommitted()) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
214 |
assertLessThanOrEqual(muAfterNonHeap.getCommitted(), muBeforeNonHeap.getCommitted(), |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
215 |
String.format("non-heap decommit failed - after > before: %d > %d", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
216 |
muAfterNonHeap.getCommitted(), muBeforeNonHeap.getCommitted() |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
217 |
) |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
218 |
); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
219 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
220 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
221 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
222 |
private void allocate() { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
223 |
for (int r = 0; r < REGIONS_TO_ALLOCATE; r++) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
224 |
for (int i = 0; i < NUM_OBJECTS_PER_REGION; i++) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
225 |
GarbageObject g = new GarbageObject(REGION_SIZE |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
226 |
/ NUM_OBJECTS_PER_REGION); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
227 |
garbage.add(g); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
228 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
229 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
230 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
231 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
232 |
/** |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
233 |
* Iterate through all allocated objects, and link to objects in another |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
234 |
* regions |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
235 |
*/ |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
236 |
private void link() { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
237 |
for (int ig = 0; ig < garbage.size(); ig++) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
238 |
int regionNumber = ig / NUM_OBJECTS_PER_REGION; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
239 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
240 |
for (int i = 0; i < NUM_LINKS; i++) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
241 |
int regionToLink; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
242 |
do { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
243 |
regionToLink = (int) (Math.random() |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
244 |
* REGIONS_TO_ALLOCATE); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
245 |
} while (regionToLink == regionNumber); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
246 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
247 |
// get random garbage object from random region |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
248 |
garbage.get(ig).addRef(garbage.get(regionToLink |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
249 |
* NUM_OBJECTS_PER_REGION + (int) (Math.random() |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
250 |
* NUM_OBJECTS_PER_REGION))); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
251 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
252 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
253 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
254 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
255 |
private void mutate() { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
256 |
for (int ig = 0; ig < garbage.size(); ig++) { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
257 |
garbage.get(ig).mutate(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
258 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
259 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
260 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
261 |
private void deallocate() { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
262 |
garbage.clear(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
263 |
System.gc(); |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
264 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
265 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
266 |
static long getMemoryUsedByTest() { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
267 |
return REGIONS_TO_ALLOCATE * REGION_SIZE; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
268 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
269 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
270 |
private static final int REGION_SIZE = 1024 * 1024; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
271 |
private static final int DEFAULT_ITERATION_COUNT = 1; // iterate main scenario |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
272 |
private static final int REGIONS_TO_ALLOCATE = 5; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
273 |
private static final int NUM_OBJECTS_PER_REGION = 10; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
274 |
private static final int NUM_LINKS = 20; // how many links create for each object |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
275 |
|
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
276 |
private static final String[] prohibitedVmOptions = { |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
277 |
// remove this when @requires option will be on duty |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
278 |
"-XX:\\+UseParallelGC", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
279 |
"-XX:\\+UseSerialGC", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
280 |
"-XX:\\+UseConcMarkSweepGC", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
281 |
"-XX:\\+UseParallelOldGC", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
282 |
"-XX:\\+UseParNewGC", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
283 |
"-Xconcgc", |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
284 |
"-Xincgc" |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
285 |
}; |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
286 |
} |
2929c88db04e
8043766: CMM Testing: 8u40 Decommit auxiliary data structures
tschatzl
parents:
diff
changeset
|
287 |
} |