Skip to content

Commit e9e740e

Browse files
committed
.
1 parent 1b5c4dc commit e9e740e

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

zjit/src/stats.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,6 +1076,30 @@ impl PerfettoTracer {
10761076
tracer.write_word(pid as u64);
10771077
tracer.write_word(1u64);
10781078

1079+
// Kernel object record for process: type=7, obj_type=1 (ZX_OBJ_TYPE_PROCESS), no args
1080+
let process_name_ref = tracer.intern_string("ruby");
1081+
let ko_process_header: u64 = 7u64
1082+
| (2u64 << 4) // size = 2 words
1083+
| (1u64 << 16) // obj_type = ZX_OBJ_TYPE_PROCESS
1084+
| ((process_name_ref as u64) << 24); // name
1085+
tracer.write_word(ko_process_header);
1086+
tracer.write_word(pid as u64); // koid = process id
1087+
1088+
// Kernel object record for thread: type=7, obj_type=2 (ZX_OBJ_TYPE_THREAD), 1 arg
1089+
let thread_name_ref = tracer.intern_string("main");
1090+
let process_arg_name_ref = tracer.intern_string("process");
1091+
let ko_thread_header: u64 = 7u64
1092+
| (4u64 << 4) // size = 4 words (header + koid + 2-word arg)
1093+
| (2u64 << 16) // obj_type = ZX_OBJ_TYPE_THREAD
1094+
| ((thread_name_ref as u64) << 24) // name
1095+
| (1u64 << 40); // n_args = 1
1096+
tracer.write_word(ko_thread_header);
1097+
tracer.write_word(1u64); // koid = thread id (matches thread record)
1098+
// Koid argument: type=8, size=2, name="process", value=pid
1099+
let arg_header: u64 = 8u64 | (2u64 << 4) | ((process_arg_name_ref as u64) << 16);
1100+
tracer.write_word(arg_header);
1101+
tracer.write_word(pid as u64);
1102+
10791103
// Pre-intern common strings
10801104
tracer.intern_string("side_exit");
10811105
tracer.intern_string("compile");

0 commit comments

Comments
 (0)