Skip to content

Commit 149b9ca

Browse files
committed
Add test for nonmoving gc heap census events
1 parent 3591d91 commit 149b9ca

File tree

4 files changed

+343
-0
lines changed

4 files changed

+343
-0
lines changed

ghc-events.cabal

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ extra-source-files: include/EventLogFormat.h
3838
test/mandelbrot-mmc-2011-06-14.eventlog.reference
3939
test/nonmoving-gc.eventlog
4040
test/nonmoving-gc.eventlog.reference
41+
test/nonmoving-gc-census.eventlog
42+
test/nonmoving-gc-census.eventlog.reference
4143
test/parallelTest.eventlog
4244
test/parallelTest.eventlog.reference
4345
test/pre77stop.eventlog

test/Utils.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ files = map ("test/"++)
66
, "queens-ghc-7.0.2.eventlog"
77
, "mandelbrot-mmc-2011-06-14.eventlog"
88
, "nonmoving-gc.eventlog"
9+
, "nonmoving-gc-census.eventlog"
910
, "parallelTest.eventlog"
1011
, "pre77stop.eventlog", "782stop.eventlog", "783stop.eventlog"
1112
, "sleep.h.eventlog"

test/nonmoving-gc-census.eventlog

7.91 KB
Binary file not shown.
Lines changed: 340 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,340 @@
1+
Event Types:
2+
0: Create thread (size 4)
3+
1: Run thread (size 4)
4+
2: Stop thread (size 10)
5+
3: Thread runnable (size 4)
6+
4: Migrate thread (size 6)
7+
8: Wakeup thread (size 6)
8+
9: Starting GC (size 0)
9+
10: Finished GC (size 0)
10+
11: Request sequential GC (size 0)
11+
12: Request parallel GC (size 0)
12+
15: Create spark thread (size 4)
13+
16: Log message (size variable)
14+
18: Block marker (size 14)
15+
19: User message (size variable)
16+
20: GC idle (size 0)
17+
21: GC working (size 0)
18+
22: GC done (size 0)
19+
25: Create capability set (size 6)
20+
26: Delete capability set (size 4)
21+
27: Add capability to capability set (size 6)
22+
28: Remove capability from capability set (size 6)
23+
29: RTS name and version (size variable)
24+
30: Program arguments (size variable)
25+
31: Program environment variables (size variable)
26+
32: Process ID (size 8)
27+
33: Parent process ID (size 8)
28+
34: Spark counters (size 56)
29+
35: Spark create (size 0)
30+
36: Spark dud (size 0)
31+
37: Spark overflow (size 0)
32+
38: Spark run (size 0)
33+
39: Spark steal (size 2)
34+
40: Spark fizzle (size 0)
35+
41: Spark GC (size 0)
36+
43: Wall clock time (size 16)
37+
44: Thread label (size variable)
38+
45: Create capability (size 2)
39+
46: Delete capability (size 2)
40+
47: Disable capability (size 2)
41+
48: Enable capability (size 2)
42+
49: Total heap mem ever allocated (size 12)
43+
50: Current heap size (size 12)
44+
51: Current heap live data (size 12)
45+
52: Heap static parameters (size 38)
46+
53: GC statistics (size 58)
47+
54: Synchronise stop-the-world GC (size 0)
48+
55: Task create (size 18)
49+
56: Task migrate (size 12)
50+
57: Task delete (size 8)
51+
58: User marker (size variable)
52+
59: Empty event for bug #9003 (size 0)
53+
160: Start of heap profile (size variable)
54+
161: Cost center definition (size variable)
55+
162: Start of heap profile sample (size 8)
56+
163: Heap profile cost-centre sample (size variable)
57+
164: Heap profile string sample (size variable)
58+
165: End of heap profile sample (size 8)
59+
166: Start of heap profile (biographical) sample (size 16)
60+
167: Time profile cost-centre stack (size variable)
61+
168: Start of a time profile (size 8)
62+
181: User binary message (size variable)
63+
200: Begin concurrent mark phase (size 0)
64+
201: End concurrent mark phase (size 4)
65+
202: Begin concurrent GC synchronisation (size 0)
66+
203: End concurrent GC synchronisation (size 0)
67+
204: Begin concurrent sweep (size 0)
68+
205: End concurrent sweep (size 0)
69+
206: Update remembered set flushed (size 2)
70+
207: Nonmoving heap census (size 13)
71+
72+
Events:
73+
227855: capset 1: wall clock time 1587597517s 544758000ns (unix epoch)
74+
229418: capset 0: pid 1158
75+
231368: capset 0: parent pid 25700
76+
233264: capset 0: RTS version "GHC-8.11.0.20200422 rts_thr_l"
77+
233773: capset 0: args: ["nofib/shootout/binary-trees/Main","15","11","+RTS","-xn","-l-an"]
78+
2789899: Starting nonmoving GC preparation
79+
2811955: Marking roots for nonmoving GC
80+
2813333: Finished marking roots for nonmoving GC
81+
2813512: Finished nonmoving GC preparation
82+
2872560: concurrent mark began
83+
3320668: concurrent mark ended: marked 2869 objects
84+
3337805: post-mark synchronization began
85+
3337996: post-mark synchronization began
86+
3682910: cap 0: update remembered set flushed by 0
87+
3683825: concurrent mark began
88+
3692251: concurrent mark ended: marked 1042 objects
89+
3692392: concurrent mark began
90+
3692462: concurrent mark ended: marked 1 objects
91+
3692552: concurrent mark began
92+
3692621: concurrent mark ended: marked 1 objects
93+
3716334: post-mark synchronization ended
94+
3716512: post-mark synchronization ended
95+
3720779: concurrent sweep began
96+
3721599: concurrent sweep ended
97+
3726029: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
98+
3728053: nonmoving heap census 16: 0 active segments, 0 filled segments, 54 live blocks
99+
3729679: nonmoving heap census 32: 0 active segments, 0 filled segments, 128 live blocks
100+
3730314: nonmoving heap census 64: 0 active segments, 0 filled segments, 0 live blocks
101+
3730776: nonmoving heap census 128: 0 active segments, 0 filled segments, 0 live blocks
102+
3731036: nonmoving heap census 256: 0 active segments, 0 filled segments, 0 live blocks
103+
3731339: nonmoving heap census 512: 0 active segments, 0 filled segments, 0 live blocks
104+
3731574: nonmoving heap census 1024: 0 active segments, 0 filled segments, 0 live blocks
105+
3731786: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
106+
3731990: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
107+
3732268: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
108+
3732469: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
109+
32362284: Starting nonmoving GC preparation
110+
32371855: Marking roots for nonmoving GC
111+
32373519: Finished marking roots for nonmoving GC
112+
32373686: Finished nonmoving GC preparation
113+
32557821: concurrent mark began
114+
33910745: concurrent mark ended: marked 16928 objects
115+
33914172: concurrent mark began
116+
33916300: concurrent mark ended: marked 13 objects
117+
33924796: post-mark synchronization began
118+
33925033: post-mark synchronization began
119+
34219802: cap 0: update remembered set flushed by 0
120+
34221200: concurrent mark began
121+
34240845: concurrent mark ended: marked 1084 objects
122+
34241350: concurrent mark began
123+
34241419: concurrent mark ended: marked 1 objects
124+
34241632: concurrent mark began
125+
34241702: concurrent mark ended: marked 1 objects
126+
34271446: post-mark synchronization ended
127+
34271858: post-mark synchronization ended
128+
34283960: concurrent sweep began
129+
34559614: concurrent sweep ended
130+
34563964: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
131+
34576318: nonmoving heap census 16: 3 active segments, 0 filled segments, 1259 live blocks
132+
34591543: nonmoving heap census 32: 6 active segments, 4 filled segments, 6385 live blocks
133+
34596442: nonmoving heap census 64: 4 active segments, 1 filled segments, 1031 live blocks
134+
34597260: nonmoving heap census 128: 0 active segments, 0 filled segments, 42 live blocks
135+
34597718: nonmoving heap census 256: 0 active segments, 0 filled segments, 1 live blocks
136+
34598055: nonmoving heap census 512: 0 active segments, 0 filled segments, 1 live blocks
137+
34598375: nonmoving heap census 1024: 0 active segments, 0 filled segments, 4 live blocks
138+
34598666: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
139+
34598997: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
140+
34599265: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
141+
34599501: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
142+
67279769: Starting nonmoving GC preparation
143+
67281581: Marking roots for nonmoving GC
144+
67282874: Finished marking roots for nonmoving GC
145+
67283133: Finished nonmoving GC preparation
146+
67370910: concurrent mark began
147+
68397276: concurrent mark ended: marked 16875 objects
148+
68398499: concurrent mark began
149+
68399339: concurrent mark ended: marked 13 objects
150+
68402178: post-mark synchronization began
151+
68402344: post-mark synchronization began
152+
68682534: cap 0: update remembered set flushed by 0
153+
68683459: concurrent mark began
154+
68688876: concurrent mark ended: marked 352 objects
155+
68689271: concurrent mark began
156+
68689388: concurrent mark ended: marked 1 objects
157+
68689515: concurrent mark began
158+
68689626: concurrent mark ended: marked 1 objects
159+
68704339: post-mark synchronization ended
160+
68704591: post-mark synchronization ended
161+
68710131: concurrent sweep began
162+
68830040: concurrent sweep ended
163+
68834054: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
164+
68843935: nonmoving heap census 16: 3 active segments, 1 filled segments, 2855 live blocks
165+
68858424: nonmoving heap census 32: 6 active segments, 3 filled segments, 5846 live blocks
166+
68862979: nonmoving heap census 64: 4 active segments, 0 filled segments, 703 live blocks
167+
68863622: nonmoving heap census 128: 0 active segments, 0 filled segments, 43 live blocks
168+
68863967: nonmoving heap census 256: 0 active segments, 0 filled segments, 1 live blocks
169+
68864313: nonmoving heap census 512: 0 active segments, 0 filled segments, 1 live blocks
170+
68864669: nonmoving heap census 1024: 0 active segments, 0 filled segments, 5 live blocks
171+
68865004: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
172+
68865354: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
173+
68865670: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
174+
68865931: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
175+
119827283: Starting nonmoving GC preparation
176+
119830728: Marking roots for nonmoving GC
177+
119831795: Finished marking roots for nonmoving GC
178+
119831988: Finished nonmoving GC preparation
179+
119938842: concurrent mark began
180+
121053293: concurrent mark ended: marked 16438 objects
181+
121056540: concurrent mark began
182+
121057919: concurrent mark ended: marked 13 objects
183+
121066516: post-mark synchronization began
184+
121066859: post-mark synchronization began
185+
121154737: cap 0: update remembered set flushed by 0
186+
121161224: concurrent mark began
187+
121186040: concurrent mark ended: marked 1079 objects
188+
121186533: concurrent mark began
189+
121186646: concurrent mark ended: marked 1 objects
190+
121186774: concurrent mark began
191+
121186841: concurrent mark ended: marked 1 objects
192+
121231348: post-mark synchronization ended
193+
121231969: post-mark synchronization ended
194+
121242597: concurrent sweep began
195+
121385240: concurrent sweep ended
196+
121390264: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
197+
121405730: nonmoving heap census 16: 3 active segments, 0 filled segments, 1568 live blocks
198+
121430287: nonmoving heap census 32: 7 active segments, 3 filled segments, 6270 live blocks
199+
121436146: nonmoving heap census 64: 4 active segments, 1 filled segments, 897 live blocks
200+
121437265: nonmoving heap census 128: 0 active segments, 0 filled segments, 43 live blocks
201+
121437840: nonmoving heap census 256: 0 active segments, 0 filled segments, 1 live blocks
202+
121438948: nonmoving heap census 512: 0 active segments, 0 filled segments, 1 live blocks
203+
121439371: nonmoving heap census 1024: 0 active segments, 0 filled segments, 5 live blocks
204+
121439723: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
205+
121440083: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
206+
121440368: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
207+
121441292: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
208+
148361407: Starting nonmoving GC preparation
209+
148365127: Marking roots for nonmoving GC
210+
148366468: Finished marking roots for nonmoving GC
211+
148366670: Finished nonmoving GC preparation
212+
148527085: concurrent mark began
213+
149775840: concurrent mark ended: marked 15225 objects
214+
149778324: concurrent mark began
215+
149779513: concurrent mark ended: marked 13 objects
216+
149810324: post-mark synchronization began
217+
149810665: post-mark synchronization began
218+
149850617: cap 0: update remembered set flushed by 0
219+
149851300: concurrent mark began
220+
149866270: concurrent mark ended: marked 1049 objects
221+
149866671: concurrent mark began
222+
149866848: concurrent mark ended: marked 1 objects
223+
149867039: concurrent mark began
224+
149867202: concurrent mark ended: marked 1 objects
225+
149874824: post-mark synchronization ended
226+
149875168: post-mark synchronization ended
227+
149901246: concurrent sweep began
228+
150026135: concurrent sweep ended
229+
150031083: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
230+
150045140: nonmoving heap census 16: 3 active segments, 1 filled segments, 3342 live blocks
231+
150066310: nonmoving heap census 32: 8 active segments, 3 filled segments, 5613 live blocks
232+
150071204: nonmoving heap census 64: 4 active segments, 0 filled segments, 567 live blocks
233+
150071885: nonmoving heap census 128: 0 active segments, 0 filled segments, 44 live blocks
234+
150073125: nonmoving heap census 256: 0 active segments, 0 filled segments, 1 live blocks
235+
150073558: nonmoving heap census 512: 0 active segments, 0 filled segments, 1 live blocks
236+
150074077: nonmoving heap census 1024: 0 active segments, 0 filled segments, 6 live blocks
237+
150074414: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
238+
150074832: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
239+
150075820: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
240+
150076102: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
241+
176942302: Starting nonmoving GC preparation
242+
176945061: Marking roots for nonmoving GC
243+
176946066: Finished marking roots for nonmoving GC
244+
176946253: Finished nonmoving GC preparation
245+
177039035: concurrent mark began
246+
177741825: concurrent mark ended: marked 15542 objects
247+
177744446: concurrent mark began
248+
177745256: concurrent mark ended: marked 13 objects
249+
177750528: post-mark synchronization began
250+
177750635: post-mark synchronization began
251+
177896570: cap 0: update remembered set flushed by 0
252+
177896939: concurrent mark began
253+
177910616: concurrent mark ended: marked 1082 objects
254+
177911218: concurrent mark began
255+
177911307: concurrent mark ended: marked 1 objects
256+
177911422: concurrent mark began
257+
177911493: concurrent mark ended: marked 1 objects
258+
177919949: post-mark synchronization ended
259+
177920053: post-mark synchronization ended
260+
177925925: concurrent sweep began
261+
178017822: concurrent sweep ended
262+
178020408: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
263+
178026736: nonmoving heap census 16: 1 active segments, 1 filled segments, 2963 live blocks
264+
178041784: nonmoving heap census 32: 7 active segments, 3 filled segments, 5977 live blocks
265+
178045269: nonmoving heap census 64: 4 active segments, 1 filled segments, 757 live blocks
266+
178045812: nonmoving heap census 128: 0 active segments, 0 filled segments, 44 live blocks
267+
178046142: nonmoving heap census 256: 0 active segments, 0 filled segments, 1 live blocks
268+
178046413: nonmoving heap census 512: 0 active segments, 0 filled segments, 1 live blocks
269+
178046632: nonmoving heap census 1024: 0 active segments, 0 filled segments, 6 live blocks
270+
178047048: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
271+
178047379: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
272+
178047876: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
273+
178048246: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
274+
202506857: Starting nonmoving GC preparation
275+
202508058: Marking roots for nonmoving GC
276+
202517509: Finished marking roots for nonmoving GC
277+
202517677: Finished nonmoving GC preparation
278+
202566458: concurrent mark began
279+
203074473: concurrent mark ended: marked 16604 objects
280+
203074950: concurrent mark began
281+
203075547: concurrent mark ended: marked 13 objects
282+
203078118: post-mark synchronization began
283+
203078232: post-mark synchronization began
284+
203131205: cap 0: update remembered set flushed by 0
285+
203131506: concurrent mark began
286+
203140444: concurrent mark ended: marked 1083 objects
287+
203140572: concurrent mark began
288+
203140635: concurrent mark ended: marked 1 objects
289+
203140714: concurrent mark began
290+
203140783: concurrent mark ended: marked 1 objects
291+
203149980: post-mark synchronization ended
292+
203150083: post-mark synchronization ended
293+
203153609: concurrent sweep began
294+
203241257: concurrent sweep ended
295+
203243717: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
296+
203252554: nonmoving heap census 16: 3 active segments, 1 filled segments, 3188 live blocks
297+
203263495: nonmoving heap census 32: 7 active segments, 4 filled segments, 6373 live blocks
298+
203266345: nonmoving heap census 64: 4 active segments, 1 filled segments, 947 live blocks
299+
203266828: nonmoving heap census 128: 0 active segments, 0 filled segments, 45 live blocks
300+
203267099: nonmoving heap census 256: 0 active segments, 0 filled segments, 1 live blocks
301+
203267302: nonmoving heap census 512: 0 active segments, 0 filled segments, 1 live blocks
302+
203267563: nonmoving heap census 1024: 0 active segments, 0 filled segments, 7 live blocks
303+
203267805: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
304+
203268121: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
305+
203268260: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
306+
203268439: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
307+
224422635: Starting nonmoving GC preparation
308+
224424065: Marking roots for nonmoving GC
309+
224424970: Finished marking roots for nonmoving GC
310+
224425126: Finished nonmoving GC preparation
311+
224506119: concurrent mark began
312+
225279214: concurrent mark ended: marked 15033 objects
313+
225280063: concurrent mark began
314+
225280703: concurrent mark ended: marked 13 objects
315+
225283313: post-mark synchronization began
316+
225283479: post-mark synchronization began
317+
225341600: cap 0: update remembered set flushed by 0
318+
225342335: concurrent mark began
319+
225351353: concurrent mark ended: marked 1049 objects
320+
225351605: concurrent mark began
321+
225351675: concurrent mark ended: marked 1 objects
322+
225351773: concurrent mark began
323+
225351842: concurrent mark ended: marked 1 objects
324+
225383632: post-mark synchronization ended
325+
225383831: post-mark synchronization ended
326+
225388468: concurrent sweep began
327+
225553609: concurrent sweep ended
328+
225557870: nonmoving heap census 8: 0 active segments, 0 filled segments, 0 live blocks
329+
225572051: nonmoving heap census 16: 3 active segments, 0 filled segments, 1860 live blocks
330+
225587504: nonmoving heap census 32: 6 active segments, 3 filled segments, 5705 live blocks
331+
225592583: nonmoving heap census 64: 4 active segments, 0 filled segments, 621 live blocks
332+
225593429: nonmoving heap census 128: 0 active segments, 0 filled segments, 46 live blocks
333+
225593797: nonmoving heap census 256: 0 active segments, 0 filled segments, 1 live blocks
334+
225594147: nonmoving heap census 512: 0 active segments, 0 filled segments, 1 live blocks
335+
225594554: nonmoving heap census 1024: 0 active segments, 0 filled segments, 8 live blocks
336+
225594804: nonmoving heap census 2048: 0 active segments, 0 filled segments, 0 live blocks
337+
225595452: nonmoving heap census 4096: 0 active segments, 0 filled segments, 0 live blocks
338+
225596376: nonmoving heap census 8192: 0 active segments, 0 filled segments, 0 live blocks
339+
225597481: nonmoving heap census 16384: 0 active segments, 0 filled segments, 0 live blocks
340+

0 commit comments

Comments
 (0)