105 new LogMessageWithLevel("Merged Coarse", Level.DEBUG),
106 new LogMessageWithLevel("Hot Card Cache", Level.DEBUG),
107 new LogMessageWithLevel("Log Buffers", Level.DEBUG),
108 new LogMessageWithLevel("Dirty Cards", Level.DEBUG),
109 new LogMessageWithLevel("Skipped Cards", Level.DEBUG),
110 // Scan Heap Roots
111 new LogMessageWithLevel("Scan Heap Roots", Level.DEBUG),
112 new LogMessageWithLevel("Scanned Cards", Level.DEBUG),
113 new LogMessageWithLevel("Scanned Blocks", Level.DEBUG),
114 new LogMessageWithLevel("Claimed Chunks", Level.DEBUG),
115 // Code Roots Scan
116 new LogMessageWithLevel("Code Root Scan", Level.DEBUG),
117 // Object Copy
118 new LogMessageWithLevel("Object Copy", Level.DEBUG),
119 new LogMessageWithLevel("Copied Bytes", Level.DEBUG),
120 new LogMessageWithLevel("LAB Waste", Level.DEBUG),
121 new LogMessageWithLevel("LAB Undo Waste", Level.DEBUG),
122 // Ext Root Scan
123 new LogMessageWithLevel("Thread Roots", Level.TRACE),
124 new LogMessageWithLevel("Universe Roots", Level.TRACE),
125 new LogMessageWithLevel("JNI Handles Roots", Level.TRACE),
126 new LogMessageWithLevel("ObjectSynchronizer Roots", Level.TRACE),
127 new LogMessageWithLevel("Management Roots", Level.TRACE),
128 new LogMessageWithLevel("VM Global Roots", Level.TRACE),
129 new LogMessageWithLevel("CLDG Roots", Level.TRACE),
130 new LogMessageWithLevel("JVMTI Roots", Level.TRACE),
131 new LogMessageWithLevel("CM RefProcessor Roots", Level.TRACE),
132 // Redirty Cards
133 new LogMessageWithLevel("Redirty Cards", Level.DEBUG),
134 new LogMessageWithLevel("Parallel Redirty", Level.TRACE),
135 new LogMessageWithLevel("Redirtied Cards", Level.TRACE),
136 // Misc Top-level
137 new LogMessageWithLevel("Code Roots Purge", Level.DEBUG),
138 new LogMessageWithLevel("String Deduplication", Level.DEBUG),
139 new LogMessageWithLevel("Queue Fixup", Level.DEBUG),
140 new LogMessageWithLevel("Table Fixup", Level.DEBUG),
141 new LogMessageWithLevel("Expand Heap After Collection", Level.DEBUG),
142 new LogMessageWithLevel("Region Register", Level.DEBUG),
143 new LogMessageWithLevel("Prepare Heap Roots", Level.DEBUG),
144 new LogMessageWithLevel("Concatenate Dirty Card Logs", Level.DEBUG),
145 // Free CSet
146 new LogMessageWithLevel("Free Collection Set", Level.DEBUG),
147 new LogMessageWithLevel("Serial Free Collection Set", Level.TRACE),
148 new LogMessageWithLevel("Parallel Free Collection Set", Level.TRACE),
149 new LogMessageWithLevel("Young Free Collection Set", Level.TRACE),
150 new LogMessageWithLevel("Non-Young Free Collection Set", Level.TRACE),
151 // Rebuild Free List
152 new LogMessageWithLevel("Rebuild Free List", Level.DEBUG),
153 new LogMessageWithLevel("Serial Rebuild Free List", Level.TRACE),
154 new LogMessageWithLevel("Parallel Rebuild Free List", Level.TRACE),
155
156 // Humongous Eager Reclaim
157 new LogMessageWithLevel("Humongous Reclaim", Level.DEBUG),
158 // Merge PSS
159 new LogMessageWithLevel("Merge Per-Thread State", Level.DEBUG),
160 // TLAB handling
161 new LogMessageWithLevel("Prepare TLABs", Level.DEBUG),
162 new LogMessageWithLevel("Resize TLABs", Level.DEBUG),
163 // Reference Processing
164 new LogMessageWithLevel("Reference Processing", Level.DEBUG),
165 // VM internal reference processing
166 new LogMessageWithLevel("Weak Processing", Level.DEBUG),
167 new LogMessageWithLevel("JNI weak", Level.DEBUG),
168 new LogMessageWithLevel("StringTable weak", Level.DEBUG),
169 new LogMessageWithLevel("ResolvedMethodTable weak", Level.DEBUG),
170 new LogMessageWithLevel("VM weak", Level.DEBUG),
171
172 new LogMessageWithLevelC2OrJVMCIOnly("DerivedPointerTable Update", Level.DEBUG),
173 new LogMessageWithLevel("Start New Collection Set", Level.DEBUG),
174 };
175
176 void checkMessagesAtLevel(OutputAnalyzer output, LogMessageWithLevel messages[], Level level) throws Exception {
177 for (LogMessageWithLevel l : messages) {
178 if (level.lessThan(l.level) || !l.isAvailable()) {
179 output.shouldNotContain(l.message);
180 } else {
181 output.shouldMatch("\\[" + l.level + ".*" + l.message);
182 }
183 }
184 }
185
186 public static void main(String[] args) throws Exception {
187 new TestGCLogMessages().testNormalLogs();
188 new TestGCLogMessages().testConcurrentRefinementLogs();
189 new TestGCLogMessages().testWithToSpaceExhaustionLogs();
190 new TestGCLogMessages().testWithInitialMark();
|
105 new LogMessageWithLevel("Merged Coarse", Level.DEBUG),
106 new LogMessageWithLevel("Hot Card Cache", Level.DEBUG),
107 new LogMessageWithLevel("Log Buffers", Level.DEBUG),
108 new LogMessageWithLevel("Dirty Cards", Level.DEBUG),
109 new LogMessageWithLevel("Skipped Cards", Level.DEBUG),
110 // Scan Heap Roots
111 new LogMessageWithLevel("Scan Heap Roots", Level.DEBUG),
112 new LogMessageWithLevel("Scanned Cards", Level.DEBUG),
113 new LogMessageWithLevel("Scanned Blocks", Level.DEBUG),
114 new LogMessageWithLevel("Claimed Chunks", Level.DEBUG),
115 // Code Roots Scan
116 new LogMessageWithLevel("Code Root Scan", Level.DEBUG),
117 // Object Copy
118 new LogMessageWithLevel("Object Copy", Level.DEBUG),
119 new LogMessageWithLevel("Copied Bytes", Level.DEBUG),
120 new LogMessageWithLevel("LAB Waste", Level.DEBUG),
121 new LogMessageWithLevel("LAB Undo Waste", Level.DEBUG),
122 // Ext Root Scan
123 new LogMessageWithLevel("Thread Roots", Level.TRACE),
124 new LogMessageWithLevel("Universe Roots", Level.TRACE),
125 new LogMessageWithLevel("ObjectSynchronizer Roots", Level.TRACE),
126 new LogMessageWithLevel("Management Roots", Level.TRACE),
127 new LogMessageWithLevel("CLDG Roots", Level.TRACE),
128 new LogMessageWithLevel("JVMTI Roots", Level.TRACE),
129 new LogMessageWithLevel("CM RefProcessor Roots", Level.TRACE),
130 new LogMessageWithLevel("JNI Global Roots", Level.TRACE),
131 new LogMessageWithLevel("VM Global Roots", Level.TRACE),
132 // Redirty Cards
133 new LogMessageWithLevel("Redirty Cards", Level.DEBUG),
134 new LogMessageWithLevel("Parallel Redirty", Level.TRACE),
135 new LogMessageWithLevel("Redirtied Cards", Level.TRACE),
136 // Misc Top-level
137 new LogMessageWithLevel("Code Roots Purge", Level.DEBUG),
138 new LogMessageWithLevel("String Deduplication", Level.DEBUG),
139 new LogMessageWithLevel("Queue Fixup", Level.DEBUG),
140 new LogMessageWithLevel("Table Fixup", Level.DEBUG),
141 new LogMessageWithLevel("Expand Heap After Collection", Level.DEBUG),
142 new LogMessageWithLevel("Region Register", Level.DEBUG),
143 new LogMessageWithLevel("Prepare Heap Roots", Level.DEBUG),
144 new LogMessageWithLevel("Concatenate Dirty Card Logs", Level.DEBUG),
145 // Free CSet
146 new LogMessageWithLevel("Free Collection Set", Level.DEBUG),
147 new LogMessageWithLevel("Serial Free Collection Set", Level.TRACE),
148 new LogMessageWithLevel("Parallel Free Collection Set", Level.TRACE),
149 new LogMessageWithLevel("Young Free Collection Set", Level.TRACE),
150 new LogMessageWithLevel("Non-Young Free Collection Set", Level.TRACE),
151 // Rebuild Free List
152 new LogMessageWithLevel("Rebuild Free List", Level.DEBUG),
153 new LogMessageWithLevel("Serial Rebuild Free List", Level.TRACE),
154 new LogMessageWithLevel("Parallel Rebuild Free List", Level.TRACE),
155
156 // Humongous Eager Reclaim
157 new LogMessageWithLevel("Humongous Reclaim", Level.DEBUG),
158 // Merge PSS
159 new LogMessageWithLevel("Merge Per-Thread State", Level.DEBUG),
160 // TLAB handling
161 new LogMessageWithLevel("Prepare TLABs", Level.DEBUG),
162 new LogMessageWithLevel("Resize TLABs", Level.DEBUG),
163 // Reference Processing
164 new LogMessageWithLevel("Reference Processing", Level.DEBUG),
165 // VM internal reference processing
166 new LogMessageWithLevel("Weak Processing", Level.DEBUG),
167 new LogMessageWithLevel("JNI Weak", Level.DEBUG),
168 new LogMessageWithLevel("StringTable Weak", Level.DEBUG),
169 new LogMessageWithLevel("ResolvedMethodTable Weak", Level.DEBUG),
170 new LogMessageWithLevel("VM Weak", Level.DEBUG),
171
172 new LogMessageWithLevelC2OrJVMCIOnly("DerivedPointerTable Update", Level.DEBUG),
173 new LogMessageWithLevel("Start New Collection Set", Level.DEBUG),
174 };
175
176 void checkMessagesAtLevel(OutputAnalyzer output, LogMessageWithLevel messages[], Level level) throws Exception {
177 for (LogMessageWithLevel l : messages) {
178 if (level.lessThan(l.level) || !l.isAvailable()) {
179 output.shouldNotContain(l.message);
180 } else {
181 output.shouldMatch("\\[" + l.level + ".*" + l.message);
182 }
183 }
184 }
185
186 public static void main(String[] args) throws Exception {
187 new TestGCLogMessages().testNormalLogs();
188 new TestGCLogMessages().testConcurrentRefinementLogs();
189 new TestGCLogMessages().testWithToSpaceExhaustionLogs();
190 new TestGCLogMessages().testWithInitialMark();
|