Skip to content

Commit f86491e

Browse files
committed
eBPF for weak fields
1 parent 170b8de commit f86491e

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

tools/tracing/timeline/capture_ruby.bt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,9 @@ usdt:$MMTK:mmtk_ruby:update_wb_unprotected_objects_list {
9999
printf("update_wb_unprotected_objects_list,meta,%d,%lu,%lu,%lu\n", tid, nsecs, arg0, arg1);
100100
}
101101
}
102+
103+
usdt:$MMTK:mmtk_ruby:update_weak_fields {
104+
if (@enable_print) {
105+
printf("update_weak_fields,meta,%d,%lu,%lu,%lu,%lu\n", tid, nsecs, arg0, arg1, arg2);
106+
}
107+
}

tools/tracing/timeline/visualize_ruby.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ def enrich_meta_extra(log_processor, name, tid, ts, gc, wp, args):
7171

7272
case "weak_cs_par_final":
7373
num_entries = int(args[0])
74+
if "set_name" not in wp["args"]:
75+
return
7476
set_name = wp["args"]["set_name"]
7577
gc["args"].setdefault(set_name, {})
7678
gc["args"][set_name] |= {
@@ -178,3 +180,14 @@ def enrich_meta_extra(log_processor, name, tid, ts, gc, wp, args):
178180
"diff": after - before,
179181
},
180182
}
183+
184+
case "update_weak_fields":
185+
num_fields, live, forwarded = [int(x) for x in args[0:3]]
186+
wp["args"] |= {
187+
"wb_unprotected_objects": {
188+
"num_fields": num_fields,
189+
"live": live,
190+
"forwarded": forwarded,
191+
"cleared": num_fields - live,
192+
},
193+
}

0 commit comments

Comments
 (0)