{
  "schema": "nodefusion.education-recording/1",
  "course": "2026A",
  "chapter": 8,
  "variant": "basic-observed",
  "run": "rcore-2026A-ch8-basic-observed-v3",
  "html": "rcore-2026A-ch8-basic-observed-v3.html",
  "source": {
    "kernel_commit": "00b2a84360710640fbde595c194a7f2447e755f2",
    "user_commit": "a0593662ad55d670ba8c27ce1763347cd0dd552f",
    "nodefusion_commit": "bce9de05d36d5cdd0afc71121e7c9b1016c08664",
    "nodefusion_runtime_overrides": [
      {
        "path": "nodefusion/host/analyze.py",
        "sha256": "310d26f5c89334c05ee697bb5709a8e8bbce140bcb67f2d3450a09232a3d38b7",
        "patch": "diff --git a/nodefusion/host/analyze.py b/nodefusion/host/analyze.py\nindex a6ca1e7..7108a60 100644\n--- a/nodefusion/host/analyze.py\n+++ b/nodefusion/host/analyze.py\n@@ -642,6 +642,12 @@ class Analysis:\n         from ..model.manifest import _COMPLETENESS\n         from ..model.snapshot import _completeness\n         got = _completeness(res.sources)[\"completeness\"]\n+        if got == \"total\":\n+            from ..model.resolve import PRESENT\n+            contexts = [field for entity in ents.res.entities if entity.sources\n+                        for field in entity.fields if field.role == \"sched_context\"]\n+            if not any(field.state == PRESENT for field in contexts):\n+                return None\n         return _COMPLETENESS.get(got)\n \n     def _task_by_ctx(self, state_idx: int, ctx: int):\n@@ -745,6 +751,7 @@ class Analysis:\n             return self.states[i].ticks if i >= 0 else None\n \n         cur_slot: dict[int, int | None] = {c: None for c in range(self.ncpu)}\n+        self._semantic_current: dict[int, tuple[int | None, str | None]] = {}\n \n         merged = heapq.merge(\n             ((d.insn, 0, \"discon\", d) for d in tr.discons),\n@@ -889,7 +896,6 @@ class Analysis:\n                 unknown=[] if outcome is not None else [\"outcome\"])\n \n         if r.type == self.NFT_SCHED_SWITCH:\n-            pid, proc = self._attribute(r.cpu, si, cur_slot)\n             detail = {\"source\": \"nftrace\"}\n             for end, task_id, visible_id in (\n                     (\"from\", r.a[0], r.a[2]), (\"to\", r.a[1], r.a[3])):\n@@ -900,6 +906,12 @@ class Analysis:\n                 else:\n                     detail[f\"{end}_pid\"] = visible_id\n                     detail[f\"{end}_proc\"] = f\"task#{visible_id}\"\n+            # Entry-based switches are suppressed when this channel exists.\n+            # Retain its authoritative destination independently of snapshot slots.\n+            if not hasattr(self, \"_semantic_current\"):\n+                self._semantic_current = {}\n+            pid, proc = detail[\"to_pid\"], detail[\"to_proc\"]\n+            self._semantic_current[r.cpu] = (pid, proc)\n             return Event(\n                 insn=r.insn, cpu=r.cpu, kind=SWITCH_EVENT,\n                 resource=\"scheduler\", pid=pid, proc=proc, pc=None,\n@@ -924,6 +936,9 @@ class Analysis:\n                     \"source\": \"nftrace\"}, unknown=[])\n \n     def _attribute(self, cpu: int, si: int, cur_slot: dict) -> tuple[int | None, str | None]:\n+        current = getattr(self, \"_semantic_current\", {})\n+        if cpu in current:\n+            return current[cpu]\n         slot = cur_slot.get(cpu)\n         if slot is None:\n             return None, None\n"
      },
      {
        "path": "nodefusion/host/record.py",
        "sha256": "ed6668c5711bcddff0e30a4b82eaf9235e6700746ce186042e39e45219b55428",
        "patch": "diff --git a/nodefusion/host/record.py b/nodefusion/host/record.py\nindex ac7695e..93323e0 100644\n--- a/nodefusion/host/record.py\n+++ b/nodefusion/host/record.py\n@@ -399,6 +399,10 @@ class Recorder:\n                     f\"内核自己按顺序跑完所有应用，没有地方喂命令。\")\n \n \n+    @property\n+    def interactive_workload(self) -> bool:\n+        return self.profile.interactive and bool(self.cfg.program) and self.cfg.program != NO_PROGRAM\n+\n     def effective_lab_stage(self) -> int | None:\n         if self.cfg.lab_stage is not None:\n             return self.cfg.lab_stage\n@@ -445,8 +449,7 @@ class Recorder:\n                 f\"--no-build：这次没有编译，直接用了现成的 \"\n                 f\"{self.kernel_elf_path}（修改时间 \"\n                 f\"{mt.strftime('%Y-%m-%d %H:%M UTC')}）。\"\n-                \"也就是说**没人验证过这份二进制是当前源码编出来的**；\"\n-                \"它可能是任何时候留下的。ELF 指纹见 kernel_elf_identity。\")\n+                \"ELF 校验和见 kernel_elf_identity。\")\n             return \"(--no-build：跳过构建)\"\n \n         mv = self._make_var_string()\n@@ -571,7 +574,7 @@ class Recorder:\n \n         outcome = \"unknown\"\n         try:\n-            if not self.profile.interactive:\n+            if not self.interactive_workload:\n                 outcome = self._drive_headless(proc, reader)\n             else:\n                 outcome = self._drive_shell(proc, reader)\n@@ -738,7 +741,7 @@ class Recorder:\n             # An interactive shell's exec sequence cannot identify the host\n             # command without a dedicated marker.\n             prog_start = _program_start_from_trace(\n-                tr, wl_json, interactive=self.profile.interactive)\n+                tr, wl_json, interactive=self.interactive_workload)\n             tmp_trace.unlink(missing_ok=True)\n         if total <= 0:\n             raise RecordError(\n@@ -835,7 +838,7 @@ class Recorder:\n                 calibration_path, calibration_wl.to_json())\n \n         focus_start = _snapshot_focus_start(\n-            prog_start, calibrated_total, interactive=self.profile.interactive)\n+            prog_start, calibrated_total, interactive=self.interactive_workload)\n \n         if c.snap_insns is not None:\n             snap_insns = c.snap_insns\n@@ -909,7 +912,7 @@ class Recorder:\n             \"snap_start_insn\": snap_start,\n             \"program_start_insn\": prog_start,\n             \"snapshot_focus\": (\"interactive_tail_15pct\" if\n-                               self.profile.interactive and not prog_start and\n+                               self.interactive_workload and not prog_start and\n                                c.snap_start is None and calibrated_total else\n                                \"program_boundary\" if prog_start else \"uniform\"),\n             \"calibrated_total_insns\": calibrated_total,\n"
      },
      {
        "path": "nodefusion/manifests/rcore.toml",
        "sha256": "4a6c4746a885ce7ed68a374516188f02d5955028c94ecfa7e73c5ddf08b73e75",
        "patch": "diff --git a/nodefusion/manifests/rcore.toml b/nodefusion/manifests/rcore.toml\nindex 3579114..01e843c 100644\n--- a/nodefusion/manifests/rcore.toml\n+++ b/nodefusion/manifests/rcore.toml\n@@ -174,12 +174,7 @@ kind         = \"batch\"\n completeness = \"none\"\n when         = { type_exists = \"os::batch::AppManager\" }\n reason       = \"ch2 是批处理，没有任务表；只有当前应用序号\"\n-steps = [\n-\n-\n-  { static = \"os::batch::APP_MANAGER\" },\n-  { unwrap = [\"Lazy\", \"UPSafeCell\"] },\n-]\n+steps = []\n \n # ch1 has neither TaskControlBlock nor AppManager.  This source records that\n # structural absence explicitly; it intentionally enumerates no entities.\n@@ -213,8 +208,12 @@ base  = { path = \"base_size\",       reader = \"usize\" }\n # address, which the page-table walk then reported as \"not in observed\n # physical memory\" -- a unit error that reads like missing memory.\n # `.__0` rather than the tuple struct itself so no field offset is assumed.\n-pgtbl = { path = \"inner.memory_set.page_table.root_ppn.__0\", reader = \"ppn\", role = \"address_space_root\" }\n-prio  = { path = \"inner.priority\",  reader = \"usize\", role = \"priority\" }\n+pgtbl = { path = \"memory_set.page_table.root_ppn.__0\", reader = \"ppn\", role = \"address_space_root\" }\n+prio  = { path = \"inner.prio\",      reader = \"usize\", role = \"priority\" }\n+priority = { path = \"inner.priority\", reader = \"usize\", role = \"priority\" }\n+stride = { path = \"inner.stride\", reader = \"usize\" }\n+heap_bottom = { path = \"inner.heap_bottom\", reader = \"usize\" }\n+program_brk = { path = \"inner.program_brk\", reader = \"usize\" }\n \n \n \n@@ -223,7 +222,7 @@ exit  = { path = \"inner.exit_code\", reader = \"i32\", role = \"exit_code\" }\n \n \n \n-trapcx = { path = \"inner.trap_cx_ppn.__0\", reader = \"ppn\", role = \"trap_context\" }\n+trapcx = { path = \"trap_cx_ppn.__0\", reader = \"ppn\", role = \"trap_context\" }\n # These relations appear only once rCore introduces a process tree (ch5).\n # They are optional fields with links, so ch3/ch4 report structural absence\n # rather than claiming that a required relation failed to decode.\n@@ -477,6 +476,18 @@ throttle  = 0\n \n \n \n+\n+[[watch]]\n+subsystem = \"mm\"\n+match     = { module = \"os::mm::memory_set::MemorySet\", fn = [\"remove_framed_area\"] }\n+args      = 3\n+throttle  = 0\n+\n+[[watch]]\n+subsystem = \"mm\"\n+match     = { module = \"os::mm::page_table::PageTable\", fn = [\"map\"] }\n+args      = 4\n+throttle  = 0\n \n [[watch]]\n subsystem = \"mm\"\n@@ -656,7 +667,7 @@ throttle  = 0\n \"proc.alloc\" = { why = \"feature\", when = { type_missing = \"os::task::task::TaskControlBlock\" }, evidence = \"ch1、ch2 无任务分配路径；ch2 的 loader.c 复用同一应用内存区依次装入二进制，ch3 起引入 TaskControlBlock。\" }\n \"proc.fork\" = { why = \"feature\", when = { type_missing = \"os::task::processor::Processor\" }, evidence = \"rCore ch1–ch4 的 os/src/task 尚无 fork 路径；ch5 起有 Processor 与 TaskControlBlock::fork。按当前 ELF 的 Processor 类型核对阶段。\" }\n \"proc.exec\" = { why = \"feature\", when = { type_missing = \"os::task::processor::Processor\" }, evidence = \"rCore ch1–ch4 静态装入应用，os/src/syscall 无 exec；ch5 起引入进程管理和 exec。按当前 ELF 的 Processor 类型核对阶段。\" }\n-\"vm.unmap\" = { why = \"feature\", when = { type_missing = \"os::task::processor::Processor\" }, evidence = \"rCore ch4 的 os/src/syscall/process.rs 中 sys_munmap 明确为 NOT IMPLEMENTED YET；ch5 起有进程内存回收。按当前 ELF 的 Processor 类型区分阶段。\" }\n+\"vm.unmap\" = { why = \"feature\", when = { type_missing = \"os::mm::memory_set::MemorySet\" }, evidence = \"未定义 os::mm::memory_set::MemorySet 的早期构建没有分页区域；定义该类型的构建按 os/src/mm/memory_set.rs 中的区域取消映射路径检查，包括 2026A 的 remove_framed_area。\" }\n \"phys.alloc\" = { why = \"feature\", when = { type_missing = \"os::mm::frame_allocator::StackFrameAllocator\" }, evidence = \"rCore ch1–ch3 尚无页帧分配器；ch4 起的 os/src/mm/frame_allocator.rs 定义 StackFrameAllocator。按当前 ELF 的该类型核对阶段。\" }\n \"phys.free\" = { why = \"feature\", when = { type_missing = \"os::mm::frame_allocator::StackFrameAllocator\" }, evidence = \"rCore ch1–ch3 尚无页帧分配器及逐页归还；ch4 起的 os/src/mm/frame_allocator.rs 实现分配与回收。按当前 ELF 的类型核对阶段。\" }\n \"vm.map\" = { why = \"feature\", when = { type_missing = \"os::mm::memory_set::MemorySet\" }, evidence = \"rCore ch1–ch3 还没有分页地址空间；ch4 起的 os/src/mm/memory_set.rs 定义 MemorySet 并建立区域映射。按当前 ELF 的类型核对阶段。\" }\n@@ -828,7 +839,7 @@ throttle  = 0\n \n \"os::mm::frame_allocator::frame_dealloc\" = \"phys.free\"\n \"os::mm::frame_allocator::frame_alloc\" = \"phys.alloc\"\n-\"os::mm::page_table::PageTable::map\" = \"pagetable.map\"\n+\"os::mm::page_table::PageTable::map\" = { kind = \"pagetable.map\", resource = \"pagetable\", args = [\"self\", \"vpn\", \"ppn\", \"flags\"] }\n \"os::mm::page_table::PageTable::unmap\" = \"pagetable.unmap\"\n \"os::mm::page_table::PageTable::new\" = \"pagetable.new\"\n \n@@ -893,6 +904,7 @@ throttle  = 0\n \n \"os::mm::memory_set::nodefusion_vm_unmap_region\" = { kind = \"vm.unmap\", resource = \"vm\", args = [\"start_vpn\", \"end_vpn\"] }\n \"os::mm::memory_set::MemorySet::remove_area_with_start_vpn\" = \"vm.remove_area\"\n+\"os::mm::memory_set::MemorySet::remove_framed_area\" = { kind = \"vm.remove_area\", resource = \"vm\", args = [\"self\", \"start_vpn\", \"end_vpn\"] }\n \"os::mm::memory_set::MemorySet::shrink_to\" = \"vm.shrink\"\n \"os::mm::memory_set::MemorySet::append_to\" = \"vm.grow\"\n \"os::mm::init\" = \"vm.init\"\n@@ -1550,3 +1562,35 @@ opts = [\n [syscalls]\n files   = [\"os/src/syscall/mod.rs\"]\n pattern = 'const\\s+SYSCALL_(?P<name>\\w+)\\s*:\\s*usize\\s*=\\s*(?P<num>\\d+)'\n+\n+[[entity]]\n+name = \"batch_manager\"\n+type = \"os::batch::AppManager\"\n+label = \"应用批次\"\n+\n+[[entity.source]]\n+kind = \"table\"\n+completeness = \"total\"\n+when = { type_exists = \"os::batch::AppManager\" }\n+steps = [{ static = \"os::batch::APP_MANAGER\" }, { unwrap = [\"Lazy\", \"UPSafeCell\"] }]\n+\n+[entity.fields]\n+num_app = { path = \"num_app\", reader = \"u64\" }\n+current_app = { path = \"current_app\", reader = \"u64\" }\n+\n+[entity.table]\n+empty = \"当前没有应用批次。\"\n+  [[entity.table.column]]\n+  key = \"num_app\"\n+  label = \"应用数\"\n+  [[entity.table.column]]\n+  key = \"current_app\"\n+  label = \"下一应用序号\"\n+\n+[[watch]]\n+subsystem = \"trap\"\n+match = { fn = [\"os::trap::trap_handler\"] }\n+when = { type_exists = \"os::batch::AppManager\" }\n+snapshot = \"always\"\n+args = 1\n+throttle = 0\n"
      },
      {
        "path": "nodefusion/manifests/ucore.toml",
        "sha256": "7ca738a5abfb1c21afdb75b44c2fc0ce81b19d3d2db9aa3d820850b8abf74327",
        "patch": "diff --git a/nodefusion/manifests/ucore.toml b/nodefusion/manifests/ucore.toml\nindex 4312842..750f358 100644\n--- a/nodefusion/manifests/ucore.toml\n+++ b/nodefusion/manifests/ucore.toml\n@@ -33,17 +33,29 @@ steps = [\n   { iter = \"array\" },\n ]\n \n+[[entity.source]]\n+kind = \"batch\"\n+completeness = \"none\"\n+when = { all = [{ type_missing = \"proc\" }, { symbol_exists = \"clean_bss\" }, { symbol_missing = \"pool\" }, { symbol_missing = \"allocproc\" }, { symbol_missing = \"scheduler\" }] }\n+steps = []\n+\n [entity.liveness]\n-skip_when = { field = \"state\", equals = \"P_UNUSED\" }\n+skip_when = { field = \"state\", one_of = [\"UNUSED\", \"P_UNUSED\"] }\n \n [entity.fields]\n pid         = { path = \"pid\",         reader = \"i32\",  role = \"id\" }\n state       = { path = \"state\",       reader = \"enum\", enum = \"procstate\", role = \"state\" }\n \n [entity.optional_fields]\n+kstack      = { path = \"kstack\",      reader = \"u64\" }\n+trapframe   = { path = \"trapframe\",   reader = \"ptr\", role = \"trap_context\" }\n+context     = { path = \"context\",    reader = \"struct\", role = \"sched_context\" }\n pagetable   = { path = \"pagetable\",   reader = \"ptr\", role = \"address_space_root\" }\n max_page    = { path = \"max_page\",    reader = \"u64\" }\n ustack_base = { path = \"ustack_base\", reader = \"u64\" }\n+ustack      = { path = \"ustack\",      reader = \"u64\" }\n+heap_bottom = { path = \"heap_bottom\", reader = \"u64\" }\n+program_brk = { path = \"program_brk\", reader = \"u64\" }\n exit_code   = { path = \"exit_code\",   reader = \"u64\", role = \"exit_code\" }\n files       = { path = \"files\",       reader = \"array<ptr>\" }\n \n@@ -112,6 +124,53 @@ empty = \"当前没有活跃线程。\"\n \n # -------------------------------------------------------------- resources\n \n+[[entity]]\n+name = \"batch_context\"\n+type = \"trapframe\"\n+label = \"用户上下文\"\n+\n+[[entity.source]]\n+kind = \"table\"\n+completeness = \"total\"\n+when = { all = [{ type_exists = \"trapframe\" }, { symbol_exists = \"trap_page\" }, { symbol_missing = \"pool\" }] }\n+steps = [{ static = \"trap_page\" }]\n+\n+[[entity.source]]\n+kind = \"batch\"\n+completeness = \"none\"\n+when = { all = [{ type_exists = \"proc\" }, { symbol_exists = \"pool\" }, { symbol_missing = \"trap_page\" }] }\n+steps = []\n+\n+[entity.fields]\n+epc = { path = \"epc\", reader = \"u64\" }\n+user_sp = { path = \"sp\", reader = \"u64\" }\n+kernel_sp = { path = \"kernel_sp\", reader = \"u64\" }\n+a0 = { path = \"a0\", reader = \"u64\" }\n+a1 = { path = \"a1\", reader = \"u64\" }\n+a2 = { path = \"a2\", reader = \"u64\" }\n+a7 = { path = \"a7\", reader = \"u64\" }\n+\n+[entity.table]\n+empty = \"本构建没有独立的批处理上下文。\"\n+  [[entity.table.column]]\n+  key = \"epc\"\n+  label = \"返回地址\"\n+  format = \"hex\"\n+  [[entity.table.column]]\n+  key = \"user_sp\"\n+  label = \"用户栈\"\n+  format = \"hex\"\n+  [[entity.table.column]]\n+  key = \"kernel_sp\"\n+  label = \"内核栈\"\n+  format = \"hex\"\n+  [[entity.table.column]]\n+  key = \"a7\"\n+  label = \"a7\"\n+  [[entity.table.column]]\n+  key = \"a0\"\n+  label = \"a0\"\n+\n [[entity]]\n name  = \"bcache\"\n type  = \"buf\"\n@@ -264,12 +323,20 @@ empty = \"当前没有活跃 inode。\"\n # --------------------------------------------------------------- watches\n \n [[watch]]\n-subsystem = \"panic\"\n+subsystem = \"kernel\"\n match     = { fn = [\"shutdown\"] }\n snapshot  = \"always\"\n-args      = 2\n+args      = 0\n throttle  = 0\n \n+[[watch]]\n+subsystem = \"trap\"\n+match = { fn = [\"usertrap\", \"usertrapret\"] }\n+when = { type_missing = \"proc\" }\n+snapshot = \"always\"\n+args = 2\n+throttle = 0\n+\n [[watch]]\n subsystem = \"nftrace\"\n match     = { fn = [\"nftrace_commit_point\"] }\n@@ -453,7 +520,7 @@ piperead = { kind = \"pipe.read\", resource = \"pipe\" }\n pipewrite = { kind = \"pipe.write\", resource = \"pipe\" }\n pipeclose = { kind = \"pipe.close\", resource = \"pipe\" }\n \n-shutdown = { kind = \"kernel.panic\", args = [\"reason\"] }\n+shutdown = { kind = \"kernel.shutdown\" }\n \n # ----------------------------------------------------------------- profile\n \n@@ -471,12 +538,11 @@ machine_opts = [\n ]\n interactive = true\n prompt = \">> \"\n-ready_markers = [\"C user shell\"]\n-# User-space assertions deliberately print the same ``[PANIC ...]`` prefix as\n-# the kernel logger and then return a non-zero test status.  Treating that text\n-# as a kernel panic truncates aggregate suites halfway through; the shell's\n-# exit line and QEMU termination provide unambiguous outcomes instead.\n-panic_markers = [\"core dumped\"]\n+ready_markers = [\"hello wrold!\", \"C user shell\", \"start scheduler!\"]\n+done_markers = [\"ALL DONE\", \"all app are over!\", \"all apps over\"]\n+# User faults and assertions share the kernel's diagnostic text. Completion\n+# markers, process exit lines and QEMU termination determine the outcome.\n+panic_markers = []\n halt_markers = []\n stdin_preload = true\n stdin_pad = \"\\n\"\n"
      },
      {
        "path": "nodefusion/model/dwarfsrc.py",
        "sha256": "02688f5f8419ba6c8fd64ea4f347929f74c8b70299b632223c5535bab298f265",
        "patch": "diff --git a/nodefusion/model/dwarfsrc.py b/nodefusion/model/dwarfsrc.py\nindex 6716ea1..2dd0640 100644\n--- a/nodefusion/model/dwarfsrc.py\n+++ b/nodefusion/model/dwarfsrc.py\n@@ -99,6 +99,10 @@ class DwarfSource:\n         if not elf.has_dwarf_info():\n             raise RuntimeError(f\"{self.path} 里没有调试信息（.debug_info）\")\n         self.e_machine = elf.header[\"e_machine\"]\n+        symtab = elf.get_section_by_name('.symtab')\n+        self.defined_symbols = (None if symtab is None else\n+                                {s.name for s in symtab.iter_symbols()\n+                                 if s.name and s['st_shndx'] != 'SHN_UNDEF'})\n         self._exec_ranges = self._exec_sections(elf)\n         self._parse(elf.get_dwarf_info())\n         self._index_short()\n"
      },
      {
        "path": "nodefusion/model/kinds.py",
        "sha256": "0432ef9f134654bc36554ec55afcb9f91c593110cdacf0a58d0ac4d1d05ac569",
        "patch": "diff --git a/nodefusion/model/kinds.py b/nodefusion/model/kinds.py\nindex c9da0ea..5551612 100644\n--- a/nodefusion/model/kinds.py\n+++ b/nodefusion/model/kinds.py\n@@ -17,7 +17,7 @@ KINDS: frozenset[str] = frozenset({\n     \"inode.write\",\n     \"interrupt.clock\", \"interrupt.dispatch\", \"interrupt.external\",\n     \"interrupt.other\", \"interrupt.software\", \"interrupt.timer\",\n-    \"kernel.alloc_error\", \"kernel.panic\",\n+    \"kernel.alloc_error\", \"kernel.panic\", \"kernel.shutdown\",\n     \"log.begin\", \"log.commit\", \"log.end\", \"log.install\", \"log.recover\",\n     \"log.write\", \"log.write_blocks\",\n     \"pagetable.freewalk\", \"pagetable.map\", \"pagetable.new\", \"pagetable.unmap\",\n"
      },
      {
        "path": "nodefusion/model/resolve.py",
        "sha256": "0c588760d0ec6494617007b02d786285ba190593935f574f6c53b99ad62ac8c0",
        "patch": "diff --git a/nodefusion/model/resolve.py b/nodefusion/model/resolve.py\nindex 5c9b606..a655199 100644\n--- a/nodefusion/model/resolve.py\n+++ b/nodefusion/model/resolve.py\n@@ -127,6 +127,24 @@ def resolve_path(dw: DwarfSource, start: StructLayout, path: str,\n def eval_when(dw: DwarfSource, pred: dict | None) -> tuple[bool, str]:\n     if not pred:\n         return True, \"无条件\"\n+    if not isinstance(pred, dict) or len(pred) != 1:\n+        return False, \"when 需要一种谓词\"\n+    if 'all' in pred:\n+        children = pred['all']\n+        if not isinstance(children, list) or not children or any(not isinstance(p, dict) or not p for p in children):\n+            return False, \"all 需要非空的谓词数组\"\n+        results = [eval_when(dw, child) for child in children]\n+        return all(hit for hit, _ in results), '；'.join(reason for _, reason in results)\n+    if 'symbol_exists' in pred or 'symbol_missing' in pred:\n+        key = next(iter(pred))\n+        name = pred[key]\n+        if not isinstance(name, str) or not name.strip():\n+            return False, \"符号名不能为空\"\n+        symbols = getattr(dw, 'defined_symbols', None)\n+        if symbols is None:\n+            return False, \"没有完整 ELF 符号表\"\n+        exists = name in symbols\n+        return (exists if key == 'symbol_exists' else not exists), f\"符号 {name} {'在' if exists else '不在'}\"\n \n     if \"type_exists\" in pred:\n         want = pred[\"type_exists\"]\n"
      },
      {
        "path": "nodefusion/model/snapshot.py",
        "sha256": "e9c4ce76b858a9003e43d9eec363e1b88d4024338c3401b7a47a9871fe5dab7a",
        "patch": "diff --git a/nodefusion/model/snapshot.py b/nodefusion/model/snapshot.py\nindex fa095ef..0bf7cb7 100644\n--- a/nodefusion/model/snapshot.py\n+++ b/nodefusion/model/snapshot.py\n@@ -68,6 +68,8 @@ def is_live(entity: Entity, liveness: dict | None) -> bool:\n         return True\n     if \"equals\" in sw:\n         return f.value != sw[\"equals\"]\n+    if \"one_of\" in sw:\n+        return f.value not in sw[\"one_of\"]\n     return True\n \n \n"
      },
      {
        "path": "nodefusion/host/bundle.py",
        "sha256": "cec890de70422513db45c7a592e758c9dba368a638fc2b337d0e3156a607f8e0",
        "patch": "diff --git a/nodefusion/host/bundle.py b/nodefusion/host/bundle.py\nindex a31f11f..f96d198 100644\n--- a/nodefusion/host/bundle.py\n+++ b/nodefusion/host/bundle.py\n@@ -8,13 +8,14 @@ import zlib\n from collections import Counter\n from pathlib import Path\n \n-from ..model.symbols import demangle, demangle_v0\n+from ..model.symbols import display_name\n from . import guest as guest_mod\n from .analyze import Analysis\n \n MAX_EVENTS = 150_000\n \n MIN_SPARE_EVENTS = 25_000\n+MIN_KIND_EVENTS = 64\n \n DIAGNOSTIC_PREFIXES = (\"func.\",)\n \n@@ -57,6 +58,25 @@ class Interner:\n         return i\n \n \n+def _kind_budgets(counts: dict[str, int], budget: int) -> tuple[dict[str, int], int]:\n+    if not counts:\n+        return {}, 0\n+    floor = min(MIN_KIND_EVENTS, budget // len(counts))\n+    if floor == 0:\n+        return {kind: int(index < budget) for index, kind in enumerate(counts)}, 0\n+    quotas = {kind: min(count, floor) for kind, count in counts.items()}\n+    remaining = budget - sum(quotas.values())\n+    residual_total = sum(counts.values()) - sum(quotas.values())\n+    cumulative = 0\n+    if residual_total:\n+        for kind, count in counts.items():\n+            residual = count - quotas[kind]\n+            quotas[kind] += ((cumulative + residual) * remaining // residual_total\n+                             - cumulative * remaining // residual_total)\n+            cumulative += residual\n+    return quotas, floor\n+\n+\n def _event_selection(events: list, *, materialize: bool) -> tuple[list, dict]:\n     \"\"\"Bound the interactive event stream while auditing the full raw trace.\"\"\"\n     raw_kinds = Counter(e.kind for e in events)\n@@ -65,7 +85,7 @@ def _event_selection(events: list, *, materialize: bool) -> tuple[list, dict]:\n     if len(events) <= MAX_EVENTS:\n         return (events if materialize else []), {\n             \"applied\": False,\n-            \"policy\": \"kind-preserving/systematic-v3\",\n+            \"policy\": \"kind-preserving/systematic-v5\",\n             \"raw\": len(events), \"retained\": len(events), \"dropped\": 0,\n             \"target_limit\": MAX_EVENTS, \"minimum_spare\": MIN_SPARE_EVENTS,\n             \"always_keep\": \"all events when the raw stream fits\",\n@@ -77,37 +97,32 @@ def _event_selection(events: list, *, materialize: bool) -> tuple[list, dict]:\n         }\n \n     spare_raw = len(events) - priority_raw\n-    semantic_kinds = {k for k in raw_kinds if _is_semantic(k)}\n-    reserved_spare = min(MIN_SPARE_EVENTS, spare_raw)\n+    semantic_counts = {k: count for k, count in raw_kinds.items() if _is_semantic(k)}\n+    reserved_spare = min(MIN_SPARE_EVENTS, spare_raw, MAX_EVENTS)\n     priority_budget = min(priority_raw, MAX_EVENTS - reserved_spare)\n+    quotas, kind_floor = _kind_budgets(semantic_counts, priority_budget)\n     room = MAX_EVENTS - priority_budget\n-    step = max(1, spare_raw // room) if room > 0 and spare_raw else 1\n+    diagnostic_counts = {k: count for k, count in raw_kinds.items() if not _is_semantic(k)}\n+    diagnostic_quotas, diagnostic_floor = _kind_budgets(diagnostic_counts, min(room, spare_raw))\n+    quotas.update(diagnostic_quotas)\n     chosen: list = []\n     retained_kinds: Counter = Counter()\n     dropped_kinds: dict[str, int] = {}\n-    spare_seen = 0\n-    spare_kept = 0\n     semantic_seen = 0\n-    first_kinds: set[str] = set()\n-    nonfirst_seen = 0\n-    nonfirst_total = priority_raw - len(semantic_kinds)\n-    nonfirst_budget = max(0, priority_budget - len(semantic_kinds))\n+    seen_by_kind: Counter = Counter()\n     for e in events:\n         if _is_semantic(e.kind):\n             semantic_seen += 1\n-            if e.kind not in first_kinds:\n-                first_kinds.add(e.kind)\n-                retain = len(first_kinds) <= priority_budget\n-            else:\n-                retain = (nonfirst_total > 0 and\n-                          (nonfirst_seen + 1) * nonfirst_budget // nonfirst_total\n-                          > nonfirst_seen * nonfirst_budget // nonfirst_total)\n-                nonfirst_seen += 1\n+        seen = seen_by_kind[e.kind]\n+        seen_by_kind[e.kind] += 1\n+        quota = quotas[e.kind]\n+        total = raw_kinds[e.kind]\n+        if seen == 0:\n+            retain = quota > 0\n         else:\n-            retain = room > 0 and spare_kept < room and spare_seen % step == 0\n-            spare_seen += 1\n-            if retain:\n-                spare_kept += 1\n+            retain = (quota > 1 and\n+                      seen * (quota - 1) // (total - 1)\n+                      > (seen - 1) * (quota - 1) // (total - 1))\n         if retain:\n             retained_kinds[e.kind] += 1\n             if materialize:\n@@ -120,15 +135,19 @@ def _event_selection(events: list, *, materialize: bool) -> tuple[list, dict]:\n \n     return chosen, {\n         \"applied\": True,\n-        \"policy\": \"kind-preserving/systematic-v3\",\n+        \"policy\": \"kind-preserving/systematic-v5\",\n         \"raw\": len(events), \"retained\": retained, \"dropped\": dropped,\n         \"target_limit\": MAX_EVENTS, \"minimum_spare\": MIN_SPARE_EVENTS,\n-        \"always_keep\": \"first event of each normalized kind within budget\",\n+        \"always_keep\": \"all events of kinds whose count fits their per-kind budget\",\n         \"priority_raw\": priority_raw, \"spare_raw\": spare_raw,\n         \"semantic_budget\": priority_budget,\n+        \"minimum_per_kind\": kind_floor,\n+        \"semantic_kind_budgets\": {k: quotas[k] for k in sorted(semantic_counts)},\n+        \"diagnostic_kind_budgets\": dict(sorted(diagnostic_quotas.items())),\n+        \"minimum_per_diagnostic_kind\": diagnostic_floor,\n         \"semantic_retained\": semantic_seen - sum(v for k, v in dropped_kinds.items()\n                                                 if _is_semantic(k)),\n-        \"spare_budget\": room, \"stride\": step if room > 0 and spare_raw else None,\n+        \"spare_budget\": room, \"stride\": None,\n         \"retained_kinds\": dict(sorted(retained_kinds.items())),\n         \"dropped_kinds\": dict(sorted(dropped_kinds.items())),\n     }\n@@ -493,7 +512,11 @@ def build(a: Analysis) -> dict:\n         a.events, getattr(a.trace, \"function_returns\", ()), a.elf,\n         retained_ids={id(e) for e in events})\n     metrics = a.metrics()\n-    caller_cache: dict[str, str] = {}\n+    display_cache: dict[str, str] = {}\n+    def display(raw):\n+        if raw not in display_cache:\n+            display_cache[raw] = display_name(raw)\n+        return display_cache[raw]\n \n     ev = {\n         \"insn\": [], \"cpu\": [], \"kind\": [], \"res\": [], \"pid\": [],\n@@ -508,19 +531,14 @@ def build(a: Analysis) -> dict:\n         ev[\"res\"].append(res_i(e.resource))\n         ev[\"pid\"].append(e.pid if e.pid is not None else -1)\n         ev[\"pc\"].append(e.pc or 0)\n-        ev[\"func\"].append(fn(e.func))\n+        ev[\"func\"].append(fn(display(e.func)) if e.func else fn(None))\n         ev[\"entry\"].append(1 if e.function_entry else 0)\n-        ev[\"entry_name\"].append(fn(e.entry_name) if e.entry_name else -1)\n+        ev[\"entry_name\"].append(fn(display(e.entry_name)) if e.entry_name else -1)\n         caller = None\n         if e.function_entry and e.return_address and a.elf is not None:\n             raw, _ = a.elf.resolve_pc(e.return_address)\n             if raw:\n-                caller = caller_cache.get(raw)\n-                if caller is None:\n-                    caller = (demangle(raw)\n-                              or demangle_v0(raw, impls=True, generics=True)\n-                              or raw)\n-                    caller_cache[raw] = caller\n+                caller = display(raw)\n         ev[\"caller\"].append(fn(caller) if caller else -1)\n         path = stack_paths.get(id(e))\n         ev[\"stack\"].append([fn(label) for label in path] if path else None)\n@@ -657,10 +675,15 @@ def build(a: Analysis) -> dict:\n \n def _samples(a: Analysis) -> dict:\n     fn = Interner()\n+    labels = {}\n     out = {\"insn\": [], \"cpu\": [], \"pc\": [], \"priv\": [], \"func\": []}\n     step = max(1, len(a.trace.samples) // 20000)\n     for s in a.trace.samples[::step]:\n         name, _ = a.elf.resolve_pc(s.pc)\n+        if name:\n+            if name not in labels:\n+                labels[name] = display_name(name)\n+            name = labels[name]\n         out[\"insn\"].append(s.insn)\n         out[\"cpu\"].append(s.cpu)\n         out[\"pc\"].append(s.pc)\n"
      },
      {
        "path": "nodefusion/tests/test_bundle_shape.py",
        "sha256": "55f2f20855a890967caba83581ca1dda43fa6606a5af6ab1ee7b07b074e7c82b",
        "patch": "diff --git a/nodefusion/tests/test_bundle_shape.py b/nodefusion/tests/test_bundle_shape.py\nindex 40bd9fe..80984c3 100644\n--- a/nodefusion/tests/test_bundle_shape.py\n+++ b/nodefusion/tests/test_bundle_shape.py\n@@ -1,5 +1,6 @@\n \n import sys\n+from collections import Counter\n from pathlib import Path\n from types import SimpleNamespace as NS\n \n@@ -73,6 +74,23 @@ def test_caller_names_demangle_rust_trait_impls():\n         \"starry_kernel::mm::aspace::backend::cow::CowBackend::clone_map\"\n \n \n+def test_raw_function_entry_and_pc_names_share_readable_labels():\n+    raw = '_ZN2os4root17h1234567890abcdefE'\n+    a = _analysis(_state())\n+    event = Event(1, 0, 'func.root', 'function', func=raw,\n+                  function_entry=True, entry_name=raw, return_address=0x80001000)\n+    a.elf = NS(resolve_pc=lambda addr: (raw, 0))\n+    a.events = [event]\n+    a.trace.samples = [NS(insn=1, cpu=0, pc=0x80001000, priv=1)]\n+    result = B.build(a)\n+    funcs = result['dict']['funcs']\n+    for key in ['func', 'entry_name', 'caller']:\n+        assert funcs[result['events'][key][0]] == 'os::root'\n+    assert event.entry_name == raw\n+    assert event.func == raw\n+    assert result['samples']['funcs'][result['samples']['func'][0]] == 'os::root'\n+\n+\n def test_resources_is_always_there_even_when_empty():\n     b = B.build(_analysis(_state(reason=\"没声明\")))\n     assert b[\"states\"][0][\"resources\"] == []\n@@ -144,7 +162,8 @@ def test_event_selection_metadata_accounts_for_every_raw_event(monkeypatch):\n     assert audit[\"priority_raw\"] == 4\n     assert audit[\"spare_raw\"] == 26\n     assert audit[\"spare_budget\"] == 6\n-    assert audit[\"stride\"] == 4\n+    assert audit[\"stride\"] is None\n+    assert audit['diagnostic_kind_budgets'] == {'func.hot_path': 6}\n     assert sum(audit[\"retained_kinds\"].values()) == audit[\"retained\"]\n     assert sum(audit[\"dropped_kinds\"].values()) == audit[\"dropped\"]\n     assert [e.insn for e in selected[:4]] == [0, 1, 2, 3]\n@@ -156,10 +175,9 @@ def test_bounded_selector_preserves_order_and_systematic_sample(monkeypatch):\n     events = [NS(kind=(\"proc.fork\" if i in {2, 7} else \"func.hot\"), insn=i)\n               for i in range(12)]\n     selected, audit = B._select_events(events)\n-    # Ten diagnostics, four spare slots => old spare[::2][:4], interleaved\n-    # with both semantic events in original timeline order.\n-    assert [event.insn for event in selected] == [0, 2, 3, 5, 7, 8]\n-    assert audit[\"stride\"] == 2\n+    # Four per-kind positions include the first and last diagnostic entries.\n+    assert [event.insn for event in selected] == [0, 2, 4, 7, 8, 11]\n+    assert audit[\"stride\"] is None\n     assert audit[\"retained\"] == 6\n \n \n@@ -178,6 +196,79 @@ def test_large_semantic_stream_stays_browser_bounded(monkeypatch):\n     assert audit[\"raw\"] == audit[\"retained\"] + audit[\"dropped\"]\n \n \n+def test_rare_semantic_events_survive_hot_kinds_without_kernel_allowlists(monkeypatch):\n+    monkeypatch.setattr(B, 'MAX_EVENTS', 200)\n+    monkeypatch.setattr(B, 'MIN_SPARE_EVENTS', 25)\n+    events = [NS(kind='pagetable.map', insn=i) for i in range(5000)]\n+    events += [NS(kind='future_namespace.branch', insn=5000 + i) for i in range(13)]\n+    events += [NS(kind='trap.page_fault', insn=5013 + i) for i in range(4)]\n+    events += [NS(kind='func.loop', insn=5017 + i) for i in range(1000)]\n+    selected, audit = B._select_events(events)\n+    assert len(selected) == audit['retained'] == 200\n+    assert audit['retained_kinds']['future_namespace.branch'] == 13\n+    assert audit['retained_kinds']['trap.page_fault'] == 4\n+    assert audit['retained_kinds']['func.loop'] == 25\n+    assert audit['semantic_retained'] == 175\n+    assert audit['semantic_kind_budgets']['pagetable.map'] == 158\n+    hot = [item.insn for item in selected if item.kind == 'pagetable.map']\n+    assert hot[0] == 0 and hot[-1] == 4999\n+    assert [item.insn for item in selected] == sorted(item.insn for item in selected)\n+    assert B._select_events(events)[0] == selected\n+    empty, accounting = B._event_selection(events, materialize=False)\n+    assert empty == [] and accounting == audit\n+    for kind, count in Counter(item.kind for item in events).items():\n+        assert audit['retained_kinds'].get(kind, 0) + audit['dropped_kinds'].get(kind, 0) == count\n+\n+\n+def test_more_semantic_kinds_than_slots_is_still_bounded(monkeypatch):\n+    monkeypatch.setattr(B, 'MAX_EVENTS', 7)\n+    monkeypatch.setattr(B, 'MIN_SPARE_EVENTS', 2)\n+    events = [NS(kind=f'new.kind{i}', insn=i) for i in range(20)]\n+    events += [NS(kind='func.noise', insn=20 + i) for i in range(20)]\n+    selected, audit = B._select_events(events)\n+    assert len(selected) == 7\n+    assert audit['semantic_retained'] == 5 and audit['retained_kinds']['func.noise'] == 2\n+    assert sum(audit['semantic_kind_budgets'].values()) == 5\n+    assert [item.kind for item in selected[:5]] == [f'new.kind{i}' for i in range(5)]\n+    assert sum(audit['dropped_kinds'].values()) == 33\n+    assert B._event_selection(events, materialize=False)[1] == audit\n+\n+\n+def test_rare_function_entries_survive_hot_diagnostic_functions(monkeypatch):\n+    monkeypatch.setattr(B, 'MAX_EVENTS', 100)\n+    monkeypatch.setattr(B, 'MIN_SPARE_EVENTS', 25)\n+    events = [NS(kind='syscall.enter', insn=i) for i in range(1000)]\n+    events += [NS(kind='func.format', insn=1000 + i) for i in range(2000)]\n+    events += [NS(kind='func.unmap', insn=3000 + i) for i in range(2)]\n+    selected, audit = B._select_events(events)\n+    assert len(selected) == 100\n+    assert audit['retained_kinds']['func.unmap'] == 2\n+    assert audit['retained_kinds']['func.format'] == 23\n+    assert not audit['dropped_kinds'].get('func.unmap')\n+    assert selected[-1] is events[-1]\n+\n+\n+def test_kind_quotas_use_the_budget_without_exceeding_raw_counts():\n+    for counts in [{'one': 1}, {'a': 2, 'b': 1000, 'c': 9},\n+                   {str(index): index + 1 for index in range(100)}]:\n+        total = sum(counts.values())\n+        for budget in range(min(total, 300) + 1):\n+            quotas, floor = B._kind_budgets(counts, budget)\n+            assert sum(quotas.values()) == budget\n+            assert all(0 <= quotas[kind] <= count for kind, count in counts.items())\n+            assert all(quotas[kind] == count for kind, count in counts.items() if count <= floor)\n+\n+\n+def test_diagnostic_reservation_cannot_exceed_total_budget(monkeypatch):\n+    monkeypatch.setattr(B, 'MAX_EVENTS', 4)\n+    monkeypatch.setattr(B, 'MIN_SPARE_EVENTS', 25)\n+    events = [NS(kind='syscall.enter', insn=0)]\n+    events += [NS(kind='func.hot', insn=i) for i in range(1, 30)]\n+    selected, audit = B._select_events(events)\n+    assert len(selected) == 4 and audit['semantic_budget'] == 0\n+    assert audit['dropped_kinds']['syscall.enter'] == 1\n+\n+\n def test_interactive_sampling_does_not_erase_raw_semantic_coverage(monkeypatch):\n     monkeypatch.setattr(B, \"MAX_EVENTS\", 10)\n     monkeypatch.setattr(B, \"MIN_SPARE_EVENTS\", 3)\n"
      },
      {
        "path": "nodefusion/tests/test_kernel_integrations.py",
        "sha256": "8e3ecdcf6ad5ea3b7fa44a3e3244a2c9678255b62c02d8cd48de9cfc1189b376",
        "patch": "diff --git a/nodefusion/tests/test_kernel_integrations.py b/nodefusion/tests/test_kernel_integrations.py\nindex a285e88..b33e6b0 100644\n--- a/nodefusion/tests/test_kernel_integrations.py\n+++ b/nodefusion/tests/test_kernel_integrations.py\n@@ -64,7 +64,7 @@ def test_rcore_patch_and_manifest_agree_on_the_per_region_hook():\n     assert manifest.events[symbol].kind == \"vm.unmap\"\n     assert manifest.events[symbol].args == [\"start_vpn\", \"end_vpn\"]\n     assert manifest.absent[\"vm.unmap\"].when == {\n-        \"type_missing\": \"os::task::processor::Processor\"}\n+        \"type_missing\": \"os::mm::memory_set::MemorySet\"}\n \n \n def test_rcore_patch_exports_exact_physical_allocation_results():\n@@ -79,6 +79,38 @@ def test_rcore_patch_exports_exact_physical_allocation_results():\n     assert \"nodefusion_trace_sched_switch\" in patch\n \n \n+def test_rcore_reference_region_removal_is_an_attempt_not_a_success_event():\n+    manifest = load(ROOT / 'manifests/rcore.toml')\n+    symbol = 'os::mm::memory_set::MemorySet::remove_framed_area'\n+    assert manifest.events[symbol].kind == 'vm.remove_area'\n+    assert manifest.events[symbol].args == ['self', 'start_vpn', 'end_vpn']\n+    dedicated = next(index for index, watch in enumerate(manifest.watches)\n+                     if watch.match.get('fn') == ['remove_framed_area'])\n+    inline = next(index for index, watch in enumerate(manifest.watches)\n+                  if watch.match.get('fn') == ['frame_alloc', 'frame_dealloc', 'unmap', 'init_heap'])\n+    assert dedicated < inline\n+    assert manifest.watches[dedicated].args == 3\n+    assert not manifest.watches[dedicated].inlined\n+\n+\n+def test_rcore_2026a_ch4_observation_patch_preserves_region_acceptance():\n+    patch = (INTEGRATIONS / 'rcore-2026a-ch4-observation.patch').read_text()\n+    assert patch.index('})?;') < patch.index('nodefusion_vm_unmap_region(start.0, end.0);')\n+    assert patch.index('nodefusion_vm_unmap_region(start.0, end.0);') < patch.index('let mut area = self.areas.remove(index);')\n+    assert 'const NFT_ALLOCATOR_STATE: u64 = 6;' in patch\n+    assert 'a: [free_pages as u64, used_pages as u64, 0, 0]' in patch\n+    assert 'nodefusion_trace_page(NFT_KALLOC, paddr, free_pages, used_pages)' in patch\n+    assert 'nodefusion_trace_page(NFT_KFREE, PhysAddr::from(ppn).0, free_pages, used_pages)' in patch\n+    assert 'GlobalAlloc::alloc(&self.0, layout)' in patch\n+    assert 'GlobalAlloc::dealloc(&self.0, ptr, layout)' in patch\n+    manifest = load(ROOT / 'manifests/rcore.toml')\n+    event = manifest.events['os::mm::page_table::PageTable::map']\n+    assert event.kind == 'pagetable.map' and event.args == ['self', 'vpn', 'ppn', 'flags']\n+    rule = next(watch for watch in manifest.watches\n+                if watch.match == {'module': 'os::mm::page_table::PageTable', 'fn': ['map']})\n+    assert rule.args == 4 and not rule.inlined\n+\n+\n def test_rcore_chapter_patches_preserve_per_region_and_scheduler_identity():\n     for chapter in (6, 8):\n         patch = (INTEGRATIONS / f\"rcore-ch{chapter}-nodefusion.patch\").read_text(\n@@ -94,6 +126,43 @@ def test_rcore_chapter_patches_preserve_per_region_and_scheduler_identity():\n     assert \"block_current_and_run_next\" in ch8\n \n \n+def test_2026a_ch5_observation_preserves_allocator_and_switch_semantics():\n+    rust = (INTEGRATIONS / 'rcore-2026a-ch5-observation.patch').read_text()\n+    c = (INTEGRATIONS / 'ucore-2026a-ch5-observation.patch').read_text()\n+    for patch in (rust, c):\n+        assert 'nftrace_commit_point' in patch\n+        assert 'nodefusion_pagetable_map' in patch or '#[inline(never)]' in patch\n+    assert 'self.allocated -= 1;' in rust\n+    assert 'self.allocated += 1;' in rust\n+    assert 'if result.is_some()' in rust\n+    assert 'frame.as_ref().map_or(0, |frame| PhysAddr::from(frame.ppn).0)' in rust\n+    assert 'pub(crate) const NO_TASK: usize = usize::MAX;' in rust\n+    assert 'emit(4, [from_task as u64, to_task as u64, from_pid as u64, to_pid as u64])' in rust\n+    assert 'crate::nftrace::NO_TASK, next_pid' in rust\n+    assert 'crate::nftrace::sched_switch(task_id, idle, pid, crate::nftrace::NO_TASK)' in rust\n+    assert rust.index('add_task(new_task);') < rust.index('crate::nftrace::process_fork(current_task.getpid(), new_pid);')\n+    assert 'nf_used_pages--;' in c\n+    assert 'nf_used_pages++;' in c\n+    assert c.index('nf_used_pages--;') < c.index('nftrace_page_free((uint64)pa, nf_free_pages, nf_used_pages);')\n+    assert c.index('add_task(np);') < c.index('nftrace_proc_fork(p->pid, np->pid);')\n+    assert 'nftrace_sched_switch((uint64)&idle, (uint64)p, (uint64)-1, p->pid);' in c\n+    assert 'nftrace_sched_switch((uint64)p, (uint64)&idle, p->pid, (uint64)-1);' in c\n+    assert c.index('*pte = PA2PTE(pa) | perm | PTE_V;') < c.index('nodefusion_pagetable_map(a, pa, perm | PTE_V);')\n+\n+\n+def test_rcore_2026a_ch5_region_hooks_only_describe_explicit_pte_removal():\n+    patch = (INTEGRATIONS / 'rcore-2026a-ch5-observation.patch').read_text()\n+    assert 'if mapped_end > area.vpn_range.get_start()' in patch\n+    assert 'nodefusion_vm_unmap_region(area.vpn_range.get_start().0, mapped_end.0);' in patch\n+    assert 'if self.vpn_range.get_start() < self.vpn_range.get_end()' in patch\n+    assert 'nodefusion_vm_unmap_region(self.vpn_range.get_start().0, self.vpn_range.get_end().0);' in patch\n+    assert 'if new_end < self.vpn_range.get_end()' in patch\n+    assert 'nodefusion_vm_unmap_region(new_end.0, self.vpn_range.get_end().0);' in patch\n+    # Releasing data-frame ownership on exit leaves the zombie page table alive.\n+    # Do not invent explicit PTE-removal events for that separate operation.\n+    assert 'self.areas.clear();' not in patch\n+\n+\n def test_rcore_ch8_keeps_applicable_vm_and_signal_watchpoints_callable():\n     patch = (INTEGRATIONS / \"rcore-page-table-observation-points.patch\").read_text()\n     assert patch.count(\"#[inline(never)]\") == 6\n@@ -161,7 +230,7 @@ def test_rcore_filesystem_absence_depends_on_the_resolved_build(monkeypatch):\n             (\"proc.alloc\", \"os::task::task::TaskControlBlock\"),\n             (\"proc.fork\", \"os::task::processor::Processor\"),\n             (\"proc.exec\", \"os::task::processor::Processor\"),\n-            (\"vm.unmap\", \"os::task::processor::Processor\"),\n+            (\"vm.unmap\", \"os::mm::memory_set::MemorySet\"),\n             (\"phys.alloc\", \"os::mm::frame_allocator::StackFrameAllocator\"),\n             (\"phys.free\", \"os::mm::frame_allocator::StackFrameAllocator\"),\n             (\"vm.map\", \"os::mm::memory_set::MemorySet\"),\n@@ -189,6 +258,28 @@ def test_ucore_patch_and_manifest_supply_exact_semantics():\n     assert manifest.absent[\"log.commit\"].why == \"feature\"\n \n \n+def test_ucore_2026a_ch4_patch_observes_allocator_results_and_committed_ptes():\n+    patch = (INTEGRATIONS / 'ucore-2026a-ch4-observation.patch').read_text()\n+    paths = [line.split(' b/', 1)[1] for line in patch.splitlines() if line.startswith('diff --git ')]\n+    assert set(paths) == {'os/kalloc.c', 'os/vm.c', 'os/nftrace.c', 'os/nftrace.h'}\n+    assert 'NFT_KALLOC = 1' in patch and 'NFT_KFREE = 5' in patch and 'NFT_ALLOCATOR_STATE = 6' in patch\n+    assert 'nftrace_page_alloc((uint64)l, 1, nf_free_pages, nf_used_pages)' in patch\n+    assert 'nftrace_page_free((uint64)pa, 1, nf_free_pages, nf_used_pages)' in patch\n+    assert 'nftrace_allocator_state(nf_free_pages, nf_used_pages)' in patch\n+    assert patch.index('*pte = PA2PTE(pa) | perm | PTE_V;') < patch.index('nodefusion_pagetable_map(a, pa, perm | PTE_V);')\n+    assert 'const struct nftrace_record record = { type, { a0, a1, a2, a3 } }' in patch\n+\n+\n+def test_ucore_2026a_ch4_page_table_experiment_owns_and_reclaims_its_pages():\n+    patch = (INTEGRATIONS / 'ucore-2026a-ch4-pagetable-experiment.patch').read_text()\n+    assert patch.index('uvmunmap(table, va, 1, 0)') < patch.index('uvmunmap(table, va, 1, 1)')\n+    assert patch.index('uvmunmap(table, TRAMPOLINE, 1, 0)') < patch.index('freewalk(table)')\n+    assert 'walkaddr(table, va + 0x123) != (uint64)frame' in patch\n+    assert 'useraddr(table, va + 0x123) != (uint64)frame + 0x123' in patch\n+    assert 'frame[0x123] != 0x5a' in patch\n+    assert patch.index('kvm_init();') < patch.index('nodefusion_pagetable_experiment();', patch.index('kvm_init();'))\n+\n+\n def test_ucore_showcase_fixes_remain_separate_from_observation_patch():\n     observation = (INTEGRATIONS / \"ucore-nodefusion.patch\").read_text()\n     kernel_fix = (INTEGRATIONS / \"ucore-ch8-showcase.patch\").read_text()\n@@ -204,6 +295,13 @@ def test_ucore_manifest_covers_all_eight_measured_shapes():\n     manifest = load(ROOT / \"manifests\" / \"ucore.toml\")\n     assert manifest.detect == {\"all_symbol\": [\"digits\", \"SBI_SHUTDOWN\"]}\n     assert manifest.derive_feature_absence_from_symbols is True\n+    process = manifest.entity(\"process\")\n+    assert process.liveness[\"skip_when\"] == {\n+        \"field\": \"state\", \"one_of\": [\"UNUSED\", \"P_UNUSED\"]}\n+    fields = {field.name: field for field in process.fields}\n+    assert fields[\"context\"].role == \"sched_context\"\n+    assert fields[\"trapframe\"].role == \"trap_context\"\n+    assert all(fields[name].optional for name in (\"context\", \"trapframe\", \"kstack\"))\n     parent = next(field for field in manifest.entity(\"process\").relations\n                   if field.name == \"parent\")\n     assert parent.optional is True\n"
      },
      {
        "path": "nodefusion/tests/test_resolve.py",
        "sha256": "b14f432eb380c5514b73431978b01b0d715ed9a49f92deb547358fb35dd4d8ec",
        "patch": "diff --git a/nodefusion/tests/test_resolve.py b/nodefusion/tests/test_resolve.py\nindex 0eeed28..585b0a8 100644\n--- a/nodefusion/tests/test_resolve.py\n+++ b/nodefusion/tests/test_resolve.py\n@@ -97,6 +97,30 @@ def test_missing_field_is_absent_not_a_failure():\n     assert resolve_path(dw, tcb, \"inner.priority\").state == ABSENT\n \n \n+def test_rcore_priority_spellings_resolve_without_kernel_branches():\n+    from nodefusion.model.manifest import builtin_dir, load\n+    from nodefusion.model.snapshot import Entity, Field\n+\n+    manifest = load(builtin_dir() / \"rcore.toml\")\n+    specs = [field for entity in manifest.entities if entity.name == \"task\"\n+             for field in entity.fields if field.role == \"priority\"]\n+    assert {field.path for field in specs} == {\"inner.prio\", \"inner.priority\"}\n+    assert all(field.optional for field in specs)\n+    for spelling in (\"prio\", \"priority\", None):\n+        dw, tcb = chain()\n+        if spelling:\n+            dw._s[6].fields[spelling] = 136\n+        fields = {}\n+        for spec in specs:\n+            resolved = resolve_path(dw, tcb, spec.path)\n+            fields[spec.name] = Field(spec.name, resolved.state,\n+                                      value=16 if resolved.state == PRESENT else None,\n+                                      role=spec.role)\n+        entity = Entity(\"task\", 0x1000, fields=fields)\n+        assert entity.role(\"priority\") == (16 if spelling else None)\n+        assert sum(field.ok for field in fields.values()) == (1 if spelling else 0)\n+\n+\n def test_missing_field_names_the_payload_type_not_just_the_wrapper():\n     dw, tcb = chain()\n     why = resolve_path(dw, tcb, \"inner.priority\").reason or \"\"\n"
      },
      {
        "path": "nodefusion/host/assets/app.css",
        "sha256": "4a6f97f6046f1658f683e28107b5e524cf64507c57e7ad76035a7e8d745740eb",
        "patch": "diff --git a/nodefusion/host/assets/app.css b/nodefusion/host/assets/app.css\nindex 88f5f82..f2adda9 100644\n--- a/nodefusion/host/assets/app.css\n+++ b/nodefusion/host/assets/app.css\n@@ -415,7 +415,7 @@ tr.sel td { background: color-mix(in oklch, var(--accent) 12%, var(--bg)); }\n .detail-empty-icon { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 6px; color: var(--accent); font-size: 21px; }\n .detail-empty h2 { color: var(--fg); font-size: 14px; margin: 16px 0 5px; }\n .detail-empty p { max-width: 28ch; margin: 0; line-height: 1.55; }\n-.trace-controls { display: flex; gap: 8px; margin: 0 0 16px; }\n+.trace-controls { display: flex; gap: 8px; margin: 0 0 16px; position: sticky; top: -22px; z-index: 2; background: var(--bg); padding-block: 8px; border-bottom: 1px solid var(--line); }\n .trace-controls input, .trace-controls select { height: 34px; min-width: 150px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 5px; background: var(--bg2); color: var(--fg); }\n .trace-controls input { flex: 1; min-width: 220px; }\n .trace-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; min-height: 420px; }\n@@ -460,8 +460,8 @@ tr.sel td { background: color-mix(in oklch, var(--accent) 12%, var(--bg)); }\n   .right { width: 100%; max-height: 340px; border-left: 0; border-top: 1px solid var(--line); padding: 14px; }\n   .main.detail-collapsed .right { display: none; }\n   #evscroll { height: 54vh; }\n-  .trace-grid { grid-template-columns: 1fr; }\n-  .function-tree, .function-sequence { max-height: 42vh; }\n+  .trace-grid { grid-template-columns: 1fr; min-height: 0; align-items: start; }\n+  .function-tree, .function-sequence { min-height: 0; max-height: 42vh; }\n }\n @media (max-width: 560px) {\n   .brand-kicker, .shortcut-hint { display: none; }\n"
      },
      {
        "path": "nodefusion/host/assets/app.js",
        "sha256": "c253b16d88ddc73d1c78ec3729800800ad255b923712893dbe12f66faab2aca2",
        "patch": "diff --git a/nodefusion/host/assets/app.js b/nodefusion/host/assets/app.js\nindex 7f1256e..a87dcd9 100644\n--- a/nodefusion/host/assets/app.js\n+++ b/nodefusion/host/assets/app.js\n@@ -28,6 +28,7 @@ const NF = {\n   selPage: null,\n   selPid: null,\n   filters: { text: '', kind: '', res: '', pid: '', cpu: '', group: '', from: '', to: '' },\n+  functionFilters: {text: '', cpu: '', limit: '80', grouping: null},\n };\n \n /* ------------------------------------------------------------------ 工具 */\n@@ -1641,6 +1642,10 @@ function renderFunctions() {\n   if (returns.nested_entries) grouping.appendChild(new Option('观测调用链', 'stack'));\n   if (returns.nested_entries) grouping.value = 'stack';\n   else if (!entries.some((e) => e.caller)) grouping.value = 'namespace';\n+  search.value = NF.functionFilters.text;\n+  cpu.value = NF.functionFilters.cpu;\n+  limit.value = NF.functionFilters.limit;\n+  if ([...grouping.options].some(option => option.value === NF.functionFilters.grouping)) grouping.value = NF.functionFilters.grouping;\n   controls.appendChild(search); controls.appendChild(cpu); controls.appendChild(grouping);\n   controls.appendChild(limit); p.appendChild(controls);\n \n@@ -1658,6 +1663,7 @@ function renderFunctions() {\n   grid.appendChild(treePanel); grid.appendChild(sequencePanel); p.appendChild(grid);\n \n   function paint() {\n+    NF.functionFilters = {text: search.value, cpu: cpu.value, limit: limit.value, grouping: grouping.value};\n     const q = search.value.trim().toLowerCase();\n     const selectedCpu = cpu.value;\n     const filtered = entries.filter((e) => (!q || e.fn.toLowerCase().includes(q) || e.caller.toLowerCase().includes(q) || (e.path || []).some((name) => name.toLowerCase().includes(q))) && (selectedCpu === '' || String(e.cpu) === selectedCpu));\n"
      },
      {
        "path": "nodefusion/tests/test_phys_alloc_gate.py",
        "sha256": "a1b68458d8268d052082ad92b80f86753c46423eec7c86c3bdd6019e23b8186a",
        "patch": "diff --git a/nodefusion/tests/test_phys_alloc_gate.py b/nodefusion/tests/test_phys_alloc_gate.py\nindex 3cb406d..ec2bc43 100644\n--- a/nodefusion/tests/test_phys_alloc_gate.py\n+++ b/nodefusion/tests/test_phys_alloc_gate.py\n@@ -128,6 +128,51 @@ def test_sched_semantic_record_fills_both_endpoints_without_snapshots():\n     assert event.detail[\"from_proc\"] == \"kernel-task#41\"\n     assert event.detail[\"to_task_id\"] == 42\n     assert event.detail[\"to_pid\"] == 7\n+    assert event.pid == 7\n+    assert a._attribute(0, -1, {}) == (7, \"task#7\")\n+\n+\n+def test_semantic_switch_attribution_survives_missing_and_reused_snapshot_slots():\n+    a = object.__new__(A.Analysis)\n+    a._pid_by_slot_at = lambda *_: (99, \"stale slot\")\n+    slots = {0: 3, 1: 4}\n+    assert a._attribute(0, 0, slots) == (99, \"stale slot\")\n+    a._nftrace_event(NfTraceRec(insn=100, cpu=0, type=a.NFT_SCHED_SWITCH,\n+                              a=(10, 20, a.NFT_NO_TASK, 7)), -1, slots)\n+    assert a._attribute(0, -1, {}) == (7, \"task#7\")\n+    assert a._attribute(0, 200, slots) == (7, \"task#7\")\n+    assert a._attribute(1, 0, slots) == (99, \"stale slot\")\n+    alloc = a._nftrace_event(NfTraceRec(insn=101, cpu=0, type=a.NFT_KALLOC,\n+                                      a=(0x81234000, 1, 9, 1)), -1, {})\n+    assert alloc.pid == 7\n+\n+\n+def test_semantic_switches_track_each_cpu_and_distinguish_pid_zero_from_idle():\n+    a = object.__new__(A.Analysis)\n+    for cpu, pid in [(0, 0), (1, 7)]:\n+        a._nftrace_event(NfTraceRec(insn=100 + cpu, cpu=cpu, type=a.NFT_SCHED_SWITCH,\n+                                  a=(10 + cpu, 20 + cpu, a.NFT_NO_TASK, pid)), -1, {})\n+    assert a._attribute(0, -1, {}) == (0, \"task#0\")\n+    assert a._attribute(1, -1, {}) == (7, \"task#7\")\n+    a._nftrace_event(NfTraceRec(insn=102, cpu=0, type=a.NFT_SCHED_SWITCH,\n+                              a=(20, 10, 0, a.NFT_NO_TASK)), -1, {})\n+    assert a._attribute(0, -1, {}) == (None, \"kernel-task#10\")\n+    assert a._attribute(1, -1, {}) == (7, \"task#7\")\n+\n+\n+def test_rebuilding_events_resets_semantic_ownership_without_using_future_switches():\n+    a = object.__new__(A.Analysis)\n+    a.ncpu = 1\n+    a.states = []\n+    a.events = []\n+    a._semantic_current = {0: (99, \"previous analysis\")}\n+    a.trace = NS(discons=[], watch_hits=[], nftrace=[\n+        NfTraceRec(insn=1, cpu=0, type=a.NFT_KALLOC, a=(0x81234000, 1, 9, 1)),\n+        NfTraceRec(insn=2, cpu=0, type=a.NFT_SCHED_SWITCH, a=(10, 20, a.NFT_NO_TASK, 7)),\n+        NfTraceRec(insn=3, cpu=0, type=a.NFT_KALLOC, a=(0x81235000, 1, 8, 2)),\n+    ])\n+    a.build_events()\n+    assert [event.pid for event in a.events] == [None, 7, 7]\n \n \n def test_kfree_semantic_record_has_physical_range():\n"
      },
      {
        "path": "nodefusion/host/callstack.py",
        "sha256": "7a1ce5d70940e2c98792f57543e3df2cbc7b9f96ec5d8c7b280ccf17c78f9bde",
        "patch": "diff --git a/nodefusion/host/callstack.py b/nodefusion/host/callstack.py\nindex edae6fe..6f42814 100644\n--- a/nodefusion/host/callstack.py\n+++ b/nodefusion/host/callstack.py\n@@ -4,7 +4,7 @@ from __future__ import annotations\n \n import heapq\n \n-from ..model.symbols import demangle, demangle_v0\n+from ..model.symbols import display_name\n from . import nftrace\n \n \n@@ -20,6 +20,11 @@ def observed_stacks(events, returns, elf, retained_ids=None):\n     matched = 0\n     nested = 0\n     caller_cache = {}\n+    label_cache = {}\n+    def label(name):\n+        if name not in label_cache:\n+            label_cache[name] = display_name(name)\n+        return label_cache[name]\n     if not returns:\n         return paths, {\"raw\": 0, \"matched\": 0, \"nested_entries\": 0}\n     entries = ((e.insn, 0, e.cpu, e) for e in events\n@@ -49,10 +54,13 @@ def observed_stacks(events, returns, elf, retained_ids=None):\n         parent = frames[-1] if frames else None\n         if obj.return_address not in caller_cache:\n             raw = elf.resolve_pc(obj.return_address)[0] if elf else None\n-            caller_cache[obj.return_address] = (\n-                demangle(raw) or demangle_v0(raw) or raw) if raw else None\n+            caller_cache[obj.return_address] = raw\n         caller = caller_cache[obj.return_address]\n-        if (parent is None or parent.entry_name != caller or\n+        # Raw symbols distinguish Rust instantiations with the same display\n+        # name. Older producers may already supply a decoded entry name.\n+        caller_matches = (parent is not None and caller is not None and\n+                          (parent.entry_name == caller or parent.entry_name == label(caller)))\n+        if (not caller_matches or\n                 parent.address_space != obj.address_space or\n                 obj.stack_pointer > parent.stack_pointer):\n             frames.clear()\n@@ -60,7 +68,7 @@ def observed_stacks(events, returns, elf, retained_ids=None):\n             frames.clear()\n         frames.append(obj)\n         if retained_ids is None or id(obj) in retained_ids:\n-            paths[id(obj)] = tuple(f.entry_name or f.func or f.kind for f in frames[-16:])\n+            paths[id(obj)] = tuple(label(f.entry_name or f.func or f.kind) for f in frames[-16:])\n         if len(frames) > 1:\n             nested += 1\n     return paths, {\"raw\": len(returns), \"matched\": matched,\n"
      },
      {
        "path": "nodefusion/model/symbols.py",
        "sha256": "39f23be73d754e52221a4889c0101d50d8d8962ec21f1628d1cc36f07acdecb8",
        "patch": "diff --git a/nodefusion/model/symbols.py b/nodefusion/model/symbols.py\nindex 8bf19dc..7310e65 100644\n--- a/nodefusion/model/symbols.py\n+++ b/nodefusion/model/symbols.py\n@@ -41,6 +41,10 @@ def demangle(sym: str) -> str | None:\n     return _demangle_legacy(sym) or demangle_v0(sym)\n \n \n+def display_name(sym: str) -> str:\n+    return demangle(sym) or demangle_v0(sym, impls=True, generics=True) or sym\n+\n+\n def _demangle_legacy(sym: str) -> str | None:\n     s = _LLVM_SUFFIX.sub(\"\", sym)\n     if not s.startswith(\"_ZN\") or not s.endswith(\"E\"):\n"
      },
      {
        "path": "nodefusion/tests/test_callstack.py",
        "sha256": "78bc55f0ccf1a6dde2836aaa256ca0ce9fc0f9b4c6dcc4b144732460144d901e",
        "patch": "diff --git a/nodefusion/tests/test_callstack.py b/nodefusion/tests/test_callstack.py\nindex 4e2b5f5..9c91f75 100644\n--- a/nodefusion/tests/test_callstack.py\n+++ b/nodefusion/tests/test_callstack.py\n@@ -55,3 +55,27 @@ def test_unretained_entries_still_shape_retained_stack():\n                                     Elf(), retained_ids={id(child)})\n     assert paths == {id(child): (\"root\", \"child\")}\n     assert counts[\"matched\"] == 1\n+\n+\n+def test_rust_raw_symbols_match_and_display_as_function_names():\n+    raw_root = '_ZN2os4root17h1234567890abcdefE'\n+    raw_child = '_ZN2os5child17h1234567890abcdefE'\n+    root = entry(1, raw_root, 0x99, 100)\n+    child = entry(2, raw_child, 0x10, 80)\n+    elf = type('RustElf', (), {'resolve_pc': lambda self, pc: (raw_root, 0) if pc == 0x10 else (None, 0)})()\n+    paths, counts = observed_stacks([root, child], [ret(3, 0x10, 80)], elf)\n+    assert paths[id(child)] == ('os::root', 'os::child')\n+    assert counts['nested_entries'] == 1\n+    assert root.entry_name == raw_root\n+    assert child.entry_name == raw_child\n+\n+\n+def test_decoded_names_do_not_merge_distinct_raw_rust_symbols():\n+    raw_root = '_ZN2os4root17h1234567890abcdefE'\n+    other_root = '_ZN2os4root17hfedcba0987654321E'\n+    root = entry(1, raw_root, 0x99, 100)\n+    child = entry(2, 'child', 0x10, 80)\n+    elf = type('RustElf', (), {'resolve_pc': lambda self, pc: (other_root, 0) if pc == 0x10 else (None, 0)})()\n+    paths, counts = observed_stacks([root, child], [ret(3, 0x10, 80)], elf)\n+    assert paths[id(child)] == ('child',)\n+    assert counts['nested_entries'] == 0\n"
      },
      {
        "path": "nodefusion/tests/test_event_kinds.py",
        "sha256": "67eee9315e36a7484d1141590701ad8e4e23c4be212b1ac9c0c4949983beef52",
        "patch": "diff --git a/nodefusion/tests/test_event_kinds.py b/nodefusion/tests/test_event_kinds.py\nindex c681f50..0117daf 100644\n--- a/nodefusion/tests/test_event_kinds.py\n+++ b/nodefusion/tests/test_event_kinds.py\n@@ -104,6 +104,23 @@ def test_a_manifest_without_the_section_still_loads(tmp_path):\n     assert _load(tmp_path, \"\").events == {}\n \n \n+def test_ucore_shutdown_is_not_a_panic_or_an_argument_bearing_call():\n+    man = M.load(DRAFTS / \"ucore.toml\")\n+    event = man.events[\"shutdown\"]\n+    assert event.kind == \"kernel.shutdown\"\n+    assert event.args == []\n+    watches = [w for w in man.watches if \"shutdown\" in w.match.get(\"fn\", [])]\n+    assert watches and all(w.args == 0 for w in watches)\n+    for name, symbol in [(\"xv6\", \"panic\"), (\"rcore\", \"os::lang_items::panic\")]:\n+        assert M.load(DRAFTS / f\"{name}.toml\").events[symbol].kind == \"kernel.panic\"\n+\n+\n+def test_new_manifest_does_not_relabel_a_historical_recording():\n+    events = M.load(DRAFTS / \"ucore.toml\").events\n+    assert event_shape(\"shutdown\", {\"kind\": \"kernel.panic\", \"params\": [\"reason\"]},\n+                       kernel_kind=\"ucore\", events=events)[0] == \"kernel.panic\"\n+\n+\n \n def _shape(name, *, kind=\"\", resource=\"kernel\", params=(), kernel):\n     entry = {\"resource\": resource, \"params\": list(params)}\n"
      },
      {
        "path": "nodefusion/tests/test_no_build.py",
        "sha256": "4bc6168bfe29297a6cb93ec91824dcbb9764c9ae8551f3d71446cd97e619d4ad",
        "patch": "diff --git a/nodefusion/tests/test_no_build.py b/nodefusion/tests/test_no_build.py\nindex 5fa5c28..d5a3c25 100644\n--- a/nodefusion/tests/test_no_build.py\n+++ b/nodefusion/tests/test_no_build.py\n@@ -48,7 +48,7 @@ def test_it_records_without_building(tmp_path):\n     assert \"跳过构建\" in out\n \n \n-def test_it_says_out_loud_that_nothing_was_built(tmp_path):\n+def test_warning_identifies_the_existing_build_and_checksum_record(tmp_path):\n     r = _recorder(tmp_path, _tree(tmp_path))\n     r.build_kernel()\n     assert len(r.warnings) == 1\n@@ -56,7 +56,8 @@ def test_it_says_out_loud_that_nothing_was_built(tmp_path):\n     assert \"--no-build\" in w\n     assert \"kernel.elf\" in w\n     assert \"UTC\" in w\n-    assert \"没人验证过\" in w\n+    assert \"这次没有编译\" in w\n+    assert \"kernel_elf_identity\" in w\n \n \n def test_a_missing_elf_is_fatal(tmp_path):\n"
      },
      {
        "path": "nodefusion/tests/test_record_icount.py",
        "sha256": "f76528d2c5a7fc18938d0afc88b5ee9e9626d63801bccc6ced57c1e4b2c823a0",
        "patch": "diff --git a/nodefusion/tests/test_record_icount.py b/nodefusion/tests/test_record_icount.py\nindex 8e8d223..25ae2a0 100644\n--- a/nodefusion/tests/test_record_icount.py\n+++ b/nodefusion/tests/test_record_icount.py\n@@ -1,9 +1,46 @@\n from pathlib import Path\n from types import SimpleNamespace\n \n-from nodefusion.host.record import (Recorder, RunConfig, _calibration_watchlist,\n+import pytest\n+\n+from nodefusion.host.record import (NO_PROGRAM, Recorder, RunConfig, _calibration_watchlist,\n                                     _program_start_from_trace,\n                                     _snapshot_focus_start)\n+\n+\n+@pytest.mark.parametrize('capability,program,expected', [\n+    (True, NO_PROGRAM, 'headless'),\n+    (True, '', 'headless'),\n+    (True, 'usertest', 'shell'),\n+    (False, 'usertest', 'headless'),\n+])\n+def test_driver_uses_workload_mode_not_only_kernel_capability(monkeypatch, tmp_path,\n+                                                             capability, program, expected):\n+    class Reader:\n+        def __init__(self, *args):\n+            pass\n+\n+        def start(self):\n+            pass\n+\n+        def join(self, **kwargs):\n+            pass\n+\n+        def text(self):\n+            return ''\n+\n+    monkeypatch.setattr('nodefusion.host.record._ConsoleReader', Reader)\n+    recorder = Recorder.__new__(Recorder)\n+    recorder.cfg = SimpleNamespace(program=program)\n+    recorder.profile = SimpleNamespace(interactive=capability)\n+    process = SimpleNamespace(stdout=None, stderr=None, poll=lambda: 0)\n+    recorder.sh = SimpleNamespace(popen=lambda cmd: process)\n+    recorder._qemu_cmd = lambda *args: 'qemu'\n+    recorder._drive_headless = lambda *args: 'headless'\n+    recorder._drive_shell = lambda *args: 'shell'\n+    outcome, _, _ = recorder._drive(tmp_path / 'trace.nfb', None, 100,\n+                                    tmp_path / 'console.log', tmp_path / 'qemu.log')\n+    assert outcome == expected\n from nodefusion.host.watchlist import NFTRACE_COMMIT, WatchEntry, WatchList\n \n \n"
      },
      {
        "path": "nodefusion/tests/test_regenerate_artifact.py",
        "sha256": "0098a8fc52b7cd42889036de78ca54cec00064396d701eadd224b3febd3c043b",
        "patch": "diff --git a/nodefusion/tests/test_regenerate_artifact.py b/nodefusion/tests/test_regenerate_artifact.py\nindex 566d3f5..12e6f80 100644\n--- a/nodefusion/tests/test_regenerate_artifact.py\n+++ b/nodefusion/tests/test_regenerate_artifact.py\n@@ -17,6 +17,12 @@ EXPECTED_RUNS = {\n     *{f\"rcore-ch{n}\" for n in range(1, 9)},\n     *{f\"ucore-ch{n}\" for n in range(1, 9)},\n }\n+COURSE_RUNS = {\"rcore-2026A-ch3-observed\", \"ucore-2026A-ch3-batch\",\n+               \"rcore-2026A-ch1-verified\", \"ucore-2026A-ch1-verified\",\n+               \"rcore-2026A-ch2-reference\", \"ucore-2026A-ch2-reference\",\n+               \"ucore-2026A-ch2-stack-fixed\", \"ucore-2026A-ch2-faults\",\n+               \"rcore-2026A-ch4-observed\", \"ucore-2026A-ch4-observed\",\n+               \"ucore-2026A-ch4-pagetable\"}\n \n \n def report_sidecars():\n@@ -43,14 +49,31 @@ def record_from(path):\n \n def test_all_chapter_and_app_artifacts_are_present():\n     entries = report_sidecars()\n-    assert len(entries) == 24\n+    assert len(entries) == len(EXPECTED_RUNS) + len(COURSE_RUNS)\n     runs = {record_from(path)[\"run\"] for path, _ in entries}\n-    assert len(runs) == 24\n+    assert len(runs) == len(entries)\n+    assert COURSE_RUNS <= runs\n     normalized = {name if not name.startswith((\"rcore-\", \"ucore-\"))\n                   else \"-\".join(name.split(\"-\")[:2]) for name in runs}\n     assert EXPECTED_RUNS <= normalized\n \n \n+def test_course_artifacts_keep_commands_source_identity_and_raw_counts():\n+    records = [record for path, _ in report_sidecars()\n+               if (record := json.loads(path.read_text())).get(\"schema\") == \"nodefusion.education-recording/1\"]\n+    assert {record[\"run\"] for record in records} == COURSE_RUNS\n+    for record in records:\n+        assert record[\"schema\"] == \"nodefusion.education-recording/1\"\n+        expected = {\"rcore-2026A-ch1-verified\": \"qemu_exited\",\n+                    \"ucore-2026A-ch2-reference\": \"timeout\"}.get(record[\"run\"], \"completed\")\n+        assert record[\"outcome\"] == expected and record[\"trace_complete\"]\n+        assert len(record[\"source\"][\"kernel_commit\"]) == 40\n+        assert len(record[\"source\"][\"plugin_sha256\"]) == 64\n+        assert \"--watch-all\" in record[\"record_command\"]\n+        assert \"--function-returns\" in record[\"record_command\"]\n+        assert record[\"observations\"][\"raw_events\"] == record[\"report\"][\"event_selection\"][\"raw\"]\n+\n+\n def test_tracecomplete_reuses_its_recording_folder():\n     folder = ARTIFACTS / \"arceos/apps/tracecomplete\"\n     manifest = json.loads((folder / \"manifest.json\").read_text(encoding=\"utf-8\"))\n"
      },
      {
        "path": "nodefusion/tests/test_snapshot.py",
        "sha256": "a1e5383c15e3c3c18222f6e07991712b1f22dfebd3ec67178eb58e4710a921ea",
        "patch": "diff --git a/nodefusion/tests/test_snapshot.py b/nodefusion/tests/test_snapshot.py\nindex f6ee7e9..3f17d86 100644\n--- a/nodefusion/tests/test_snapshot.py\n+++ b/nodefusion/tests/test_snapshot.py\n@@ -235,6 +235,19 @@ def test_liveness_only_skips_on_an_exact_match():\n     assert is_live(E(2149793408), spec)\n \n \n+def test_liveness_supports_declared_state_names_across_kernel_versions():\n+    from nodefusion.model.snapshot import Entity\n+\n+    spec = {\"skip_when\": {\"field\": \"state\", \"one_of\": [\"UNUSED\", \"P_UNUSED\"]}}\n+    for value, live in ((\"UNUSED\", False), (\"P_UNUSED\", False),\n+                        (\"RUNNABLE\", True), (\"P_RUNNING\", True), (0, True)):\n+        entity = Entity(\"process\", 0, fields={\"state\": Field(\"state\", PRESENT, value)})\n+        assert is_live(entity, spec) is live\n+    for state in (ABSENT, EMPTY, UNDECODABLE):\n+        entity = Entity(\"process\", 0, fields={\"state\": Field(\"state\", state)})\n+        assert is_live(entity, spec)\n+\n+\n @needs_elf\n def test_entity_count_comes_from_dwarf_not_a_constant(xv6):\n     dw, m, res, syms = xv6\n"
      },
      {
        "path": "nodefusion/tests/test_units.py",
        "sha256": "9bf99f5d3080ed458a97e736e30b84025eb99c1e43e693d9aa33f519896106b3",
        "patch": "diff --git a/nodefusion/tests/test_units.py b/nodefusion/tests/test_units.py\nindex f10392d..8d86a2d 100644\n--- a/nodefusion/tests/test_units.py\n+++ b/nodefusion/tests/test_units.py\n@@ -40,6 +40,49 @@ def test_rcore_booted_needs_the_kernel_marker(console, booted):\n     assert K.by_kind('rcore').booted(console) is booted\n \n \n+@pytest.mark.parametrize(\"marker\", [\"ALL DONE\", \"all app are over!\", \"all apps over\"])\n+def test_ucore_batch_completion(marker):\n+    assert K.by_kind('ucore').classify(f\"[PANIC 5] os/loader.c:14: {marker}\\n\") == 'completed'\n+\n+\n+@pytest.mark.parametrize(\"console, booted\", [\n+    (\"\\x1b[34m[INFO 0]start scheduler!\\x1b[0m\\n\", True),\n+    (\"C user shell\\n>> \", True),\n+    (\"OpenSBI v1.7\\n\", False),\n+])\n+def test_ucore_shell_and_scheduler_boot_markers(console, booted):\n+    assert K.by_kind('ucore').booted(console) is booted\n+\n+\n+def test_ucore_batch_without_completion_is_not_complete():\n+    assert K.by_kind('ucore').classify(\"start scheduler!\\nTest write A OK!\\n\") == 'qemu_exited'\n+\n+\n+@pytest.mark.parametrize('diagnostic', ['IllegalInstruction in application, core dumped.',\n+                                      '[PANIC 0] user assertion failed'])\n+def test_ucore_user_diagnostics_are_not_kernel_stop_markers(diagnostic):\n+    profile = K.by_kind('ucore')\n+    assert profile.booted('hello wrold!\\n')\n+    assert profile.classify(diagnostic) == 'qemu_exited'\n+    assert profile.classify(diagnostic + '\\nALL DONE\\n') == 'completed'\n+\n+\n+def test_ucore_headless_keeps_recording_after_user_fault(monkeypatch):\n+    from types import SimpleNamespace\n+    from nodefusion.host.record import Recorder\n+\n+    reader = SimpleNamespace(eof=False)\n+    consoles = iter(['hello wrold!\\nIllegalInstruction in application, core dumped.\\n',\n+                     'hello wrold!\\nIllegalInstruction in application, core dumped.\\nALL DONE\\n'])\n+    reader.text = lambda: next(consoles)\n+    monkeypatch.setattr('nodefusion.host.record.time.sleep', lambda seconds: None)\n+    recorder = Recorder.__new__(Recorder)\n+    recorder.cfg = SimpleNamespace(timeout=10, boot_timeout=5)\n+    recorder.profile = K.by_kind('ucore')\n+    process = SimpleNamespace(poll=lambda: None)\n+    assert recorder._drive_headless(process, reader) == 'completed'\n+\n+\n # ----------------------------------------------------------------- xv6 classify\n \n def test_xv6_panic():\n"
      }
    ],
    "deployed_source_files": {
      "nodefusion/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      "nodefusion/_vendor/elftools/__init__.py": "9385fdca231d9ad83e27a59aa1bc59b252efad8c24cf08c9f39e0b543f675746",
      "nodefusion/_vendor/elftools/common/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      "nodefusion/_vendor/elftools/common/construct_utils.py": "d1de2461e60636b52cfc446d00f7a31f152f2ccc43c1a53bc2ba82187ca1e460",
      "nodefusion/_vendor/elftools/common/exceptions.py": "bedd7aa994281100ba13a40dfaad8b03eec17a725a1c4cb23893572d99bbd1ef",
      "nodefusion/_vendor/elftools/common/utils.py": "36a5f64bfb3aab0dba30d9fa05aa1b3f9fbbf86f297eee27c7c12652f5ac308b",
      "nodefusion/_vendor/elftools/construct/__init__.py": "15104eb011a640e4268a9b9221d07201a0360ff0b1c8b49e252ef41fdfbb35de",
      "nodefusion/_vendor/elftools/construct/adapters.py": "5745745b25eb849174ee5c3179b9867b03e0471633e9eac8276aa439fe4c8841",
      "nodefusion/_vendor/elftools/construct/core.py": "df9719893de6454f5bc4c912afc892bcc278ef45ac1553bf4a409278ba347c9d",
      "nodefusion/_vendor/elftools/construct/debug.py": "491486779e464e0f4a59cfd429d8e93c577a0f0d9b969847e69400a3c86acb1c",
      "nodefusion/_vendor/elftools/construct/lib/__init__.py": "973420ec247c18b9e5488743bb099ae82f19c7287ef31dcb529a7283b6e42eb3",
      "nodefusion/_vendor/elftools/construct/lib/binary.py": "f18e4161a11bc95732bd01c577cbe98373081afd5b4112b02fec51a0e1df2e11",
      "nodefusion/_vendor/elftools/construct/lib/bitstream.py": "ee8081769bed1d00a086399c8749a847c1a48b8d08637506bf7d1229b6e1808a",
      "nodefusion/_vendor/elftools/construct/lib/container.py": "0385a420febf5bac714153ceaadd192ff9d09862bc7e17c203bf759aa18b2bb4",
      "nodefusion/_vendor/elftools/construct/lib/hex.py": "55f82dc36f273347c08e9e469fd497368241453b7a63e69e167ad6b316e5e2c7",
      "nodefusion/_vendor/elftools/construct/macros.py": "0244e84cf4f598ac8da7c3d8f1f09b06112a508e71fb8d381b377f1c0472a4e3",
      "nodefusion/_vendor/elftools/dwarf/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      "nodefusion/_vendor/elftools/dwarf/abbrevtable.py": "d7d338a6eddd4c1fe02c66d9c2b1c202c36ebcfda28f438a0ac0546dc5a63eb1",
      "nodefusion/_vendor/elftools/dwarf/aranges.py": "399d17d0e3cc18527337d60c1ffc0cfcfc8d5ddcf86af1ef6c359453538344e3",
      "nodefusion/_vendor/elftools/dwarf/callframe.py": "6c77dd3c1b482434d8d86f35922f0c88b1a71c1c19055fa512224d44876a4b5a",
      "nodefusion/_vendor/elftools/dwarf/compileunit.py": "2681263026c2bdd3fd9033e60230024e6b25ca90280df91c3ae0b0fe97bdb9d3",
      "nodefusion/_vendor/elftools/dwarf/constants.py": "30377a1636c5ac41b7a09f7c79c6bae67b49696c4e9b9d904a1a0acaba7dabdb",
      "nodefusion/_vendor/elftools/dwarf/datatype_cpp.py": "b3df1fc9ef56f941e0b38a9ad5da05a3c3821dd1cdc4b440c7c1934bee00a770",
      "nodefusion/_vendor/elftools/dwarf/descriptions.py": "6692ed493344018f4d96fdb70e9b04bdb3ec1428df0448f17fc8ffab2a205851",
      "nodefusion/_vendor/elftools/dwarf/die.py": "b653e8091a49f6926a955d8c05f26c36798ece3d902c00d2b5da10af637bfce7",
      "nodefusion/_vendor/elftools/dwarf/dwarf_expr.py": "db6d4cb9f3f1ee7e85ac1f9286831093d1b65f8c472fe0f9331a7aa164782bcb",
      "nodefusion/_vendor/elftools/dwarf/dwarf_util.py": "2e1cc3030a3cc669e0832e3cb5d4b1e3c82e22ff5a1164e6a878931f8531ce0d",
      "nodefusion/_vendor/elftools/dwarf/dwarfinfo.py": "3cfff046c35f7b063ba4288f1d9bb5167be4f3fdda0af756a299d832d660b75f",
      "nodefusion/_vendor/elftools/dwarf/enums.py": "10d18e4acabc383b8e8527cf4c011874dc9459c3bc30bd65b9212885a146bd7a",
      "nodefusion/_vendor/elftools/dwarf/lineprogram.py": "d9472d85b8c62fe56a7d6371d8cdb8af6268416970bdf909898ccb2606fa850c",
      "nodefusion/_vendor/elftools/dwarf/locationlists.py": "5167c3fb6208e3bafe0a52fc4d48eb164dc84dbd4980643acec19be26639a194",
      "nodefusion/_vendor/elftools/dwarf/namelut.py": "4b62eb965afd3e099835eb8bb9112f2d1ec89cb42adc6b55c1f113b6068d17b3",
      "nodefusion/_vendor/elftools/dwarf/ranges.py": "da3856ee646cf5b305751fa73a2d5fd9b0a21413377ca11cf93ce20e7040386e",
      "nodefusion/_vendor/elftools/dwarf/structs.py": "dfb1d6d755bcc7cf9a0363620e470c5b4a74bf7499a32d82f261652ffe71bef8",
      "nodefusion/_vendor/elftools/dwarf/typeunit.py": "c1bae01e11001941ebd0a10b72d569b4a0800600b3006b20a0b37f88536d1bc9",
      "nodefusion/_vendor/elftools/ehabi/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      "nodefusion/_vendor/elftools/ehabi/constants.py": "a386df95ebe53338db1cdfe498a06acf8e976007b5fab5c4eed2b8904932caa8",
      "nodefusion/_vendor/elftools/ehabi/decoder.py": "3380c750ed972e33510a42a1d4de725f744cfc156e44a5d50ae199239cacb10e",
      "nodefusion/_vendor/elftools/ehabi/ehabiinfo.py": "e442ea16826888c9903893db8ccd9cb47f9f634476c1837812c84b6ce4be1b4c",
      "nodefusion/_vendor/elftools/ehabi/structs.py": "5ebdda74af71d7637d41eb0510403d8776d3b7ea70f715edc58aabc836aaae87",
      "nodefusion/_vendor/elftools/elf/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      "nodefusion/_vendor/elftools/elf/constants.py": "d805c36820815a58fce8593206a5527c46009756b9397298d086679b6a9d9f23",
      "nodefusion/_vendor/elftools/elf/descriptions.py": "02771b6d1d4eb829b7334e417f580f78eb253c14f895c427c99b870537d363ef",
      "nodefusion/_vendor/elftools/elf/dynamic.py": "13c2621f118f30c6a8b6a0d999bdf8a7d082f0c2b7713eb4203d7b877082f0f7",
      "nodefusion/_vendor/elftools/elf/elffile.py": "0b8629b86828f0f05dea1200261ffaf1849ae675e52943e88a37e6a5e0b73d51",
      "nodefusion/_vendor/elftools/elf/enums.py": "9beb3eb13c4dfe6e2e75ed5db7a75dbb6da7917ed7ea7ad9c2ab7b697c284256",
      "nodefusion/_vendor/elftools/elf/gnuversions.py": "d22136e3242cf4ff379154b5c830706f3be1d77ee41ffab7efeed57e4876c740",
      "nodefusion/_vendor/elftools/elf/hash.py": "538c9b253f89a4b200eeb9c7d82f9cd0c3ae08146b3295538363ba5fced3627a",
      "nodefusion/_vendor/elftools/elf/notes.py": "17cf2c2a9ec9a0bf8f3415cbaeca42d3ab8f1102556251b290a2814e86f16f63",
      "nodefusion/_vendor/elftools/elf/relocation.py": "b0fd391fe0e293ac7dc5bdad495a8d2e72454442c35291781952fa5016f77b0f",
      "nodefusion/_vendor/elftools/elf/sections.py": "5acbfe427062f3f80cad1d556c4113d60136cbe526636e621a6e820ade5d6ab5",
      "nodefusion/_vendor/elftools/elf/segments.py": "103f945c2c7d67eff713609ea189601e94c0e7122274110c6b20d038a5b8bf74",
      "nodefusion/_vendor/elftools/elf/structs.py": "a0f439925915d7f1a69938673da2cebefd0d10860d60caddc81370ce017d8623",
      "nodefusion/host/__init__.py": "eb4e72c7ca2b3242527b39bd840ced588631e97404cea0e72e3131406cdeec59",
      "nodefusion/host/__main__.py": "13a1a5b340cdcfc1902b62be90e508c7c71886000d5bf087e7854aadf09fb35e",
      "nodefusion/host/analyze.py": "310d26f5c89334c05ee697bb5709a8e8bbce140bcb67f2d3450a09232a3d38b7",
      "nodefusion/host/assets/app.css": "4a6f97f6046f1658f683e28107b5e524cf64507c57e7ad76035a7e8d745740eb",
      "nodefusion/host/assets/app.js": "c253b16d88ddc73d1c78ec3729800800ad255b923712893dbe12f66faab2aca2",
      "nodefusion/host/bundle.py": "cec890de70422513db45c7a592e758c9dba368a638fc2b337d0e3156a607f8e0",
      "nodefusion/host/callstack.py": "7a1ce5d70940e2c98792f57543e3df2cbc7b9f96ec5d8c7b280ccf17c78f9bde",
      "nodefusion/host/cdp.py": "983be57750320be8265405b3fa4c3490288a34bba5b2f0c32820d51895210264",
      "nodefusion/host/cli.py": "6a2f09d5d4ea15299e3f9cbc0f7a2312a322e9c43beb3837d61b2276787af9dd",
      "nodefusion/host/dwarf.py": "158545b640bd312050c9cef773a19f0de839229cb08925a0298a5bb2751b5993",
      "nodefusion/host/elfid.py": "43c44bed9a69fa2b92fc7520342843e71caf0c6a3849d2b23b54e9a22dfdcfa0",
      "nodefusion/host/guest.py": "6871f08f11b9eda17b8a0618e8b8f43a544ddf05a37d7b530daa18d30d4c455a",
      "nodefusion/host/kernels.py": "10dcd1d97aae33b5b389d4106bdf5867468df41a39ce769300448f6d1727b103",
      "nodefusion/host/layout.py": "2f74bd4970af88fa38519c850fbcc494b8a1e4f5ddf7ed87897a442175f0ab82",
      "nodefusion/host/nfelf.py": "5495b1bc5e3406268ba66054e831dfb3fc8857c47b881d95cd995bafa65c5315",
      "nodefusion/host/nftrace.py": "d4fa97efd6527535ab90e4c623e8211bf8b9bf7d189beee47b56b216718c2f76",
      "nodefusion/host/procview.py": "ae1874f57bafa6b694c50aa3c0185671e60fcf0f784d139ee5e807e2f98e9689",
      "nodefusion/host/record.py": "ed6668c5711bcddff0e30a4b82eaf9235e6700746ce186042e39e45219b55428",
      "nodefusion/host/render.py": "46d000d2f40eb934180fba10ec8d8ccb8cc5d1e53e558304fdba941bfcff7dd8",
      "nodefusion/host/resources.py": "019a7be1fc7d86f221f2a67c3a5f7df271d1901500371a02a2113518483fb702",
      "nodefusion/host/shell.py": "08a9b0318ab79c0642d9a0b29683dc65b86c4e529f547530baf4e60b1e67f0af",
      "nodefusion/host/video.py": "1f49810a036f9388ae10153b8691504ed79c3e8b0e19a6bc2818de2ef1fe699d",
      "nodefusion/host/watchlist.py": "1b820dd5d741a118b28959b44d95b886e5fe7518dd5beef3e5561e3cf39822d1",
      "nodefusion/host/wslenv.py": "6b8f5d9e3f71b292e51c980f921dd498315c510d952ef90b24dfbf775b3afa6c",
      "nodefusion/manifests/alien.toml": "da290fe1014168a7e8f44844f30430c3041a14550449c5d51fa06847f23f7aeb",
      "nodefusion/manifests/arceos.toml": "cad48257d081aa1c660d3e7af2f4fbec79bbe232322c71453a9a5b1c9ac7be44",
      "nodefusion/manifests/axvisor.toml": "d6cd2cc9d9662f74a5d25f29e8d02591ae5a205fe18166307ef430edbc7432b3",
      "nodefusion/manifests/rcore.toml": "4a6c4746a885ce7ed68a374516188f02d5955028c94ecfa7e73c5ddf08b73e75",
      "nodefusion/manifests/rel4.toml": "ca43c2847a9ca757542ef3ed3e276dc7130c92b25150c73deb3e2a20faf8c37e",
      "nodefusion/manifests/starry.toml": "8a3ce9735d4c948322962b8c532be334034ad608aac28a041bb58876012dcae8",
      "nodefusion/manifests/ucore.toml": "7ca738a5abfb1c21afdb75b44c2fc0ce81b19d3d2db9aa3d820850b8abf74327",
      "nodefusion/manifests/xv6.toml": "0f501a4441214a2de3b1b50d39665ee23faad6f93024b3b92d30f542bc9b7964",
      "nodefusion/model/__init__.py": "9864ab2acb9890ed2fcbf815f30042fd97e3bd5ce069531f8c76fa2eed60b9d0",
      "nodefusion/model/ctxbuild.py": "552c0d3d87d640e73bfb4c3fc237453c7b84298c721f2d37594c85d1ab5eb86d",
      "nodefusion/model/dwarfsrc.py": "02688f5f8419ba6c8fd64ea4f347929f74c8b70299b632223c5535bab298f265",
      "nodefusion/model/exec.py": "148e68fa1c7054716e4fcb3e7bddb7c0d384ab6a6bfcb00bd15f7a869f6d86ec",
      "nodefusion/model/kinds.py": "0432ef9f134654bc36554ec55afcb9f91c593110cdacf0a58d0ac4d1d05ac569",
      "nodefusion/model/layout.py": "cd2639282b0c4fac684d06309e11e95922213d3d32698f275e65dd060f677fd6",
      "nodefusion/model/manifest.py": "d592aaac9ae308760cda947327c0d7c0e964a26d517740ed66838747e2334a22",
      "nodefusion/model/plan.py": "374fbb225a6717c2c391ac8bdda54aa957638821a45b2865b40a7be9bcc808c6",
      "nodefusion/model/probe.py": "30546d56bbd47ef12567826b49dd910de07e2af8fffc5c4350e04a57f70da5b8",
      "nodefusion/model/readers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      "nodefusion/model/readers/containers.py": "6eec01bd4f30858e1eda2ee7de890a9d93f94eda25e02d0a1bdf3558d31a1610",
      "nodefusion/model/readers/pointers.py": "72f989d643df6bdd477494023aac2da851f2d1f123d5e1e64b7629a0be6eae6b",
      "nodefusion/model/readers/registry.py": "2c35cc0b1f8db857e67c08e9c7976bf47c6ab21faabb4e242d8a0be42f9634ee",
      "nodefusion/model/readers/scalars.py": "a145fe5c4a250cc11fe44d0a4caabae908fbc44994335663955230296f695cbc",
      "nodefusion/model/resolve.py": "0c588760d0ec6494617007b02d786285ba190593935f574f6c53b99ad62ac8c0",
      "nodefusion/model/roles.py": "8d35b0497bd0b2d9abf639d9803fc6b7bd1e1ee5153c0f47ff53a26356dcc8c5",
      "nodefusion/model/rt.py": "3d62e9c6169e89a2593b29ff49919e84a2dda1df1b6fc16d3e54c7cc5d1744af",
      "nodefusion/model/snapshot.py": "e9c4ce76b858a9003e43d9eec363e1b88d4024338c3401b7a47a9871fe5dab7a",
      "nodefusion/model/symbols.py": "39f23be73d754e52221a4889c0101d50d8d8962ec21f1628d1cc36f07acdecb8",
      "nodefusion/model/watchsel.py": "bc3a9d6763950c265efaacce3f0c98194f54808d676b449c5b320b3a90cc7bf1",
      "nodefusion/tests/conftest.py": "2dfa19b096e309beadff0df9a05761d412ec6234e74968854292d7bfecf1b7a5",
      "nodefusion/tests/crosscheck_artifacts.py": "6ee173a31795c3875f93af0a0eaebcb27346c185c24e3f1d32846f5ca89d60a0",
      "nodefusion/tests/fuzz_trace.py": "af6189a6538747d369f982dfb86016f5e48842da0ce73f651b63c0b482b1c37e",
      "nodefusion/tests/kernelelf.py": "9a35d1389243849c6ed16f801a007568eb1304eee3d2cf3bcb8d1e38e12e2aed",
      "nodefusion/tests/stress_pagetable.py": "5db6d3671739ad5d0a3f76908049126185ea000726d0044d4d87ef215f26f737",
      "nodefusion/tests/test_absent_declaration.py": "535d4ace194fc5f923ba989e18634b55cffd0660eaefdfc7a59dcb4377eac266",
      "nodefusion/tests/test_analysis_lookup_cache.py": "aa4fbc0b8f06c64278bc5b11edf21cfe3ec737e3f0d88901b52478aca29765f3",
      "nodefusion/tests/test_analyze_alias.py": "345f6cbd8fae2a7c7729130460112a08a23599461234865f2da72055c3621064",
      "nodefusion/tests/test_arg_names.py": "a0f4cd7c7017da1926fc317d6c73bcb6bd4bacde579e3818fa277079991a4af4",
      "nodefusion/tests/test_artifact_guard.py": "8b53fababf688ceaf4afd1556d3c1352d3a13c60ea43fe14e3d3eae24698d1d0",
      "nodefusion/tests/test_artifact_output_safety.py": "cbed1bfa5928e7b12edc85b506f8018dd3216f017c43461525daf0a299bea9aa",
      "nodefusion/tests/test_bundle_shape.py": "55f2f20855a890967caba83581ca1dda43fa6606a5af6ab1ee7b07b074e7c82b",
      "nodefusion/tests/test_cache_hit_contract.py": "087277fe75bf38d8e83453b3671da4825f7586382fc1fa5300b3dc79272fbee7",
      "nodefusion/tests/test_calibration_failure_reason.py": "02449f59da919dc09781a66ad57789a98775b3888d1480f4f3064b4d8a1139da",
      "nodefusion/tests/test_callstack.py": "78bc55f0ccf1a6dde2836aaa256ca0ce9fc0f9b4c6dcc4b144732460144d901e",
      "nodefusion/tests/test_capability_notes.py": "a2fb61afdc826c0c5408ea3b385761f896b27191e54881c3e10b10a2f01cc272",
      "nodefusion/tests/test_compact_capability_ui.py": "07542f2beb95353f3dd3861ca3ffcec93d1f46c966c3dd74c82d27fc3b6427ad",
      "nodefusion/tests/test_consolidate_artifacts.py": "5ffa4d01f5adb051f2153c3097d2264dfa7c63533f4cf6c09159fc50cd843cdd",
      "nodefusion/tests/test_context_switch_snapshot.py": "db5c77b5ab4ad93d34a96266386dbeec80694db7482bfa5856c1547f773ccb9d",
      "nodefusion/tests/test_corpus_selection.py": "1717ce9682ecde7a05675b790914a8e5a590e1d83556944ddbfff1e38918d050",
      "nodefusion/tests/test_coverage_evidence.py": "fdbb041e7339f8d94a52a1833b01e315657a749e9bc7d21fee6a2724f23a86f3",
      "nodefusion/tests/test_demangle_v0.py": "9f91c7ab6d2f681368c63d2bde9109cb4dd501f4d5df3e1f728a7b8975a0b061",
      "nodefusion/tests/test_dwarf_generic_base.py": "f9204c883a298151406288885c32c04fd1e7db423fe6cb0747f0f4392ba0fef5",
      "nodefusion/tests/test_dwarf_tombstones.py": "ed608be359e8180a5355cafe93e64d417543cc014461710f55fcd5997bef7295",
      "nodefusion/tests/test_dwarfsrc_location.py": "bcd7c6e8cf00a086fd9c712ffa35aebfbb4e09aaf20ddaedc4f2f5b41604cad9",
      "nodefusion/tests/test_elf_archive.py": "573747576adf2bf4daf66d5f99b6a149eff663ebcd6743b79b4b39d57d20dda5",
      "nodefusion/tests/test_elfid.py": "3efd46b3688e79f7ccc376abb32f20b495b7c074dbd84c5181d67fade3db729c",
      "nodefusion/tests/test_event_kind_pairs_measured_from_runs.py": "ef1a4ce55dc22b8f1073f3d4ac9120b30c68cf0877ba6e4dc5788f81217cdf55",
      "nodefusion/tests/test_event_kind_registry.py": "276bb984ee002622d0284558df13234328a3779853c5b1681d71d827069bfd9d",
      "nodefusion/tests/test_event_kinds.py": "67eee9315e36a7484d1141590701ad8e4e23c4be212b1ac9c0c4949983beef52",
      "nodefusion/tests/test_event_snapshot_throttle.py": "2709d806da483ef8bcdb57ddb6c59a73da83a859b793d7cd5d15891ccfcedd87",
      "nodefusion/tests/test_event_when_branches.py": "0b866c908cbc40deca18830293d161eb9b1f3401792d3fed1b1041e7e9b5e2de",
      "nodefusion/tests/test_exec_iter_map.py": "026e1e908df1884c4d241902c845dd72a43c095e5ab28e94fb7069f621698562",
      "nodefusion/tests/test_exec_walk.py": "67fc662f5b36cff81c1c1ab6a1dfe842081a05a1c3f69a64e8d212da0b7cb985",
      "nodefusion/tests/test_func_events_scope.py": "de9f69b6673c312537ce72cfd6c91baa4355749558609ca0b696c21d8f790198",
      "nodefusion/tests/test_kernel_elf_fixture.py": "ada3976b4b49734884bdb9b3844886e92251240671fe8ae219ed1f70c32c935b",
      "nodefusion/tests/test_kernel_image_fit.py": "32c7bd1bf3b66c7071b36582ca32838af2777157f1ae999a46785e6a39675476",
      "nodefusion/tests/test_kernel_integrations.py": "8e3ecdcf6ad5ea3b7fa44a3e3244a2c9678255b62c02d8cd48de9cfc1189b376",
      "nodefusion/tests/test_kernel_view.py": "4cc544296573cab8df9858947e6d7040fb22aba4b29aac1b43a565b39d9e7ab5",
      "nodefusion/tests/test_kind_three_states.py": "64764f687af895b3b37bc69179f2729f49efe2fb5fc5a24ecc09c41ea38e70ed",
      "nodefusion/tests/test_layout_routing.py": "14631aae85b75dcb1c1c5cec92c344f1c01433e2ae6eb90a3c105ac583372a5c",
      "nodefusion/tests/test_list_arceos.py": "22dbff8051cf7076ad5be6f919ed6d9a0c7a70bd1b6e09ca2f6589b5fb94493f",
      "nodefusion/tests/test_list_wiring.py": "e5f187b746738a5ca027936468df8ab7d2e48e32fe550eca3fa57f217c60d5cb",
      "nodefusion/tests/test_manifest_docs.py": "9be0200ca41d0f0512519356c81911cbbaf2aca63530d99e2aba53de9a1eea37",
      "nodefusion/tests/test_manifest_lint.py": "ad03a1e3519feb79fbeacdbe6576f90b05e7c6c9cb3034c44bd1032163b69888",
      "nodefusion/tests/test_manifest_roles.py": "b1a8fca196f9b37b614f3cd39abe33ad64c58894d1c933996d553c8f573d147e",
      "nodefusion/tests/test_manifest_vocabulary.py": "834eb61d446df47b1c6ebcd4e8a7347eabc24486da052b4be8f5b0660b0f631d",
      "nodefusion/tests/test_metric_deps_are_kinds_not_xv6_names.py": "07f411bb3fcbb14c2eb6c222f4a4928426a86a45d82f11cb242130c49eb6c717",
      "nodefusion/tests/test_no_build.py": "4bc6168bfe29297a6cb93ec91824dcbb9764c9ae8551f3d71446cd97e619d4ad",
      "nodefusion/tests/test_pagetable_arch.py": "9946ed7788d72107d6c6ea81fa4204843e1a0ae291add95259f3e96a0f661eb2",
      "nodefusion/tests/test_path_index_gate.py": "8486e4f1d0d8f91800321a7907ae6797a59d6576cae0614c8db6f91c8ecee9ae",
      "nodefusion/tests/test_percpu_layout.py": "4ecfcf97552e678173bca5fe81eb661bc7f417ba2f4ea4de3c540ba956152495",
      "nodefusion/tests/test_percpu_runtime_layout.py": "ba54784385c6a6716eb3f3317635c8b2dd09b40e5e3e5e6112ca5b92d4e7c62c",
      "nodefusion/tests/test_phys_alloc_gate.py": "a1b68458d8268d052082ad92b80f86753c46423eec7c86c3bdd6019e23b8186a",
      "nodefusion/tests/test_plan_iter_map.py": "58fcacc67e31cf6638ce4d846dccf32312ae17caed1d9470d0ba468fd95a4b5a",
      "nodefusion/tests/test_plan_percpu.py": "5ece34163ede167484cc5edd5d3255d8514935af7a385b171b1b64c6e928140e",
      "nodefusion/tests/test_plan_steps.py": "0241755b6c85983779fad700e2eba5332ab595cc64e6297e8358ba4d15f9dfb7",
      "nodefusion/tests/test_procs_gate.py": "8acd3d3e2398fcd008dd4f5bae735183008eb4cecf6f4c09d0fffaefdf50cd8d",
      "nodefusion/tests/test_procview.py": "9f48157ccc96833a83a42f2f3c3eb26a82bd7f6918c0c3c91a6052c5d9657428",
      "nodefusion/tests/test_profile_from_manifest.py": "9f7cf3aa6cb931445e9e6c763bf2c30b1505e4b728f759514033994b5b60b16c",
      "nodefusion/tests/test_rcore_fs_vocabulary.py": "48c49c9f091d4c964715cf55216b8354ea59697a0ef58ec18850f5e8e89f80c5",
      "nodefusion/tests/test_rcore_inlined_halves.py": "fd61e489c857fcaa5cdbe2466e74b1ba6a547eb7b18fd12fbda80ce927c6f516",
      "nodefusion/tests/test_readers_containers.py": "b0f882dd388f9bc3796b8f5d8c29d72c7dd6b5d8b7866055f810a7bbb2295d2f",
      "nodefusion/tests/test_readers_pointers.py": "e15d27e41ca320d960720f6760ffd0ff6216f658c74ab373148dc3307fa24fd8",
      "nodefusion/tests/test_readers_registry.py": "b139bcca13c15f203e73a427d9d6dc5804b97fc76a28d14025325f191cc4a6a5",
      "nodefusion/tests/test_readers_scalars.py": "3a15bf0648767fb8e7d24044aeb61eb312ace64ab51f834e0a2dfe39072b9cd5",
      "nodefusion/tests/test_record_icount.py": "f76528d2c5a7fc18938d0afc88b5ee9e9626d63801bccc6ced57c1e4b2c823a0",
      "nodefusion/tests/test_recording_tail.py": "833b8e33c6d111b49790beea1ba7ab81b23bd7ea907a2155f981967bcb61a614",
      "nodefusion/tests/test_regenerate_artifact.py": "0098a8fc52b7cd42889036de78ca54cec00064396d701eadd224b3febd3c043b",
      "nodefusion/tests/test_resolve.py": "b14f432eb380c5514b73431978b01b0d715ed9a49f92deb547358fb35dd4d8ec",
      "nodefusion/tests/test_resources.py": "0860476f362a770bd04355592a83fdb15aa9df3787c6c740d407cb8ee4fc817e",
      "nodefusion/tests/test_sampled_counts_are_not_exact.py": "7bd598eb07ef0b067cee3460ef0c61d18b8b918ae697d80b01617cf73eaf0a9a",
      "nodefusion/tests/test_shell_verdict.py": "22baff1ad7cb43b5c5574b424812c40b194e30e3800921429659f7b31cbe20f4",
      "nodefusion/tests/test_snapshot.py": "a1e5383c15e3c3c18222f6e07991712b1f22dfebd3ec67178eb58e4710a921ea",
      "nodefusion/tests/test_source_combine.py": "506ebb5c6dda153e92b854887fb671cf4aa08d33fd8305b359139a1d38ee4349",
      "nodefusion/tests/test_spec_nftrace_registry.py": "c529a4ed1f86bee4951e4699b09d466d51a5bd0623accc49bff9abcfdf15e615",
      "nodefusion/tests/test_split_rawvec.py": "e80f55fc42e246f3f638979500c7c40548eb0f630c512a93b8eaa00df312eac4",
      "nodefusion/tests/test_switch_attribution.py": "c773376888e9dc2ce87ddbebc14ccb0649ea77da189319692e20aff16eddb73d",
      "nodefusion/tests/test_symbols_static_wrapper.py": "cf634a6545564e8949b9129cee0c5f01f3dcf60effd49883c3b908aa28af7f82",
      "nodefusion/tests/test_trace_complete.py": "ac33d1da9aba97c98c68502188522a253709e96cf3fbb8d3c94b85c661cea366",
      "nodefusion/tests/test_trace_streaming.py": "6c972f95a790afac5b9aa84320038bf0eab41b926126334db7290d095f2b1e10",
      "nodefusion/tests/test_units.py": "9bf99f5d3080ed458a97e736e30b84025eb99c1e43e693d9aa33f519896106b3",
      "nodefusion/tests/test_unobservable_does_not_speak_for_the_kernel.py": "448c03147a2306d8205762bdc9a9e0d9e8d5eb0e0c5199d17d80c2f076f87547",
      "nodefusion/tests/test_video_sections.py": "c84c17b471460ae45a25341a8f893768816f57a9eb94e9f9a90e7e20406c4a31",
      "nodefusion/tests/test_watchlist_wire.py": "1e01dd4fde92169c0ab1296dbd249865cddde4173ec8de3c71c39f61356f74c3",
      "nodefusion/tests/test_watchsel.py": "89c8bb635534d079e0502d1c118f32eaa806250d74195a9d99bb71d07aabcd2d",
      "nodefusion/tools/crosscheck_decoder.py": "2f69a3f636d910f93f24939bcd03b41d9b0a17184ce4a4b15250e00f65b47a28",
      "nodefusion/tools/crosscheck_dwarf.py": "b30ecfa371c6959b2522db6d9edabf7e0c7be238feef34ff9411d76a4b4fdf01",
      "nodefusion/tools/crosscheck_layout.py": "d77ebd7aaa1ace070392eca0051f1b34dbf65d08c355edf87101b7e449aa7106",
      "nodefusion/tools/crosscheck_offsetof.py": "732e30d19129e0a1f15e33a2c1f96d940abaa1a26829b8f0d7bc44bf873cdc87",
      "nodefusion/tools/crosscheck_procinfo.py": "c3d6dd588b28d9252ddb712dea0ab8d3212dffed7f9256b9b936860fa0dfb8a9",
      "nodefusion/tools/crosscheck_procs.py": "b497c8fd050c0d6d1e4154eda00c1eef05502d3826546b1165b8a740c6fee562",
      "nodefusion/tools/crosscheck_resources.py": "98b04ac869e3c9e38020728473d480b8ed0b15385bc1d530e466919807ad1ac3",
      "nodefusion/tools/crosscheck_watchsel.py": "52142d49e919f2f040371b404cabdef0d0edbbf977abdcb1af5063b910d0aad8",
      "nodefusion/tools/survey_chapters.py": "6952dbdb8036916acd17bd5f642ea0b62aa10cbbec2bb4227e58f5132683589b",
      "scripts/benchmark_trace.py": "0faf86ba735bc31a20ee8e7ae3d3aad8aef78f0f43cdd33e831658f4e2a71494",
      "scripts/consolidate_artifacts.py": "31700c7f0a1f21fef653e061115b0091aa1a4ce539b9baa9cb48ad914889dadd",
      "scripts/finalize_artifacts.py": "a10224f43e0554eeb347a201dfd29781fbe0a39b979f890cccbec65e76cea9eb",
      "scripts/regenerate_artifact.py": "aed10d1eedc5689b6fd68e84a9bb8ae0c98f7bb8456fd8bd280e8bae470b8e9a"
    },
    "plugin_sha256": "f1d1d8e375ed789b57f0fa06285da182b90951324e09e3f0c3716a38353112f2",
    "source_archive": {
      "path": "/home/joseph/nf/education-2026A-20260927/rcore-2026A-ch8-basic-observed-v3-source.tar.gz",
      "sha256": "a7100dbe1999f0c660ba5603347a52be077e37876643288ce294f73059ab6d1c",
      "bytes": 3079931
    }
  },
  "kernel_patch_sha256": "b67b70fa8cf322c462e552dca7a87aa8f0ac2940ecc29d1729d7a0cae1a8d3af",
  "integration_patch": "nodefusion/integrations/rcore-2026a-ch8-observation.patch",
  "build_command": {
    "argv": [
      "cargo",
      "build",
      "--release",
      "--locked"
    ],
    "cwd": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/os",
    "environment": {
      "LOG": "TRACE",
      "CARGO_NET_GIT_FETCH_WITH_CLI": "true",
      "CARGO_PROFILE_RELEASE_DEBUG": "2"
    },
    "log": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3-kernel-build.log",
    "returncode": 0,
    "log_sha256": "1351ac588a17a33e3716671fe4ac014f82f996b227ab4b6e8a49273227875576"
  },
  "record_command": [
    "/home/joseph/nf/venv313/bin/python",
    "-m",
    "nodefusion.host.cli",
    "record",
    "--kernel",
    "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3",
    "--kernel-kind",
    "rcore",
    "--runs",
    "/home/joseph/nf/education-2026A-20260927/runs",
    "--name",
    "rcore-2026A-ch8-basic-observed-v3",
    "--no-build",
    "--function-returns",
    "--watch-all",
    "--profile",
    "uniform",
    "--snapshots",
    "80",
    "--max-ram-bytes",
    "268435456",
    "--timeout",
    "600",
    "--no-render",
    "--event-stream",
    "never",
    "--program",
    "ch8b_usertest"
  ],
  "record_cwd": "/home/joseph/nf/education-2026A-20260927/tool",
  "analysis_command": [
    "/home/joseph/nf/venv313/bin/python",
    "-m",
    "scripts.regenerate_artifact",
    "--run",
    "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch8-basic-observed-v3",
    "--out",
    "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch8-basic-observed-v3/rcore-2026A-ch8-basic-observed-v3.html"
  ],
  "analysis_cwd": "/home/joseph/nf/education-2026A-20260927/tool",
  "record_driver_sha256": "c4207f88f5ffd5daa916f4209b90857a14e3759475bb1774278924c22db054f4",
  "build_driver_sha256": "11f9aa412b01974517d473aa400294bf5ae146e09b309e0d5642c60cf1760b66",
  "source_provenance_sha256": "3147de76a32ae5dafcb95cdc498f5989347700ba607095548403bb5c625d86d1",
  "workload": {
    "program": "ch8b_usertest",
    "starts": [
      "ch2b_hello_world",
      "ch2b_power_3",
      "ch2b_power_5",
      "ch2b_power_7",
      "ch3b_yield0",
      "ch3b_yield1",
      "ch3b_yield2",
      "ch5b_exit",
      "ch5b_forktest_simple",
      "ch5b_forktest",
      "ch6b_filetest_simple",
      "ch6b_cat",
      "ch7b_pipetest",
      "ch8b_mpsc_sem",
      "ch8b_phil_din_mutex",
      "ch8b_race_adder_mutex_spin",
      "ch8b_sync_sem",
      "ch8b_test_condvar",
      "ch8b_threads",
      "ch8b_threads_arg"
    ],
    "exits": [
      [
        "ch2b_hello_world",
        "3",
        "0"
      ],
      [
        "ch2b_power_3",
        "4",
        "0"
      ],
      [
        "ch2b_power_5",
        "5",
        "0"
      ],
      [
        "ch2b_power_7",
        "6",
        "0"
      ],
      [
        "ch3b_yield0",
        "7",
        "0"
      ],
      [
        "ch3b_yield1",
        "8",
        "0"
      ],
      [
        "ch3b_yield2",
        "9",
        "0"
      ],
      [
        "ch5b_exit",
        "10",
        "0"
      ],
      [
        "ch5b_forktest_simple",
        "11",
        "0"
      ],
      [
        "ch5b_forktest",
        "12",
        "0"
      ],
      [
        "ch6b_filetest_simple",
        "13",
        "0"
      ],
      [
        "ch6b_cat",
        "23",
        "0"
      ],
      [
        "ch7b_pipetest",
        "24",
        "0"
      ],
      [
        "ch8b_mpsc_sem",
        "25",
        "0"
      ],
      [
        "ch8b_phil_din_mutex",
        "26",
        "0"
      ],
      [
        "ch8b_race_adder_mutex_spin",
        "27",
        "0"
      ],
      [
        "ch8b_sync_sem",
        "28",
        "0"
      ],
      [
        "ch8b_test_condvar",
        "29",
        "0"
      ],
      [
        "ch8b_threads",
        "30",
        "0"
      ],
      [
        "ch8b_threads_arg",
        "31",
        "0"
      ]
    ],
    "expected_exit_codes": {
      "ch2b_hello_world": 0,
      "ch2b_power_3": 0,
      "ch2b_power_5": 0,
      "ch2b_power_7": 0,
      "ch3b_yield0": 0,
      "ch3b_yield1": 0,
      "ch3b_yield2": 0,
      "ch5b_exit": 0,
      "ch5b_forktest_simple": 0,
      "ch5b_forktest": 0,
      "ch6b_filetest_simple": 0,
      "ch6b_cat": 0,
      "ch7b_pipetest": 0,
      "ch8b_mpsc_sem": 0,
      "ch8b_phil_din_mutex": 0,
      "ch8b_race_adder_mutex_spin": 0,
      "ch8b_sync_sem": 0,
      "ch8b_test_condvar": 0,
      "ch8b_threads": 0,
      "ch8b_threads_arg": 0
    }
  },
  "ordinary_course_check": {
    "status": "PASS",
    "tests": 20
  },
  "filesystem_before": {
    "sha256": "6e298d9e506168106e7c0912cb00764faa8bc92718a7ac74631093503b8dd356",
    "files": [
      {
        "name": "ch2b_bad_address",
        "inode": 1,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "171dc1a64f3498cbca813349afe8be5589481c7b57c0e3b42b6eecd7417142a8",
        "data_block_ids": [
          1035,
          1036,
          1037,
          1038,
          1039,
          1040,
          1041,
          1042,
          1043,
          1044,
          1045,
          1046,
          1047,
          1048,
          1049,
          1050,
          1051,
          1052,
          1053,
          1054,
          1055,
          1056,
          1057,
          1058,
          1059,
          1060,
          1061,
          1062,
          1064,
          1065,
          1066,
          1067,
          1068,
          1069,
          1070,
          1071,
          1072,
          1073,
          1074,
          1075,
          1076,
          1077
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch2b_bad_address.elf"
      },
      {
        "name": "ch2b_bad_instructions",
        "inode": 2,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "0d67c4570d0f9770157afff34c6816613f822be0f0bea30ec05b5d560970d001",
        "data_block_ids": [
          1078,
          1079,
          1080,
          1081,
          1082,
          1083,
          1084,
          1085,
          1086,
          1087,
          1088,
          1089,
          1090,
          1091,
          1092,
          1093,
          1094,
          1095,
          1096,
          1097,
          1098,
          1099,
          1100,
          1101,
          1102,
          1103,
          1104,
          1105,
          1107,
          1108,
          1109,
          1110,
          1111,
          1112,
          1113,
          1114,
          1115,
          1116,
          1117,
          1118,
          1119,
          1120
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch2b_bad_instructions.elf"
      },
      {
        "name": "ch2b_bad_register",
        "inode": 3,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "120fa181bd5be2819baf873532357c11b634f5ffa33847574475d2e9950c01d2",
        "data_block_ids": [
          1121,
          1122,
          1123,
          1124,
          1125,
          1126,
          1127,
          1128,
          1129,
          1130,
          1131,
          1132,
          1133,
          1134,
          1135,
          1136,
          1137,
          1138,
          1139,
          1140,
          1141,
          1142,
          1143,
          1144,
          1145,
          1146,
          1147,
          1148,
          1150,
          1151,
          1152,
          1153,
          1154,
          1155,
          1156,
          1157,
          1158,
          1159,
          1160,
          1161,
          1162,
          1163
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch2b_bad_register.elf"
      },
      {
        "name": "ch2b_hello_world",
        "inode": 4,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "72a60818f85903a3207926e2d5e0e940cc437bfa3f496e78cc243c995f5e79fd",
        "data_block_ids": [
          1164,
          1165,
          1166,
          1167,
          1168,
          1169,
          1170,
          1171,
          1172,
          1173,
          1174,
          1175,
          1176,
          1177,
          1178,
          1179,
          1180,
          1181,
          1182,
          1183,
          1184,
          1185,
          1186,
          1187,
          1188,
          1189,
          1190,
          1191,
          1193,
          1194,
          1195,
          1196,
          1197,
          1198,
          1199,
          1200,
          1201,
          1202,
          1203,
          1204,
          1205,
          1206
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch2b_hello_world.elf"
      },
      {
        "name": "ch2b_power_3",
        "inode": 5,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "95341948c6c4cc973e28a1d735995bbd0918f23bf9bfdef24243615bc3e12e25",
        "data_block_ids": [
          1207,
          1208,
          1209,
          1210,
          1211,
          1212,
          1213,
          1214,
          1215,
          1216,
          1217,
          1218,
          1219,
          1220,
          1221,
          1222,
          1223,
          1224,
          1225,
          1226,
          1227,
          1228,
          1229,
          1230,
          1231,
          1232,
          1233,
          1234,
          1236,
          1237,
          1238,
          1239,
          1240,
          1241,
          1242,
          1243,
          1244,
          1245,
          1246,
          1247,
          1248,
          1249
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch2b_power_3.elf"
      },
      {
        "name": "ch2b_power_5",
        "inode": 6,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "1ecbd52c68cd5936bd8f2d487901d9b2c6a711e511ba0251f64eb3a63aaba12a",
        "data_block_ids": [
          1250,
          1251,
          1252,
          1253,
          1254,
          1255,
          1256,
          1257,
          1258,
          1259,
          1260,
          1261,
          1262,
          1263,
          1264,
          1265,
          1266,
          1267,
          1268,
          1269,
          1270,
          1271,
          1272,
          1273,
          1274,
          1275,
          1276,
          1277,
          1279,
          1280,
          1281,
          1282,
          1283,
          1284,
          1285,
          1286,
          1287,
          1288,
          1289,
          1290,
          1291,
          1292
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch2b_power_5.elf"
      },
      {
        "name": "ch2b_power_7",
        "inode": 7,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "a5ed792848253b435225c4ed4dc8064cb65ece554e6d0db0f4bf65ed7c9ba5c7",
        "data_block_ids": [
          1293,
          1294,
          1295,
          1296,
          1297,
          1298,
          1299,
          1300,
          1301,
          1302,
          1303,
          1304,
          1305,
          1306,
          1307,
          1308,
          1309,
          1310,
          1311,
          1312,
          1313,
          1314,
          1315,
          1316,
          1317,
          1318,
          1319,
          1320,
          1322,
          1323,
          1324,
          1325,
          1326,
          1327,
          1328,
          1329,
          1330,
          1331,
          1332,
          1333,
          1334,
          1335
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch2b_power_7.elf"
      },
      {
        "name": "ch3_sleep",
        "inode": 8,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "b98df4f9d97e3cfcc3b5b59a43ac6ee4fbf0b83847a614e5aa7b919b1513f63a",
        "data_block_ids": [
          1336,
          1337,
          1338,
          1339,
          1340,
          1341,
          1342,
          1343,
          1344,
          1345,
          1346,
          1347,
          1348,
          1349,
          1350,
          1351,
          1352,
          1353,
          1354,
          1355,
          1356,
          1357,
          1358,
          1359,
          1360,
          1361,
          1362,
          1363,
          1365,
          1366,
          1367,
          1368,
          1369,
          1370,
          1371,
          1372,
          1373,
          1374,
          1375,
          1376,
          1377,
          1378
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch3_sleep.elf"
      },
      {
        "name": "ch3_sleep1",
        "inode": 9,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "5facc6e42edc3cb7c24c5b5bad1c50f3db6419ed9c27cbc1fa7c1a8c25a4b677",
        "data_block_ids": [
          1379,
          1380,
          1381,
          1382,
          1383,
          1384,
          1385,
          1386,
          1387,
          1388,
          1389,
          1390,
          1391,
          1392,
          1393,
          1394,
          1395,
          1396,
          1397,
          1398,
          1399,
          1400,
          1401,
          1402,
          1403,
          1404,
          1405,
          1406,
          1408,
          1409,
          1410,
          1411,
          1412,
          1413,
          1414,
          1415,
          1416,
          1417,
          1418,
          1419,
          1420,
          1421
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch3_sleep1.elf"
      },
      {
        "name": "ch3_trace",
        "inode": 10,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "71bc814e7ee39acd6af2db3af3d03755b9796dcb985f57bfef9125e876758a57",
        "data_block_ids": [
          1422,
          1423,
          1424,
          1425,
          1426,
          1427,
          1428,
          1429,
          1430,
          1431,
          1432,
          1433,
          1434,
          1435,
          1436,
          1437,
          1438,
          1439,
          1440,
          1441,
          1442,
          1443,
          1444,
          1445,
          1446,
          1447,
          1448,
          1449,
          1451,
          1452,
          1453,
          1454,
          1455,
          1456,
          1457,
          1458,
          1459,
          1460,
          1461,
          1462,
          1463,
          1464
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch3_trace.elf"
      },
      {
        "name": "ch3b_yield0",
        "inode": 11,
        "size": 21368,
        "type": 0,
        "nlink": null,
        "sha256": "1449a21015d920e8cb3d3504ffe51c10cd7bee2952dce44be699f451667e3fb6",
        "data_block_ids": [
          1465,
          1466,
          1467,
          1468,
          1469,
          1470,
          1471,
          1472,
          1473,
          1474,
          1475,
          1476,
          1477,
          1478,
          1479,
          1480,
          1481,
          1482,
          1483,
          1484,
          1485,
          1486,
          1487,
          1488,
          1489,
          1490,
          1491,
          1492,
          1494,
          1495,
          1496,
          1497,
          1498,
          1499,
          1500,
          1501,
          1502,
          1503,
          1504,
          1505,
          1506,
          1507
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch3b_yield0.elf"
      },
      {
        "name": "ch3b_yield1",
        "inode": 12,
        "size": 21368,
        "type": 0,
        "nlink": null,
        "sha256": "ec3be3205215a535d2bf8659d5926fb5a56bef41bad046ea32279daf7af85341",
        "data_block_ids": [
          1508,
          1509,
          1510,
          1511,
          1512,
          1513,
          1514,
          1515,
          1516,
          1517,
          1518,
          1519,
          1520,
          1521,
          1522,
          1523,
          1524,
          1525,
          1526,
          1527,
          1528,
          1529,
          1530,
          1531,
          1532,
          1533,
          1534,
          1535,
          1537,
          1538,
          1539,
          1540,
          1541,
          1542,
          1543,
          1544,
          1545,
          1546,
          1547,
          1548,
          1549,
          1550
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch3b_yield1.elf"
      },
      {
        "name": "ch3b_yield2",
        "inode": 13,
        "size": 21368,
        "type": 0,
        "nlink": null,
        "sha256": "34fc7fbde41531715e7b8df5aba82188f7a43595216420f10a51d57633f1437c",
        "data_block_ids": [
          1551,
          1552,
          1553,
          1554,
          1555,
          1556,
          1557,
          1558,
          1559,
          1560,
          1561,
          1562,
          1563,
          1564,
          1565,
          1566,
          1567,
          1568,
          1569,
          1570,
          1571,
          1572,
          1573,
          1574,
          1575,
          1576,
          1577,
          1578,
          1580,
          1581,
          1582,
          1583,
          1584,
          1585,
          1586,
          1587,
          1588,
          1589,
          1590,
          1591,
          1592,
          1593
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch3b_yield2.elf"
      },
      {
        "name": "ch4_mmap0",
        "inode": 14,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "3210c35fee0c4666ba6a8f1aaa5a52fd741f394957babc8a8ba10a55be9fa79f",
        "data_block_ids": [
          1594,
          1595,
          1596,
          1597,
          1598,
          1599,
          1600,
          1601,
          1602,
          1603,
          1604,
          1605,
          1606,
          1607,
          1608,
          1609,
          1610,
          1611,
          1612,
          1613,
          1614,
          1615,
          1616,
          1617,
          1618,
          1619,
          1620,
          1621,
          1623,
          1624,
          1625,
          1626,
          1627,
          1628,
          1629,
          1630,
          1631,
          1632,
          1633,
          1634,
          1635,
          1636
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch4_mmap0.elf"
      },
      {
        "name": "ch4_mmap1",
        "inode": 15,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "c77a9c5174db0e025afda679a166706a1d1a3a50180b33a98535aff75872689f",
        "data_block_ids": [
          1637,
          1638,
          1639,
          1640,
          1641,
          1642,
          1643,
          1644,
          1645,
          1646,
          1647,
          1648,
          1649,
          1650,
          1651,
          1652,
          1653,
          1654,
          1655,
          1656,
          1657,
          1658,
          1659,
          1660,
          1661,
          1662,
          1663,
          1664,
          1666,
          1667,
          1668,
          1669,
          1670,
          1671,
          1672,
          1673,
          1674,
          1675,
          1676,
          1677,
          1678,
          1679
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch4_mmap1.elf"
      },
      {
        "name": "ch4_mmap2",
        "inode": 16,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "a2a0a777ee6427ff79b7002af0bdd9cbbd97f53063601a78a708ca6acb3504ee",
        "data_block_ids": [
          1680,
          1681,
          1682,
          1683,
          1684,
          1685,
          1686,
          1687,
          1688,
          1689,
          1690,
          1691,
          1692,
          1693,
          1694,
          1695,
          1696,
          1697,
          1698,
          1699,
          1700,
          1701,
          1702,
          1703,
          1704,
          1705,
          1706,
          1707,
          1709,
          1710,
          1711,
          1712,
          1713,
          1714,
          1715,
          1716,
          1717,
          1718,
          1719,
          1720,
          1721,
          1722
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch4_mmap2.elf"
      },
      {
        "name": "ch4_mmap3",
        "inode": 17,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "53c7aef09b85612cb31cb581410aa5300f8e3d1d05c33bed3fe5b9c08948f388",
        "data_block_ids": [
          1724,
          1725,
          1726,
          1727,
          1728,
          1729,
          1730,
          1731,
          1732,
          1733,
          1734,
          1735,
          1736,
          1737,
          1738,
          1739,
          1740,
          1741,
          1742,
          1743,
          1744,
          1745,
          1746,
          1747,
          1748,
          1749,
          1750,
          1751,
          1753,
          1754,
          1755,
          1756,
          1757,
          1758,
          1759,
          1760,
          1761,
          1762,
          1763,
          1764,
          1765,
          1766
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch4_mmap3.elf"
      },
      {
        "name": "ch4_trace1",
        "inode": 18,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "677c44eae147b49b44cd8298c8d404e0f7b4e98846abc3e465ae21b3474a7da3",
        "data_block_ids": [
          1767,
          1768,
          1769,
          1770,
          1771,
          1772,
          1773,
          1774,
          1775,
          1776,
          1777,
          1778,
          1779,
          1780,
          1781,
          1782,
          1783,
          1784,
          1785,
          1786,
          1787,
          1788,
          1789,
          1790,
          1791,
          1792,
          1793,
          1794,
          1796,
          1797,
          1798,
          1799,
          1800,
          1801,
          1802,
          1803,
          1804,
          1805,
          1806,
          1807,
          1808,
          1809
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch4_trace1.elf"
      },
      {
        "name": "ch4_unmap",
        "inode": 19,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "e1eec3fe5c85ea4d55e6c0aad3a970680200473e89c329879d9e31512bbed58a",
        "data_block_ids": [
          1810,
          1811,
          1812,
          1813,
          1814,
          1815,
          1816,
          1817,
          1818,
          1819,
          1820,
          1821,
          1822,
          1823,
          1824,
          1825,
          1826,
          1827,
          1828,
          1829,
          1830,
          1831,
          1832,
          1833,
          1834,
          1835,
          1836,
          1837,
          1839,
          1840,
          1841,
          1842,
          1843,
          1844,
          1845,
          1846,
          1847,
          1848,
          1849,
          1850,
          1851,
          1852
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch4_unmap.elf"
      },
      {
        "name": "ch4_unmap2",
        "inode": 20,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "568b7d0c246055056faedbf2f248623427dd9ce69d7944ccb18785e9e25143a5",
        "data_block_ids": [
          1853,
          1854,
          1855,
          1856,
          1857,
          1858,
          1859,
          1860,
          1861,
          1862,
          1863,
          1864,
          1865,
          1866,
          1867,
          1868,
          1869,
          1870,
          1871,
          1872,
          1873,
          1874,
          1875,
          1876,
          1877,
          1878,
          1879,
          1880,
          1882,
          1883,
          1884,
          1885,
          1886,
          1887,
          1888,
          1889,
          1890,
          1891,
          1892,
          1893,
          1894,
          1895
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch4_unmap2.elf"
      },
      {
        "name": "ch4b_sbrk",
        "inode": 21,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "c2786aab40c8d27e43d792b9e3cd49fd1803e4f23d95779b8f26c24de3972127",
        "data_block_ids": [
          1896,
          1897,
          1898,
          1899,
          1900,
          1901,
          1902,
          1903,
          1904,
          1905,
          1906,
          1907,
          1908,
          1909,
          1910,
          1911,
          1912,
          1913,
          1914,
          1915,
          1916,
          1917,
          1918,
          1919,
          1920,
          1921,
          1922,
          1923,
          1925,
          1926,
          1927,
          1928,
          1929,
          1930,
          1931,
          1932,
          1933,
          1934,
          1935,
          1936,
          1937,
          1938
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch4b_sbrk.elf"
      },
      {
        "name": "ch5_exit0",
        "inode": 22,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "04f44db39a23c52f62bbe2cbd2a40f08f65f1ed9d5522b8ba0859fed04fac58e",
        "data_block_ids": [
          1939,
          1940,
          1941,
          1942,
          1943,
          1944,
          1945,
          1946,
          1947,
          1948,
          1949,
          1950,
          1951,
          1952,
          1953,
          1954,
          1955,
          1956,
          1957,
          1958,
          1959,
          1960,
          1961,
          1962,
          1963,
          1964,
          1965,
          1966,
          1968,
          1969,
          1970,
          1971,
          1972,
          1973,
          1974,
          1975,
          1976,
          1977,
          1978,
          1979,
          1980,
          1981
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_exit0.elf"
      },
      {
        "name": "ch5_exit1",
        "inode": 23,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "f8c2219142fee37ce40712cde0640105e676db11aacdf8426d888db50d4d113f",
        "data_block_ids": [
          1982,
          1983,
          1984,
          1985,
          1986,
          1987,
          1988,
          1989,
          1990,
          1991,
          1992,
          1993,
          1994,
          1995,
          1996,
          1997,
          1998,
          1999,
          2000,
          2001,
          2002,
          2003,
          2004,
          2005,
          2006,
          2007,
          2008,
          2009,
          2011,
          2012,
          2013,
          2014,
          2015,
          2016,
          2017,
          2018,
          2019,
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_exit1.elf"
      },
      {
        "name": "ch5_getpid",
        "inode": 24,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "53fbb5a3d0e843182795df79863283090044bd0cad4d7b9570641ad63168bf2b",
        "data_block_ids": [
          2025,
          2026,
          2027,
          2028,
          2029,
          2030,
          2031,
          2032,
          2033,
          2034,
          2035,
          2036,
          2037,
          2038,
          2039,
          2040,
          2041,
          2042,
          2043,
          2044,
          2045,
          2046,
          2047,
          2048,
          2049,
          2050,
          2051,
          2052,
          2054,
          2055,
          2056,
          2057,
          2058,
          2059,
          2060,
          2061,
          2062,
          2063,
          2064,
          2065,
          2066,
          2067
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_getpid.elf"
      },
      {
        "name": "ch5_setprio",
        "inode": 25,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "b0a40bdcf157748ddbd1779d908218e4f547bcf1251a36d28ebbaa17874e2961",
        "data_block_ids": [
          2068,
          2069,
          2070,
          2071,
          2072,
          2073,
          2074,
          2075,
          2076,
          2077,
          2078,
          2079,
          2080,
          2081,
          2082,
          2083,
          2084,
          2085,
          2086,
          2087,
          2088,
          2089,
          2090,
          2091,
          2092,
          2093,
          2094,
          2095,
          2097,
          2098,
          2099,
          2100,
          2101,
          2102,
          2103,
          2104,
          2105,
          2106,
          2107,
          2108,
          2109,
          2110
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_setprio.elf"
      },
      {
        "name": "ch5_spawn0",
        "inode": 26,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "88dff31214ab17d16df732ca282ff40a1d5884679619debd839bc0c88bdcbeff",
        "data_block_ids": [
          2111,
          2112,
          2113,
          2114,
          2115,
          2116,
          2117,
          2118,
          2119,
          2120,
          2121,
          2122,
          2123,
          2124,
          2125,
          2126,
          2127,
          2128,
          2129,
          2130,
          2131,
          2132,
          2133,
          2134,
          2135,
          2136,
          2137,
          2138,
          2140,
          2141,
          2142,
          2143,
          2144,
          2145,
          2146,
          2147,
          2148,
          2149,
          2150,
          2151,
          2152,
          2153
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_spawn0.elf"
      },
      {
        "name": "ch5_spawn1",
        "inode": 27,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "7b43eaf8ec6c8f9f76f90e5c36ac88126cc515685295679910521aaa58f207bf",
        "data_block_ids": [
          2154,
          2155,
          2156,
          2157,
          2158,
          2159,
          2160,
          2161,
          2162,
          2163,
          2164,
          2165,
          2166,
          2167,
          2168,
          2169,
          2170,
          2171,
          2172,
          2173,
          2174,
          2175,
          2176,
          2177,
          2178,
          2179,
          2180,
          2181,
          2183,
          2184,
          2185,
          2186,
          2187,
          2188,
          2189,
          2190,
          2191,
          2192,
          2193,
          2194,
          2195,
          2196
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_spawn1.elf"
      },
      {
        "name": "ch5_stride",
        "inode": 28,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "f3f6f13ea5b778adb247167769e5ca8d426f2bc725775de4d36c0d17e171cec3",
        "data_block_ids": [
          2197,
          2198,
          2199,
          2200,
          2201,
          2202,
          2203,
          2204,
          2205,
          2206,
          2207,
          2208,
          2209,
          2210,
          2211,
          2212,
          2213,
          2214,
          2215,
          2216,
          2217,
          2218,
          2219,
          2220,
          2221,
          2222,
          2223,
          2224,
          2226,
          2227,
          2228,
          2229,
          2230,
          2231,
          2232,
          2233,
          2234,
          2235,
          2236,
          2237,
          2238,
          2239
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_stride.elf"
      },
      {
        "name": "ch5_stride0",
        "inode": 29,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "7918d3f5802f4341f00810fbd1f7825ca950802a80254d33f345c6414e333010",
        "data_block_ids": [
          2240,
          2241,
          2242,
          2243,
          2244,
          2245,
          2246,
          2247,
          2248,
          2249,
          2250,
          2251,
          2252,
          2253,
          2254,
          2255,
          2256,
          2257,
          2258,
          2259,
          2260,
          2261,
          2262,
          2263,
          2264,
          2265,
          2266,
          2267,
          2269,
          2270,
          2271,
          2272,
          2273,
          2274,
          2275,
          2276,
          2277,
          2278,
          2279,
          2280,
          2281,
          2282
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_stride0.elf"
      },
      {
        "name": "ch5_stride1",
        "inode": 30,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "f9293868fad6f761a3ee0f2b1f9b4cfd19a81f76061fbb7ae776d48d78d31b6b",
        "data_block_ids": [
          2283,
          2284,
          2285,
          2286,
          2287,
          2288,
          2289,
          2290,
          2291,
          2292,
          2293,
          2294,
          2295,
          2296,
          2297,
          2298,
          2299,
          2300,
          2301,
          2302,
          2303,
          2304,
          2305,
          2306,
          2307,
          2308,
          2309,
          2310,
          2312,
          2313,
          2314,
          2315,
          2316,
          2317,
          2318,
          2319,
          2320,
          2321,
          2322,
          2323,
          2324,
          2325
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_stride1.elf"
      },
      {
        "name": "ch5_stride2",
        "inode": 31,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "fe922daaf421c8fd3c27dc671d79eec34a903d15004db33bf56dbc87c5ae8f13",
        "data_block_ids": [
          2326,
          2327,
          2328,
          2329,
          2330,
          2331,
          2332,
          2333,
          2334,
          2335,
          2336,
          2337,
          2338,
          2339,
          2340,
          2341,
          2342,
          2343,
          2344,
          2345,
          2346,
          2347,
          2348,
          2349,
          2350,
          2351,
          2352,
          2353,
          2355,
          2356,
          2357,
          2358,
          2359,
          2360,
          2361,
          2362,
          2363,
          2364,
          2365,
          2366,
          2367,
          2368
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_stride2.elf"
      },
      {
        "name": "ch5_stride3",
        "inode": 32,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "21daac93779862f62899e2c421d5b34e0038224329e8c3ecd9eb3e77556a2518",
        "data_block_ids": [
          2369,
          2370,
          2371,
          2372,
          2373,
          2374,
          2375,
          2376,
          2377,
          2378,
          2379,
          2380,
          2381,
          2382,
          2383,
          2384,
          2385,
          2386,
          2387,
          2388,
          2389,
          2390,
          2391,
          2392,
          2393,
          2394,
          2395,
          2396,
          2398,
          2399,
          2400,
          2401,
          2402,
          2403,
          2404,
          2405,
          2406,
          2407,
          2408,
          2409,
          2410,
          2411
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_stride3.elf"
      },
      {
        "name": "ch5_stride4",
        "inode": 33,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "9c54835a5c64bb03bd061c08998382419ee3545183c1dab1b6b356a4973b3369",
        "data_block_ids": [
          2413,
          2414,
          2415,
          2416,
          2417,
          2418,
          2419,
          2420,
          2421,
          2422,
          2423,
          2424,
          2425,
          2426,
          2427,
          2428,
          2429,
          2430,
          2431,
          2432,
          2433,
          2434,
          2435,
          2436,
          2437,
          2438,
          2439,
          2440,
          2442,
          2443,
          2444,
          2445,
          2446,
          2447,
          2448,
          2449,
          2450,
          2451,
          2452,
          2453,
          2454,
          2455
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_stride4.elf"
      },
      {
        "name": "ch5_stride5",
        "inode": 34,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "07d4523638a4ac22a558a7ff1ebcdb16c49ebb044470cf5d96dada818a330808",
        "data_block_ids": [
          2456,
          2457,
          2458,
          2459,
          2460,
          2461,
          2462,
          2463,
          2464,
          2465,
          2466,
          2467,
          2468,
          2469,
          2470,
          2471,
          2472,
          2473,
          2474,
          2475,
          2476,
          2477,
          2478,
          2479,
          2480,
          2481,
          2482,
          2483,
          2485,
          2486,
          2487,
          2488,
          2489,
          2490,
          2491,
          2492,
          2493,
          2494,
          2495,
          2496,
          2497,
          2498
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_stride5.elf"
      },
      {
        "name": "ch5_usertest",
        "inode": 35,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "1c83b3dfd566efe2b50c0c9ba6dd342eda0ed5dbefd86e4f993e8c36688c6a2b",
        "data_block_ids": [
          2499,
          2500,
          2501,
          2502,
          2503,
          2504,
          2505,
          2506,
          2507,
          2508,
          2509,
          2510,
          2511,
          2512,
          2513,
          2514,
          2515,
          2516,
          2517,
          2518,
          2519,
          2520,
          2521,
          2522,
          2523,
          2524,
          2525,
          2526,
          2528,
          2529,
          2530,
          2531,
          2532,
          2533,
          2534,
          2535,
          2536,
          2537,
          2538,
          2539,
          2540,
          2541
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5_usertest.elf"
      },
      {
        "name": "ch5b_exit",
        "inode": 36,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "2482fd21b52f5259ed50a249975fcff573f671d8da9735eda7e8ac6b1d561dd9",
        "data_block_ids": [
          2542,
          2543,
          2544,
          2545,
          2546,
          2547,
          2548,
          2549,
          2550,
          2551,
          2552,
          2553,
          2554,
          2555,
          2556,
          2557,
          2558,
          2559,
          2560,
          2561,
          2562,
          2563,
          2564,
          2565,
          2566,
          2567,
          2568,
          2569,
          2571,
          2572,
          2573,
          2574,
          2575,
          2576,
          2577,
          2578,
          2579,
          2580,
          2581,
          2582,
          2583,
          2584
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5b_exit.elf"
      },
      {
        "name": "ch5b_forktest",
        "inode": 37,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "fda5e84e1b9c4411acdc78e18ac64e2e14b48f1b4ae467b74b175dff16f0a82c",
        "data_block_ids": [
          2585,
          2586,
          2587,
          2588,
          2589,
          2590,
          2591,
          2592,
          2593,
          2594,
          2595,
          2596,
          2597,
          2598,
          2599,
          2600,
          2601,
          2602,
          2603,
          2604,
          2605,
          2606,
          2607,
          2608,
          2609,
          2610,
          2611,
          2612,
          2614,
          2615,
          2616,
          2617,
          2618,
          2619,
          2620,
          2621,
          2622,
          2623,
          2624,
          2625,
          2626,
          2627
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5b_forktest.elf"
      },
      {
        "name": "ch5b_forktest2",
        "inode": 38,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "c585e28698e9b0ff9a5d1c690f3d259297d8b00aa3680e1c1d9820989b47e50a",
        "data_block_ids": [
          2628,
          2629,
          2630,
          2631,
          2632,
          2633,
          2634,
          2635,
          2636,
          2637,
          2638,
          2639,
          2640,
          2641,
          2642,
          2643,
          2644,
          2645,
          2646,
          2647,
          2648,
          2649,
          2650,
          2651,
          2652,
          2653,
          2654,
          2655,
          2657,
          2658,
          2659,
          2660,
          2661,
          2662,
          2663,
          2664,
          2665,
          2666,
          2667,
          2668,
          2669,
          2670
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5b_forktest2.elf"
      },
      {
        "name": "ch5b_forktest_simple",
        "inode": 39,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "1e6172f4f3888031b4f74d7d60640e77663eb1fc586ccc3f5a2d1c63e2887c67",
        "data_block_ids": [
          2671,
          2672,
          2673,
          2674,
          2675,
          2676,
          2677,
          2678,
          2679,
          2680,
          2681,
          2682,
          2683,
          2684,
          2685,
          2686,
          2687,
          2688,
          2689,
          2690,
          2691,
          2692,
          2693,
          2694,
          2695,
          2696,
          2697,
          2698,
          2700,
          2701,
          2702,
          2703,
          2704,
          2705,
          2706,
          2707,
          2708,
          2709,
          2710,
          2711,
          2712,
          2713
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5b_forktest_simple.elf"
      },
      {
        "name": "ch5b_forktree",
        "inode": 40,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "1b740cf14c660b8530f405ab332fed2fbe1a90aff8ec54572f18466ed0bb5cf6",
        "data_block_ids": [
          2714,
          2715,
          2716,
          2717,
          2718,
          2719,
          2720,
          2721,
          2722,
          2723,
          2724,
          2725,
          2726,
          2727,
          2728,
          2729,
          2730,
          2731,
          2732,
          2733,
          2734,
          2735,
          2736,
          2737,
          2738,
          2739,
          2740,
          2741,
          2743,
          2744,
          2745,
          2746,
          2747,
          2748,
          2749,
          2750,
          2751,
          2752,
          2753,
          2754,
          2755,
          2756
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5b_forktree.elf"
      },
      {
        "name": "ch5b_initproc",
        "inode": 41,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "d940c844f3e286a4046631b87c056983291548f499ac4eca88faf74a8c8ffade",
        "data_block_ids": [
          2757,
          2758,
          2759,
          2760,
          2761,
          2762,
          2763,
          2764,
          2765,
          2766,
          2767,
          2768,
          2769,
          2770,
          2771,
          2772,
          2773,
          2774,
          2775,
          2776,
          2777,
          2778,
          2779,
          2780,
          2781,
          2782,
          2783,
          2784,
          2786,
          2787,
          2788,
          2789,
          2790,
          2791,
          2792,
          2793,
          2794,
          2795,
          2796,
          2797,
          2798,
          2799
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5b_initproc.elf"
      },
      {
        "name": "ch5b_user_shell",
        "inode": 42,
        "size": 25456,
        "type": 0,
        "nlink": null,
        "sha256": "b30686794bb60cfc6f65d1fdd0ddcdf9cbf12e4f447f7313b5eb898069cdd166",
        "data_block_ids": [
          2800,
          2801,
          2802,
          2803,
          2804,
          2805,
          2806,
          2807,
          2808,
          2809,
          2810,
          2811,
          2812,
          2813,
          2814,
          2815,
          2816,
          2817,
          2818,
          2819,
          2820,
          2821,
          2822,
          2823,
          2824,
          2825,
          2826,
          2827,
          2829,
          2830,
          2831,
          2832,
          2833,
          2834,
          2835,
          2836,
          2837,
          2838,
          2839,
          2840,
          2841,
          2842,
          2843,
          2844,
          2845,
          2846,
          2847,
          2848,
          2849,
          2850
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5b_user_shell.elf"
      },
      {
        "name": "ch5b_usertest",
        "inode": 43,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "dd61f78d68792b30372760fca7939a2054a5b88c0ef9aaa0f8f06a5643c6bcab",
        "data_block_ids": [
          2851,
          2852,
          2853,
          2854,
          2855,
          2856,
          2857,
          2858,
          2859,
          2860,
          2861,
          2862,
          2863,
          2864,
          2865,
          2866,
          2867,
          2868,
          2869,
          2870,
          2871,
          2872,
          2873,
          2874,
          2875,
          2876,
          2877,
          2878,
          2880,
          2881,
          2882,
          2883,
          2884,
          2885,
          2886,
          2887,
          2888,
          2889,
          2890,
          2891,
          2892,
          2893
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch5b_usertest.elf"
      },
      {
        "name": "ch6_file0",
        "inode": 44,
        "size": 29552,
        "type": 0,
        "nlink": null,
        "sha256": "0290df75c57af790d739a08c3393ed17bf038c67c3a18d1b4f3bbdfaabd09541",
        "data_block_ids": [
          2894,
          2895,
          2896,
          2897,
          2898,
          2899,
          2900,
          2901,
          2902,
          2903,
          2904,
          2905,
          2906,
          2907,
          2908,
          2909,
          2910,
          2911,
          2912,
          2913,
          2914,
          2915,
          2916,
          2917,
          2918,
          2919,
          2920,
          2921,
          2923,
          2924,
          2925,
          2926,
          2927,
          2928,
          2929,
          2930,
          2931,
          2932,
          2933,
          2934,
          2935,
          2936,
          2937,
          2938,
          2939,
          2940,
          2941,
          2942,
          2943,
          2944,
          2945,
          2946,
          2947,
          2948,
          2949,
          2950,
          2951,
          2952
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch6_file0.elf"
      },
      {
        "name": "ch6_file1",
        "inode": 45,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "e04e1eba714f41999bb2a3fe1162ddac7847dcf238bfeba03ee84bea48fcad37",
        "data_block_ids": [
          2953,
          2954,
          2955,
          2956,
          2957,
          2958,
          2959,
          2960,
          2961,
          2962,
          2963,
          2964,
          2965,
          2966,
          2967,
          2968,
          2969,
          2970,
          2971,
          2972,
          2973,
          2974,
          2975,
          2976,
          2977,
          2978,
          2979,
          2980,
          2982,
          2983,
          2984,
          2985,
          2986,
          2987,
          2988,
          2989,
          2990,
          2991,
          2992,
          2993,
          2994,
          2995
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch6_file1.elf"
      },
      {
        "name": "ch6_file2",
        "inode": 46,
        "size": 29552,
        "type": 0,
        "nlink": null,
        "sha256": "41ea3973b648357de824bc137651a62482e2e2a1a2afc0ca6561aa9838542b3d",
        "data_block_ids": [
          2996,
          2997,
          2998,
          2999,
          3000,
          3001,
          3002,
          3003,
          3004,
          3005,
          3006,
          3007,
          3008,
          3009,
          3010,
          3011,
          3012,
          3013,
          3014,
          3015,
          3016,
          3017,
          3018,
          3019,
          3020,
          3021,
          3022,
          3023,
          3025,
          3026,
          3027,
          3028,
          3029,
          3030,
          3031,
          3032,
          3033,
          3034,
          3035,
          3036,
          3037,
          3038,
          3039,
          3040,
          3041,
          3042,
          3043,
          3044,
          3045,
          3046,
          3047,
          3048,
          3049,
          3050,
          3051,
          3052,
          3053,
          3054
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch6_file2.elf"
      },
      {
        "name": "ch6_file3",
        "inode": 47,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "e8863df4fa957cd7158ad010d478c6e150e4fcbdb1b59f3db9f5c1ce593f9920",
        "data_block_ids": [
          3055,
          3056,
          3057,
          3058,
          3059,
          3060,
          3061,
          3062,
          3063,
          3064,
          3065,
          3066,
          3067,
          3068,
          3069,
          3070,
          3071,
          3072,
          3073,
          3074,
          3075,
          3076,
          3077,
          3078,
          3079,
          3080,
          3081,
          3082,
          3084,
          3085,
          3086,
          3087,
          3088,
          3089,
          3090,
          3091,
          3092,
          3093,
          3094,
          3095,
          3096,
          3097
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch6_file3.elf"
      },
      {
        "name": "ch6_usertest",
        "inode": 48,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "f0e1610f542d4985961f196458edfcc2c626d7cb05e40f7b79555695cc4ab4e9",
        "data_block_ids": [
          3098,
          3099,
          3100,
          3101,
          3102,
          3103,
          3104,
          3105,
          3106,
          3107,
          3108,
          3109,
          3110,
          3111,
          3112,
          3113,
          3114,
          3115,
          3116,
          3117,
          3118,
          3119,
          3120,
          3121,
          3122,
          3123,
          3124,
          3125,
          3127,
          3128,
          3129,
          3130,
          3131,
          3132,
          3133,
          3134,
          3135,
          3136,
          3137,
          3138,
          3139,
          3140
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch6_usertest.elf"
      },
      {
        "name": "ch6b_cat",
        "inode": 49,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "465e4600fef14bfc2a9fc21a564d22d9a54371d93e4f8170ff93159b64c0df36",
        "data_block_ids": [
          3142,
          3143,
          3144,
          3145,
          3146,
          3147,
          3148,
          3149,
          3150,
          3151,
          3152,
          3153,
          3154,
          3155,
          3156,
          3157,
          3158,
          3159,
          3160,
          3161,
          3162,
          3163,
          3164,
          3165,
          3166,
          3167,
          3168,
          3169,
          3171,
          3172,
          3173,
          3174,
          3175,
          3176,
          3177,
          3178,
          3179,
          3180,
          3181,
          3182,
          3183,
          3184
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch6b_cat.elf"
      },
      {
        "name": "ch6b_filetest_simple",
        "inode": 50,
        "size": 29552,
        "type": 0,
        "nlink": null,
        "sha256": "af7d3d4378da95526a3946ca961f82f3b000b564fbf03fd6da1d9c26a9cf723a",
        "data_block_ids": [
          3185,
          3186,
          3187,
          3188,
          3189,
          3190,
          3191,
          3192,
          3193,
          3194,
          3195,
          3196,
          3197,
          3198,
          3199,
          3200,
          3201,
          3202,
          3203,
          3204,
          3205,
          3206,
          3207,
          3208,
          3209,
          3210,
          3211,
          3212,
          3214,
          3215,
          3216,
          3217,
          3218,
          3219,
          3220,
          3221,
          3222,
          3223,
          3224,
          3225,
          3226,
          3227,
          3228,
          3229,
          3230,
          3231,
          3232,
          3233,
          3234,
          3235,
          3236,
          3237,
          3238,
          3239,
          3240,
          3241,
          3242,
          3243
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch6b_filetest_simple.elf"
      },
      {
        "name": "ch6b_initproc",
        "inode": 51,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "57a8d247dcb797547872f9a035cb9cb98910316faf873084cecc9e33d016fac5",
        "data_block_ids": [
          3244,
          3245,
          3246,
          3247,
          3248,
          3249,
          3250,
          3251,
          3252,
          3253,
          3254,
          3255,
          3256,
          3257,
          3258,
          3259,
          3260,
          3261,
          3262,
          3263,
          3264,
          3265,
          3266,
          3267,
          3268,
          3269,
          3270,
          3271,
          3273,
          3274,
          3275,
          3276,
          3277,
          3278,
          3279,
          3280,
          3281,
          3282,
          3283,
          3284,
          3285,
          3286
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch6b_initproc.elf"
      },
      {
        "name": "ch6b_user_shell",
        "inode": 52,
        "size": 25456,
        "type": 0,
        "nlink": null,
        "sha256": "d571bcc5111d48ed3649dd23ce99859564396491215cd46d337ae4663dfef547",
        "data_block_ids": [
          3287,
          3288,
          3289,
          3290,
          3291,
          3292,
          3293,
          3294,
          3295,
          3296,
          3297,
          3298,
          3299,
          3300,
          3301,
          3302,
          3303,
          3304,
          3305,
          3306,
          3307,
          3308,
          3309,
          3310,
          3311,
          3312,
          3313,
          3314,
          3316,
          3317,
          3318,
          3319,
          3320,
          3321,
          3322,
          3323,
          3324,
          3325,
          3326,
          3327,
          3328,
          3329,
          3330,
          3331,
          3332,
          3333,
          3334,
          3335,
          3336,
          3337
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch6b_user_shell.elf"
      },
      {
        "name": "ch6b_usertest",
        "inode": 53,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "b88b3def310b0060970fbd7d9aeb85bc19bac4fcaab2d8238d5b739cc496fe30",
        "data_block_ids": [
          3338,
          3339,
          3340,
          3341,
          3342,
          3343,
          3344,
          3345,
          3346,
          3347,
          3348,
          3349,
          3350,
          3351,
          3352,
          3353,
          3354,
          3355,
          3356,
          3357,
          3358,
          3359,
          3360,
          3361,
          3362,
          3363,
          3364,
          3365,
          3367,
          3368,
          3369,
          3370,
          3371,
          3372,
          3373,
          3374,
          3375,
          3376,
          3377,
          3378,
          3379,
          3380
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch6b_usertest.elf"
      },
      {
        "name": "ch7_usertest",
        "inode": 54,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "a3f9ad8d2f11bd4c85d95ad51235f29621c84a98f623d820a9522fd3cc50bac3",
        "data_block_ids": [
          3381,
          3382,
          3383,
          3384,
          3385,
          3386,
          3387,
          3388,
          3389,
          3390,
          3391,
          3392,
          3393,
          3394,
          3395,
          3396,
          3397,
          3398,
          3399,
          3400,
          3401,
          3402,
          3403,
          3404,
          3405,
          3406,
          3407,
          3408,
          3410,
          3411,
          3412,
          3413,
          3414,
          3415,
          3416,
          3417,
          3418,
          3419,
          3420,
          3421,
          3422,
          3423
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7_usertest.elf"
      },
      {
        "name": "ch7b_cat",
        "inode": 55,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "7bf76f975eeb7cc66e9bf8c82deb1f197688df3004cce9decc6db0f967905e04",
        "data_block_ids": [
          3424,
          3425,
          3426,
          3427,
          3428,
          3429,
          3430,
          3431,
          3432,
          3433,
          3434,
          3435,
          3436,
          3437,
          3438,
          3439,
          3440,
          3441,
          3442,
          3443,
          3444,
          3445,
          3446,
          3447,
          3448,
          3449,
          3450,
          3451,
          3453,
          3454,
          3455,
          3456,
          3457,
          3458,
          3459,
          3460,
          3461,
          3462,
          3463,
          3464,
          3465,
          3466
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7b_cat.elf"
      },
      {
        "name": "ch7b_initproc",
        "inode": 56,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "ac025ed8d1f27455f7d4e1b25f10d0ac559a7b8ea53046969137594f530cfe48",
        "data_block_ids": [
          3467,
          3468,
          3469,
          3470,
          3471,
          3472,
          3473,
          3474,
          3475,
          3476,
          3477,
          3478,
          3479,
          3480,
          3481,
          3482,
          3483,
          3484,
          3485,
          3486,
          3487,
          3488,
          3489,
          3490,
          3491,
          3492,
          3493,
          3494,
          3496,
          3497,
          3498,
          3499,
          3500,
          3501,
          3502,
          3503,
          3504,
          3505,
          3506,
          3507,
          3508,
          3509
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7b_initproc.elf"
      },
      {
        "name": "ch7b_pipe_large_test",
        "inode": 57,
        "size": 25456,
        "type": 0,
        "nlink": null,
        "sha256": "dcc7a0bd191704a885f5b0d1d84d36f986444e4241e21875392d8dca4bda9168",
        "data_block_ids": [
          3510,
          3511,
          3512,
          3513,
          3514,
          3515,
          3516,
          3517,
          3518,
          3519,
          3520,
          3521,
          3522,
          3523,
          3524,
          3525,
          3526,
          3527,
          3528,
          3529,
          3530,
          3531,
          3532,
          3533,
          3534,
          3535,
          3536,
          3537,
          3539,
          3540,
          3541,
          3542,
          3543,
          3544,
          3545,
          3546,
          3547,
          3548,
          3549,
          3550,
          3551,
          3552,
          3553,
          3554,
          3555,
          3556,
          3557,
          3558,
          3559,
          3560
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7b_pipe_large_test.elf"
      },
      {
        "name": "ch7b_pipetest",
        "inode": 58,
        "size": 29552,
        "type": 0,
        "nlink": null,
        "sha256": "7730472028dbf477d49150deac2480f4523a9dce8f1b1adc302af1177d88c8bc",
        "data_block_ids": [
          3561,
          3562,
          3563,
          3564,
          3565,
          3566,
          3567,
          3568,
          3569,
          3570,
          3571,
          3572,
          3573,
          3574,
          3575,
          3576,
          3577,
          3578,
          3579,
          3580,
          3581,
          3582,
          3583,
          3584,
          3585,
          3586,
          3587,
          3588,
          3590,
          3591,
          3592,
          3593,
          3594,
          3595,
          3596,
          3597,
          3598,
          3599,
          3600,
          3601,
          3602,
          3603,
          3604,
          3605,
          3606,
          3607,
          3608,
          3609,
          3610,
          3611,
          3612,
          3613,
          3614,
          3615,
          3616,
          3617,
          3618,
          3619
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7b_pipetest.elf"
      },
      {
        "name": "ch7b_run_pipe_test",
        "inode": 59,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "a8241a44e303d3352e003cc4482bca1a834b431c5f4660412cf41c294321821c",
        "data_block_ids": [
          3620,
          3621,
          3622,
          3623,
          3624,
          3625,
          3626,
          3627,
          3628,
          3629,
          3630,
          3631,
          3632,
          3633,
          3634,
          3635,
          3636,
          3637,
          3638,
          3639,
          3640,
          3641,
          3642,
          3643,
          3644,
          3645,
          3646,
          3647,
          3649,
          3650,
          3651,
          3652,
          3653,
          3654,
          3655,
          3656,
          3657,
          3658,
          3659,
          3660,
          3661,
          3662
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7b_run_pipe_test.elf"
      },
      {
        "name": "ch7b_sig_simple",
        "inode": 60,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "ecab07e8c4dacb99e7bcb4cb819fd9c153941522740bd444f5613f6fde8a0d3b",
        "data_block_ids": [
          3663,
          3664,
          3665,
          3666,
          3667,
          3668,
          3669,
          3670,
          3671,
          3672,
          3673,
          3674,
          3675,
          3676,
          3677,
          3678,
          3679,
          3680,
          3681,
          3682,
          3683,
          3684,
          3685,
          3686,
          3687,
          3688,
          3689,
          3690,
          3692,
          3693,
          3694,
          3695,
          3696,
          3697,
          3698,
          3699,
          3700,
          3701,
          3702,
          3703,
          3704,
          3705
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7b_sig_simple.elf"
      },
      {
        "name": "ch7b_sig_simple2",
        "inode": 61,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "f380d1331cfda2a78312d565d0c89cbc46a7b354bcab0a70c13be6d663886fe9",
        "data_block_ids": [
          3706,
          3707,
          3708,
          3709,
          3710,
          3711,
          3712,
          3713,
          3714,
          3715,
          3716,
          3717,
          3718,
          3719,
          3720,
          3721,
          3722,
          3723,
          3724,
          3725,
          3726,
          3727,
          3728,
          3729,
          3730,
          3731,
          3732,
          3733,
          3735,
          3736,
          3737,
          3738,
          3739,
          3740,
          3741,
          3742,
          3743,
          3744,
          3745,
          3746,
          3747,
          3748
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7b_sig_simple2.elf"
      },
      {
        "name": "ch7b_sig_tests",
        "inode": 62,
        "size": 25456,
        "type": 0,
        "nlink": null,
        "sha256": "f316232098e45fc52dbd3833af04fd52c6c3d63713c7470a483a12b71a9733dd",
        "data_block_ids": [
          3749,
          3750,
          3751,
          3752,
          3753,
          3754,
          3755,
          3756,
          3757,
          3758,
          3759,
          3760,
          3761,
          3762,
          3763,
          3764,
          3765,
          3766,
          3767,
          3768,
          3769,
          3770,
          3771,
          3772,
          3773,
          3774,
          3775,
          3776,
          3778,
          3779,
          3780,
          3781,
          3782,
          3783,
          3784,
          3785,
          3786,
          3787,
          3788,
          3789,
          3790,
          3791,
          3792,
          3793,
          3794,
          3795,
          3796,
          3797,
          3798,
          3799
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7b_sig_tests.elf"
      },
      {
        "name": "ch7b_user_shell",
        "inode": 63,
        "size": 25488,
        "type": 0,
        "nlink": null,
        "sha256": "ee9ef2338cc2f07c6c02b84829d816c2ba897d90c6122bb518aafd6917641e34",
        "data_block_ids": [
          3800,
          3801,
          3802,
          3803,
          3804,
          3805,
          3806,
          3807,
          3808,
          3809,
          3810,
          3811,
          3812,
          3813,
          3814,
          3815,
          3816,
          3817,
          3818,
          3819,
          3820,
          3821,
          3822,
          3823,
          3824,
          3825,
          3826,
          3827,
          3829,
          3830,
          3831,
          3832,
          3833,
          3834,
          3835,
          3836,
          3837,
          3838,
          3839,
          3840,
          3841,
          3842,
          3843,
          3844,
          3845,
          3846,
          3847,
          3848,
          3849,
          3850
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7b_user_shell.elf"
      },
      {
        "name": "ch7b_usertest",
        "inode": 64,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "c5fa7bb1c83886c962577980afd8639d494aec9544326d9ad27bb29cbf9830b7",
        "data_block_ids": [
          3851,
          3852,
          3853,
          3854,
          3855,
          3856,
          3857,
          3858,
          3859,
          3860,
          3861,
          3862,
          3863,
          3864,
          3865,
          3866,
          3867,
          3868,
          3869,
          3870,
          3871,
          3872,
          3873,
          3874,
          3875,
          3876,
          3877,
          3878,
          3880,
          3881,
          3882,
          3883,
          3884,
          3885,
          3886,
          3887,
          3888,
          3889,
          3890,
          3891,
          3892,
          3893
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7b_usertest.elf"
      },
      {
        "name": "ch7b_yield",
        "inode": 65,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "4212ed5b5584d5d36127bc43afa3dbb56b8163f90ee2306e18795b3bb4dc42dc",
        "data_block_ids": [
          3895,
          3896,
          3897,
          3898,
          3899,
          3900,
          3901,
          3902,
          3903,
          3904,
          3905,
          3906,
          3907,
          3908,
          3909,
          3910,
          3911,
          3912,
          3913,
          3914,
          3915,
          3916,
          3917,
          3918,
          3919,
          3920,
          3921,
          3922,
          3924,
          3925,
          3926,
          3927,
          3928,
          3929,
          3930,
          3931,
          3932,
          3933,
          3934,
          3935,
          3936,
          3937
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch7b_yield.elf"
      },
      {
        "name": "ch8_deadlock_mutex1",
        "inode": 66,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "2d922dfe0655630ce9099323798416c1d2696b330fafb2817d67838033c9f360",
        "data_block_ids": [
          3938,
          3939,
          3940,
          3941,
          3942,
          3943,
          3944,
          3945,
          3946,
          3947,
          3948,
          3949,
          3950,
          3951,
          3952,
          3953,
          3954,
          3955,
          3956,
          3957,
          3958,
          3959,
          3960,
          3961,
          3962,
          3963,
          3964,
          3965,
          3967,
          3968,
          3969,
          3970,
          3971,
          3972,
          3973,
          3974,
          3975,
          3976,
          3977,
          3978,
          3979,
          3980
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8_deadlock_mutex1.elf"
      },
      {
        "name": "ch8_deadlock_sem1",
        "inode": 67,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "9a33a5392059580db9a0fede08311c39270ab8ecd6e4f8f8dc4fc98725e178cd",
        "data_block_ids": [
          3981,
          3982,
          3983,
          3984,
          3985,
          3986,
          3987,
          3988,
          3989,
          3990,
          3991,
          3992,
          3993,
          3994,
          3995,
          3996,
          3997,
          3998,
          3999,
          4000,
          4001,
          4002,
          4003,
          4004,
          4005,
          4006,
          4007,
          4008,
          4010,
          4011,
          4012,
          4013,
          4014,
          4015,
          4016,
          4017,
          4018,
          4019,
          4020,
          4021,
          4022,
          4023
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8_deadlock_sem1.elf"
      },
      {
        "name": "ch8_deadlock_sem2",
        "inode": 68,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "f540804a12b81772a40eecfa6c5b4821ea40e8765370c96ac05060ff95482dcd",
        "data_block_ids": [
          4024,
          4025,
          4026,
          4027,
          4028,
          4029,
          4030,
          4031,
          4032,
          4033,
          4034,
          4035,
          4036,
          4037,
          4038,
          4039,
          4040,
          4041,
          4042,
          4043,
          4044,
          4045,
          4046,
          4047,
          4048,
          4049,
          4050,
          4051,
          4053,
          4054,
          4055,
          4056,
          4057,
          4058,
          4059,
          4060,
          4061,
          4062,
          4063,
          4064,
          4065,
          4066
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8_deadlock_sem2.elf"
      },
      {
        "name": "ch8_usertest",
        "inode": 69,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "ea0a6e04cccbf539f9011d8f668af1adb0e27d6bb7f02cf6b674bc9906651d1b",
        "data_block_ids": [
          4067,
          4068,
          4069,
          4070,
          4071,
          4072,
          4073,
          4074,
          4075,
          4076,
          4077,
          4078,
          4079,
          4080,
          4081,
          4082,
          4083,
          4084,
          4085,
          4086,
          4087,
          4088,
          4089,
          4090,
          4091,
          4092,
          4093,
          4094,
          4096,
          4097,
          4098,
          4099,
          4100,
          4101,
          4102,
          4103,
          4104,
          4105,
          4106,
          4107,
          4108,
          4109
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8_usertest.elf"
      },
      {
        "name": "ch8b_initproc",
        "inode": 70,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "ac025ed8d1f27455f7d4e1b25f10d0ac559a7b8ea53046969137594f530cfe48",
        "data_block_ids": [
          4110,
          4111,
          4112,
          4113,
          4114,
          4115,
          4116,
          4117,
          4118,
          4119,
          4120,
          4121,
          4122,
          4123,
          4124,
          4125,
          4126,
          4127,
          4128,
          4129,
          4130,
          4131,
          4132,
          4133,
          4134,
          4135,
          4136,
          4137,
          4139,
          4140,
          4141,
          4142,
          4143,
          4144,
          4145,
          4146,
          4147,
          4148,
          4149,
          4150,
          4151,
          4152
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_initproc.elf"
      },
      {
        "name": "ch8b_mpsc_sem",
        "inode": 71,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "5dee7988b750fab280ce4011824495fff5d12d67de340bd8da3952a5a6f72ac0",
        "data_block_ids": [
          4153,
          4154,
          4155,
          4156,
          4157,
          4158,
          4159,
          4160,
          4161,
          4162,
          4163,
          4164,
          4165,
          4166,
          4167,
          4168,
          4169,
          4170,
          4171,
          4172,
          4173,
          4174,
          4175,
          4176,
          4177,
          4178,
          4179,
          4180,
          4182,
          4183,
          4184,
          4185,
          4186,
          4187,
          4188,
          4189,
          4190,
          4191,
          4192,
          4193,
          4194,
          4195
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_mpsc_sem.elf"
      },
      {
        "name": "ch8b_phil_din_mutex",
        "inode": 72,
        "size": 25456,
        "type": 0,
        "nlink": null,
        "sha256": "61fcbb783a44bb966f8e5e7405f0eec9706b5f5cdd68c3bd6424feaab166b5d5",
        "data_block_ids": [
          4196,
          4197,
          4198,
          4199,
          4200,
          4201,
          4202,
          4203,
          4204,
          4205,
          4206,
          4207,
          4208,
          4209,
          4210,
          4211,
          4212,
          4213,
          4214,
          4215,
          4216,
          4217,
          4218,
          4219,
          4220,
          4221,
          4222,
          4223,
          4225,
          4226,
          4227,
          4228,
          4229,
          4230,
          4231,
          4232,
          4233,
          4234,
          4235,
          4236,
          4237,
          4238,
          4239,
          4240,
          4241,
          4242,
          4243,
          4244,
          4245,
          4246
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_phil_din_mutex.elf"
      },
      {
        "name": "ch8b_race_adder",
        "inode": 73,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "1867f3b063e58441cccf63cdd3a0b03e17ebbe6e633cd9b6d581b091894b73aa",
        "data_block_ids": [
          4247,
          4248,
          4249,
          4250,
          4251,
          4252,
          4253,
          4254,
          4255,
          4256,
          4257,
          4258,
          4259,
          4260,
          4261,
          4262,
          4263,
          4264,
          4265,
          4266,
          4267,
          4268,
          4269,
          4270,
          4271,
          4272,
          4273,
          4274,
          4276,
          4277,
          4278,
          4279,
          4280,
          4281,
          4282,
          4283,
          4284,
          4285,
          4286,
          4287,
          4288,
          4289
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_race_adder.elf"
      },
      {
        "name": "ch8b_race_adder_atomic",
        "inode": 74,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "16edf94cc41235b6ddb3242878386003c6d6f73380bd1eb759dee0e2812326ab",
        "data_block_ids": [
          4290,
          4291,
          4292,
          4293,
          4294,
          4295,
          4296,
          4297,
          4298,
          4299,
          4300,
          4301,
          4302,
          4303,
          4304,
          4305,
          4306,
          4307,
          4308,
          4309,
          4310,
          4311,
          4312,
          4313,
          4314,
          4315,
          4316,
          4317,
          4319,
          4320,
          4321,
          4322,
          4323,
          4324,
          4325,
          4326,
          4327,
          4328,
          4329,
          4330,
          4331,
          4332
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_race_adder_atomic.elf"
      },
      {
        "name": "ch8b_race_adder_loop",
        "inode": 75,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "d14e00d2decdd2b2caed7f5be57812fb6a44166c5e409c3e01039b34032bb468",
        "data_block_ids": [
          4333,
          4334,
          4335,
          4336,
          4337,
          4338,
          4339,
          4340,
          4341,
          4342,
          4343,
          4344,
          4345,
          4346,
          4347,
          4348,
          4349,
          4350,
          4351,
          4352,
          4353,
          4354,
          4355,
          4356,
          4357,
          4358,
          4359,
          4360,
          4362,
          4363,
          4364,
          4365,
          4366,
          4367,
          4368,
          4369,
          4370,
          4371,
          4372,
          4373,
          4374,
          4375
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_race_adder_loop.elf"
      },
      {
        "name": "ch8b_race_adder_mutex_spin",
        "inode": 76,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "68940f4e4bfc691f7e9cf61ed4f212d9b48bd47fc7ea9278966d2972b0183970",
        "data_block_ids": [
          4376,
          4377,
          4378,
          4379,
          4380,
          4381,
          4382,
          4383,
          4384,
          4385,
          4386,
          4387,
          4388,
          4389,
          4390,
          4391,
          4392,
          4393,
          4394,
          4395,
          4396,
          4397,
          4398,
          4399,
          4400,
          4401,
          4402,
          4403,
          4405,
          4406,
          4407,
          4408,
          4409,
          4410,
          4411,
          4412,
          4413,
          4414,
          4415,
          4416,
          4417,
          4418
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_race_adder_mutex_spin.elf"
      },
      {
        "name": "ch8b_stackful_coroutine",
        "inode": 77,
        "size": 25464,
        "type": 0,
        "nlink": null,
        "sha256": "5617327fffb0f4b88cded1f6b62a5a56b20529a82715bbfd39804e2471562629",
        "data_block_ids": [
          4419,
          4420,
          4421,
          4422,
          4423,
          4424,
          4425,
          4426,
          4427,
          4428,
          4429,
          4430,
          4431,
          4432,
          4433,
          4434,
          4435,
          4436,
          4437,
          4438,
          4439,
          4440,
          4441,
          4442,
          4443,
          4444,
          4445,
          4446,
          4448,
          4449,
          4450,
          4451,
          4452,
          4453,
          4454,
          4455,
          4456,
          4457,
          4458,
          4459,
          4460,
          4461,
          4462,
          4463,
          4464,
          4465,
          4466,
          4467,
          4468,
          4469
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_stackful_coroutine.elf"
      },
      {
        "name": "ch8b_stackless_coroutine",
        "inode": 78,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "05bcc5cf9e1387c55e54d6fd178abc2a8535cdc291551738e2cef70be59d67b1",
        "data_block_ids": [
          4470,
          4471,
          4472,
          4473,
          4474,
          4475,
          4476,
          4477,
          4478,
          4479,
          4480,
          4481,
          4482,
          4483,
          4484,
          4485,
          4486,
          4487,
          4488,
          4489,
          4490,
          4491,
          4492,
          4493,
          4494,
          4495,
          4496,
          4497,
          4499,
          4500,
          4501,
          4502,
          4503,
          4504,
          4505,
          4506,
          4507,
          4508,
          4509,
          4510,
          4511,
          4512
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_stackless_coroutine.elf"
      },
      {
        "name": "ch8b_sync_sem",
        "inode": 79,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "757bd085729e3ccb69b010ca98727c818514cdc63261e6e1c9b84d7bc6ac4c9b",
        "data_block_ids": [
          4513,
          4514,
          4515,
          4516,
          4517,
          4518,
          4519,
          4520,
          4521,
          4522,
          4523,
          4524,
          4525,
          4526,
          4527,
          4528,
          4529,
          4530,
          4531,
          4532,
          4533,
          4534,
          4535,
          4536,
          4537,
          4538,
          4539,
          4540,
          4542,
          4543,
          4544,
          4545,
          4546,
          4547,
          4548,
          4549,
          4550,
          4551,
          4552,
          4553,
          4554,
          4555
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_sync_sem.elf"
      },
      {
        "name": "ch8b_test_condvar",
        "inode": 80,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "be8450eeae2487e221df661980649a3d2ad3f6fe50a6a1dedfbd2147320097a8",
        "data_block_ids": [
          4556,
          4557,
          4558,
          4559,
          4560,
          4561,
          4562,
          4563,
          4564,
          4565,
          4566,
          4567,
          4568,
          4569,
          4570,
          4571,
          4572,
          4573,
          4574,
          4575,
          4576,
          4577,
          4578,
          4579,
          4580,
          4581,
          4582,
          4583,
          4585,
          4586,
          4587,
          4588,
          4589,
          4590,
          4591,
          4592,
          4593,
          4594,
          4595,
          4596,
          4597,
          4598
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_test_condvar.elf"
      },
      {
        "name": "ch8b_threads",
        "inode": 81,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "fa66ffac8fe78fdbb023e0f2ff0ea1f30421a066be71139134b55cef97b10b42",
        "data_block_ids": [
          4600,
          4601,
          4602,
          4603,
          4604,
          4605,
          4606,
          4607,
          4608,
          4609,
          4610,
          4611,
          4612,
          4613,
          4614,
          4615,
          4616,
          4617,
          4618,
          4619,
          4620,
          4621,
          4622,
          4623,
          4624,
          4625,
          4626,
          4627,
          4629,
          4630,
          4631,
          4632,
          4633,
          4634,
          4635,
          4636,
          4637,
          4638,
          4639,
          4640,
          4641,
          4642
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_threads.elf"
      },
      {
        "name": "ch8b_threads_arg",
        "inode": 82,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "2395d1c05e779ab12104bc5626fad2f30bed5edfefb1c31c408bcc6ddbf5650a",
        "data_block_ids": [
          4643,
          4644,
          4645,
          4646,
          4647,
          4648,
          4649,
          4650,
          4651,
          4652,
          4653,
          4654,
          4655,
          4656,
          4657,
          4658,
          4659,
          4660,
          4661,
          4662,
          4663,
          4664,
          4665,
          4666,
          4667,
          4668,
          4669,
          4670,
          4672,
          4673,
          4674,
          4675,
          4676,
          4677,
          4678,
          4679,
          4680,
          4681,
          4682,
          4683,
          4684,
          4685
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_threads_arg.elf"
      },
      {
        "name": "ch8b_user_shell",
        "inode": 83,
        "size": 29592,
        "type": 0,
        "nlink": null,
        "sha256": "0afe033b96411790be41074ce6a0fc6988615e7e78cf848088e4c7508d72c911",
        "data_block_ids": [
          4686,
          4687,
          4688,
          4689,
          4690,
          4691,
          4692,
          4693,
          4694,
          4695,
          4696,
          4697,
          4698,
          4699,
          4700,
          4701,
          4702,
          4703,
          4704,
          4705,
          4706,
          4707,
          4708,
          4709,
          4710,
          4711,
          4712,
          4713,
          4715,
          4716,
          4717,
          4718,
          4719,
          4720,
          4721,
          4722,
          4723,
          4724,
          4725,
          4726,
          4727,
          4728,
          4729,
          4730,
          4731,
          4732,
          4733,
          4734,
          4735,
          4736,
          4737,
          4738,
          4739,
          4740,
          4741,
          4742,
          4743,
          4744
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_user_shell.elf"
      },
      {
        "name": "ch8b_usertest",
        "inode": 84,
        "size": 21360,
        "type": 0,
        "nlink": null,
        "sha256": "bf15716b7539f1ca80271fc69f3c569f0852373ff413a854af03529bd0168552",
        "data_block_ids": [
          4745,
          4746,
          4747,
          4748,
          4749,
          4750,
          4751,
          4752,
          4753,
          4754,
          4755,
          4756,
          4757,
          4758,
          4759,
          4760,
          4761,
          4762,
          4763,
          4764,
          4765,
          4766,
          4767,
          4768,
          4769,
          4770,
          4771,
          4772,
          4774,
          4775,
          4776,
          4777,
          4778,
          4779,
          4780,
          4781,
          4782,
          4783,
          4784,
          4785,
          4786,
          4787
        ],
        "compiled_payload": "/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3/user/build/elf/ch8b_usertest.elf"
      }
    ]
  },
  "filesystem_after": {
    "sha256": "ea4bfc84a99fc7a11883ecaa1e761cac84e1253ac68ae8e71f762d5d1ddcc63f",
    "added_files": [
      "filea"
    ]
  },
  "observation_check": {
    "command": [
      "/home/joseph/nf/venv313/bin/python",
      "/home/joseph/nf/education-2026A-20260927/inspect-ch8-raw-v2.py",
      "rcore-2026A-ch8-basic-observed-v3"
    ],
    "driver_sha256": "5cbabb1c8d5cbc4b190f419d20f52d66c8f28d133814b5ceabe8cce20996cee1"
  },
  "observations": {
    "schema": "nodefusion.thread-observations/1",
    "run": "rcore-2026A-ch8-basic-observed-v3",
    "driver_sha256": "5cbabb1c8d5cbc4b190f419d20f52d66c8f28d133814b5ceabe8cce20996cee1",
    "inputs": {
      "trace.nfb": "622803b5b083af1421b98534f89d27342a8eec662d96d1c7066bc641fc2d1efa",
      "watchlist.json": "2c6c3bcbae436cdd6e5d2c946de47503ab7ed2cd4d44367eb40cb20d7cfaa8b9",
      "manifest.json": "cfdff3b0993178c3267e57e3a0a98c600c17e5761aa5c66b1253dc3a02057422"
    },
    "preflight_sha256": "471f70370c2ce15dae2feee96b6bcca93ec05bb52e7b8f16cf09a8e50433399b",
    "kernel_elf_sha256": "8a4623db77a9e9d393e7513fe4b502e93e1a43f9f67e75cdca849aba248a382b",
    "record_counts": {
      "meta": 23,
      "vcpu": 1,
      "return": 32007907,
      "sample": 8517,
      "discon": 3758024,
      "snapmark": 584,
      "rampage": 49004,
      "watchpc": 2798307,
      "nftrace": 26642,
      "end": 1
    },
    "end": {
      "total_insns": 1703529656,
      "watch_drops": 0
    },
    "function_counts": {
      "rust_main": 1,
      "memset": 3425,
      "_ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 3425,
      "_ZN2os7console5print17h76082438996b95aaE": 1,
      "_ZN4core3fmt5write17h49a560cace6c89d2E": 152567,
      "_ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h29f7700aa99cb934E.llvm.4190863479722300543": 684231,
      "_ZN2os7logging4init17h43a4b1cf83580136E": 1,
      "_ZN3log10set_logger17h2e922c1b310ebd70E": 1,
      "init": 1,
      "init_heap": 1,
      "_ZN22buddy_system_allocator4Heap4init17h47bfef144f322583E": 1,
      "init_frame_allocator": 1,
      "_ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h0a023521ce53713fE.llvm.6040992934245635117": 1,
      "nftrace_commit_point": 26642,
      "_ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h7d4291c6a86a6a27E.llvm.6040992934245635117": 1,
      "new_kernel": 1,
      "PageTable::new": 89,
      "frame_alloc": 1889,
      "alloc": 3507,
      "_ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 5229,
      "_ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 5229,
      "map": 33725,
      "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h335587fb241adf1bE": 380,
      "_ZN5alloc7raw_vec11finish_grow17h2f38419a86fe04d9E.llvm.10237508459952846522": 1609,
      "realloc": 508,
      "memcpy": 5329,
      "_ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 5329,
      "_ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 5147,
      "_ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 5147,
      "_ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 76021,
      "_ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 76021,
      "_ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17h6a8c331078677d7aE.llvm.2057350605574355411": 76021,
      "_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 76021,
      "_ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 151667,
      "_ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 151675,
      "_ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 151675,
      "_ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 76021,
      "_ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 76571,
      "_ZN4core3fmt5Write10write_char17hce1d0d5a3be5c61bE.llvm.4190863479722300543": 13,
      "_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h28c07ce205a13d86E": 76021,
      "_ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 76021,
      "_ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17hc86b5565edb93905E": 8,
      "push": 621,
      "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hede2f442620291feE": 191,
      "remap_test": 1,
      "list_apps": 1,
      "_ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h150f5133d22cd268E.llvm.6040992934245635117": 1,
      "_ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h02c0071edb2656e8E.llvm.6040992934245635117": 1,
      "_ZN14virtio_drivers3blk18VirtIOBlk$LT$H$GT$3new17hd0994094e238c41aE": 1,
      "_ZN14virtio_drivers6header12VirtIOHeader10begin_init17h795d65a8d0af631dE": 1,
      "_ZN14virtio_drivers6header12VirtIOHeader20read_device_features17hefc0f27940cdd1c5E": 1,
      "_ZN68_$LT$virtio_drivers..blk..BlkFeature$u20$as$u20$core..fmt..Debug$GT$3fmt17haa2677946c1fde60E": 1,
      "_ZN4core3fmt9Formatter9write_str17h181bd84b330b3504E": 51,
      "_ZN14virtio_drivers6header12VirtIOHeader21write_driver_features17hcc4876566dfc1ed3E": 1,
      "_ZN50_$LT$$RF$mut$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hcd5944d5ff9c921eE": 1,
      "_ZN4core3fmt9Formatter26debug_struct_fields_finish17h8cadbb2c8dec12feE": 1,
      "_ZN4core3fmt8builders11DebugStruct5field17h6ad11fbdee0221d3E": 11,
      "_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h9537dceab56d2f80E": 11,
      "_ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h58d44d85024ee7efE": 1,
      "_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h7b601b839df38242E": 11,
      "_ZN4core3fmt8builders10DebugTuple5field17h162956c99153b8a6E": 11,
      "_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf2692f804825f417E": 1,
      "_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h83de4ff3c495723bE": 75636,
      "_ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17ha1e140568d2e771bE": 3,
      "_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h70b4ea4648a50a65E": 4,
      "_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4e8d7a453206e77eE": 4,
      "_ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h583ebf9eb72f2b5fE": 2,
      "_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf13e6f2a4b087de8E": 2,
      "_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u16$GT$3fmt17h85fdf36f0c7ec4e6E": 2,
      "_ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h15eb1c3d4a808e05E": 4,
      "_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h272baaea76a4c063E": 4,
      "_ZN4core3fmt3num3imp51_$LT$impl$u20$core..fmt..Display$u20$for$u20$u8$GT$3fmt17hadfe9ae40f4f8fc6E": 4,
      "_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hee1d685352b051b7E": 1,
      "_ZN14virtio_drivers5queue18VirtQueue$LT$H$GT$3new17h7c5cf7b80638d7f9E": 1,
      "_ZN14virtio_drivers6header12VirtIOHeader10queue_used17h5b6678026a3fda0fE": 1,
      "_ZN14virtio_drivers6header12VirtIOHeader14max_queue_size17hbb211c5b2227154fE": 1,
      "_ZN14virtio_drivers5queue15VirtQueueLayout3new17h7aaf6b4f08dcf027E": 1,
      "dma_alloc": 1,
      "_ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h24eedd7dae424938E.llvm.6040992934245635117": 2,
      "_ZN14virtio_drivers6header12VirtIOHeader9queue_set17hbe60585434592044E": 1,
      "_ZN14virtio_drivers6header12VirtIOHeader11finish_init17hae5b7dc3a0dc2cfcE": 1,
      "open": 1,
      "_ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h80e33ab45403a6a6E.llvm.11230785868374640620": 1,
      "get_block_cache": 3969,
      "__rust_alloc_zeroed": 1179,
      "alloc_zeroed": 1214,
      "read_block": 1179,
      "VirtIOBlk<H>::read_block": 1179,
      "_ZN14virtio_drivers5queue18VirtQueue$LT$H$GT$3add17h4f2ee69aa36c0d88E": 1186,
      "virt_to_phys": 3558,
      "_ZN14virtio_drivers6header12VirtIOHeader6notify17hdbf2aa8e4d952112E": 1186,
      "_ZN14virtio_drivers5queue18VirtQueue$LT$H$GT$8pop_used17hfc65a0b96b7a0919E": 1186,
      "__rust_alloc": 1293,
      "_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4grow17hf6c65aa2ea0c3527E.llvm.11230785868374640620": 3,
      "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h9baa4c6c3f7fd615E": 3,
      "_ZN5alloc7raw_vec11finish_grow17h1c14e794b93d472cE": 10,
      "root_inode": 1,
      "ls": 1,
      "DiskInode::read_at": 2547,
      "get_block_id": 2525,
      "name": 1507,
      "_ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 1947,
      "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h0b0709c0f2fc9180E": 6,
      "__rust_realloc": 7,
      "_ZN60_$LT$alloc..string..String$u20$as$u20$core..fmt..Display$GT$3fmt17habcb84d1216ded9bE": 84,
      "_ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 550,
      "dealloc": 4639,
      "add_initproc": 1,
      "_ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h838f173c4d3dfe02E.llvm.6040992934245635117": 1,
      "open_file": 26,
      "_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h50f658cd4efd4b33E": 466,
      "OpenFlags::fmt": 26,
      "find": 26,
      "find_inode_id": 27,
      "memcmp": 109,
      "_ZN17compiler_builtins3mem6memcmp17he7310feea8ae4946E": 109,
      "read_all": 23,
      "read_at": 1040,
      "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hc589b1cbc7da6827E": 161,
      "_ZN98_$LT$alloc..collections..vec_deque..drain..Drain$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h5303d25be4d89695E": 1163,
      "_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h05c9317fb0d98ae9E": 1163,
      "__rust_dealloc": 2327,
      "_ZN169_$LT$$LT$alloc..collections..vec_deque..drain..Drain$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop27join_head_and_tail_wrapping17hb615e667bd357b4fE": 696,
      "_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9wrap_copy17hbca5ec0e3ff07ce2E": 696,
      "memmove": 2219,
      "_ZN17compiler_builtins3mem7memmove17h6641c454cd41b91bE": 2219,
      "ProcessControlBlock::new": 1,
      "from_elf": 23,
      "_ZN8xmas_elf7ElfFile3new17h20f397223943fbdaE": 23,
      "_ZN8xmas_elf7ElfFile14program_header17h33fe96bc4d1e97faE": 115,
      "_ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 115,
      "_ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 115,
      "_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h998a3e8fddbe337bE": 1377,
      "_ZN5alloc11collections5btree4node210Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$16insert_recursing17h4e09ae1a2ce62ab0E": 763,
      "_ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h157aaa584482d225E.llvm.6040992934245635117": 2,
      "new": 102,
      "TaskUserRes::new": 102,
      "alloc_user_res": 59,
      "trap_cx_ppn": 124,
      "kstack_alloc": 102,
      "_ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17hb0d9363ad231a5aaE.llvm.6040992934245635117": 1,
      "_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17hf00c3f10cff78e80E": 66,
      "_ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h89654cc05573968bE.llvm.6040992934245635117": 1,
      "_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4grow17h30b26e8068a7cd60E.llvm.1451390653963600059": 15,
      "_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h88e32e1c8ba5fa9dE": 23,
      "_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h549075da9ea406caE": 26,
      "run_tasks": 1,
      "_ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h0dee91d5cde1cd37E.llvm.6040992934245635117": 1,
      "__switch": 22875,
      "trap_return": 44213,
      "current_trap_cx_user_va": 44213,
      "_ZN2os4task9processor18current_user_token17hdf0e1c577e037a2dE": 45043,
      "trap_handler": 44212,
      "_ZN2os4task9processor15current_trap_cx17hc9e1c3c670439f5aE": 86201,
      "syscall": 43151,
      "sys_fork": 65,
      "current_process": 82319,
      "fork": 65,
      "from_existed_user": 65,
      "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h5442bbec84571cd0E": 803,
      "_ZN5alloc11collections5btree4node210Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$16insert_recursing17h58c572b033f1cf25E": 65,
      "sys_waitpid": 2090,
      "sys_yield@0": 3344,
      "suspend_current_and_run_next": 10270,
      "sys_exec": 22,
      "translated_str": 26,
      "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h0b033fb5247cdb44E": 53,
      "exec": 22,
      "frame_dealloc": 1776,
      "_ZN99_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc5201e649d2a4821E": 601,
      "_ZN5alloc11collections5btree8navigate263_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Dying$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$$GT$27deallocating_next_unchecked17h3c026b03bb456ae6E": 848,
      "_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h5d3c7c6d4f878b36E": 22,
      "_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h80d93d6b6c52f006E": 22,
      "sys_write": 535,
      "Stdin::readable": 714,
      "translated_byte_buffer": 804,
      "Stdout::write": 533,
      "sys_read": 185,
      "Stdin::read": 181,
      "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h2dbc31778a06bb11E": 1,
      "sys_exit": 100,
      "exit_current_and_run_next": 100,
      "TaskUserRes::drop": 100,
      "dealloc_tid": 100,
      "dealloc_user_res": 100,
      "remove_area_with_start_vpn": 299,
      "unmap@0": 299,
      "nodefusion_vm_unmap_region": 299,
      "_ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17h8c3f3340159c890aE": 498,
      "_ZN5alloc11collections5btree6remove269_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..LeafOrInternal$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$18remove_kv_tracking17h5a4f9e70cef21d30E": 498,
      "_ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$14remove_leaf_kv17hda491be77a31c11aE": 498,
      "PageTable::unmap@0": 498,
      "remove_from_pid2process": 64,
      "_ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17h9bc1587e00af06ecE": 64,
      "_ZN5alloc11collections5btree6remove269_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..LeafOrInternal$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$18remove_kv_tracking17h0a4a69f04856055cE": 64,
      "_ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$14remove_leaf_kv17he25de69b4e40e560E": 64,
      "remove_task": 64,
      "_ZN2os5timer12remove_timer17h0ed1728b21e220aeE": 64,
      "sys_getpid": 1,
      "sys_open": 3,
      "create": 1,
      "alloc_inode@0": 1,
      "Bitmap::alloc": 2,
      "increase_size": 2,
      "DiskInode::write_at": 2,
      "block_cache_sync_all": 2,
      "write_block": 7,
      "VirtIOBlk<H>::write_block": 7,
      "writable": 1,
      "write": 1,
      "write_at": 1,
      "alloc_data@1": 1,
      "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h34dd228448f6ce7cE": 1,
      "sys_close": 7,
      "_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hb19e7d9134a8fd7cE": 12,
      "_ZN4core3ptr43drop_in_place$LT$os..fs..inode..OSInode$GT$17hbe427dab70e05934E": 3,
      "readable": 3,
      "read": 3,
      "_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h20360bb4228da682E": 64,
      "drop": 64,
      "_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hbd710d266b771528E": 128,
      "_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hba033c4d12bae5a7E": 99,
      "KernelStack::drop": 99,
      "_ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$8do_merge17h50343fd10a4768f0E": 8,
      "sys_semaphore_create": 4,
      "sys_thread_create": 36,
      "sys_waittid": 1336,
      "sys_get_time": 84,
      "sys_mutex_create": 7,
      "sys_condvar_create": 1,
      "_ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$15bulk_steal_left17hb607efb53e115ac8E": 3,
      "sys_pipe": 1,
      "make_pipe": 1,
      "Pipe::writable": 1,
      "Pipe::write": 1,
      "available_write": 1,
      "available_read": 3,
      "write_byte": 13,
      "sys_semaphore_down": 1601,
      "_ZN2os4sync9semaphore9Semaphore4down17hac2c5dc44f5b9508E": 1601,
      "_ZN2os4sync8deadlock8Resource4wait17h80ef70f5fd5fd38eE": 33686,
      "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hf7c0923958275c08E": 10,
      "_ZN5alloc3vec16Vec$LT$T$C$A$GT$11resize_with17h58ddafd23af7324eE": 68974,
      "_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h16cbca8d168bb856E": 10,
      "_ZN2os4sync8deadlock8Resource7acquire17h0a744ff02afb4eaeE": 17644,
      "sys_semaphore_up": 1601,
      "_ZN2os4sync9semaphore9Semaphore2up17h389c1ccf5208c3c2E": 1601,
      "_ZN2os4sync8deadlock8Resource7release17h387aaf90adac0e36E": 17644,
      "block_current_and_run_next": 1067,
      "wakeup_task": 1025,
      "sys_mutex_lock": 16042,
      "_ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$8resource17h0696f1f890c5a8d8E": 16042,
      "_ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$4lock17heea72e959e46c06fE": 16000,
      "sys_mutex_unlock": 16042,
      "_ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$6unlock17ha9d57784ec39885eE": 16000,
      "sys_sleep": 42,
      "_ZN2os5timer9add_timer17h25cbc380c45acfcdE": 42,
      "_ZN73_$LT$os..sync..mutex..MutexBlocking$u20$as$u20$os..sync..mutex..Mutex$GT$4lock17h4184078422fff753E": 43,
      "sys_condvar_wait": 1,
      "_ZN2os4sync7condvar7Condvar4wait17h418641be24186f3aE": 1,
      "_ZN73_$LT$os..sync..mutex..MutexBlocking$u20$as$u20$os..sync..mutex..Mutex$GT$6unlock17h3b3aa17afe511db5E": 43,
      "_ZN4core3ptr39drop_in_place$LT$os..fs..pipe..Pipe$GT$17h8c9baf6588a8e0daE": 2,
      "Pipe::readable": 1,
      "Pipe::read": 1,
      "read_byte": 13,
      "all_write_ends_closed": 1,
      "_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h071cae9273e23dd7E": 1,
      "sys_condvar_signal": 1,
      "_ZN2os4sync7condvar7Condvar6signal17h4c0212f84b928a27E": 1,
      "_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17ha326f4f6cb368e21E": 4,
      "_ZN4core3ptr51drop_in_place$LT$os..sync..mutex..MutexBlocking$GT$17h39e2cc653f598adbE": 6,
      "_ZN4core3ptr47drop_in_place$LT$os..sync..mutex..MutexSpin$GT$17h80f8f0ac166adfa4E": 1,
      "_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h5546c2cc8d915116E": 1
    },
    "entry_examples": {
      "sys_semaphore_create": [
        {
          "insn": 52802549,
          "cpu": 0,
          "pc": 2149604192,
          "satp": 9223372036855308863,
          "a": [
            1,
            18446744073709239896,
            536,
            73,
            0,
            33016,
            1,
            467
          ]
        },
        {
          "insn": 52844459,
          "cpu": 0,
          "pc": 2149604192,
          "satp": 9223372036855308863,
          "a": [
            8,
            18446744073709239896,
            536,
            73,
            0,
            33016,
            1,
            467
          ]
        },
        {
          "insn": 52885906,
          "cpu": 0,
          "pc": 2149604192,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709239896,
            536,
            73,
            0,
            33016,
            1,
            467
          ]
        },
        {
          "insn": 83224405,
          "cpu": 0,
          "pc": 2149604192,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709203032,
            536,
            73,
            0,
            32952,
            1,
            467
          ]
        }
      ],
      "sys_thread_create": [
        {
          "insn": 52927517,
          "cpu": 0,
          "pc": 2149680302,
          "satp": 9223372036855308863,
          "a": [
            1184,
            32960,
            480,
            73,
            0,
            33272,
            33072,
            460
          ]
        },
        {
          "insn": 52962394,
          "cpu": 0,
          "pc": 2149680302,
          "satp": 9223372036855308863,
          "a": [
            1184,
            32968,
            480,
            73,
            0,
            33272,
            33072,
            460
          ]
        },
        {
          "insn": 52997690,
          "cpu": 0,
          "pc": 2149680302,
          "satp": 9223372036855308863,
          "a": [
            1184,
            32976,
            480,
            73,
            0,
            33272,
            33072,
            460
          ]
        },
        {
          "insn": 53032367,
          "cpu": 0,
          "pc": 2149680302,
          "satp": 9223372036855308863,
          "a": [
            1184,
            32984,
            480,
            73,
            0,
            33272,
            33072,
            460
          ]
        },
        {
          "insn": 53067495,
          "cpu": 0,
          "pc": 2149680302,
          "satp": 9223372036855308863,
          "a": [
            1298,
            0,
            480,
            73,
            0,
            33272,
            33072,
            460
          ]
        },
        {
          "insn": 54438397,
          "cpu": 0,
          "pc": 2149680302,
          "satp": 9223372036855308863,
          "a": [
            1244,
            0,
            480,
            73,
            0,
            32952,
            1,
            460
          ]
        }
      ],
      "sys_mutex_create": [
        {
          "insn": 54414312,
          "cpu": 0,
          "pc": 2149600692,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709215320,
            504,
            73,
            0,
            32952,
            1,
            463
          ]
        },
        {
          "insn": 56180878,
          "cpu": 0,
          "pc": 2149600692,
          "satp": 9223372036855308863,
          "a": [
            1,
            18446744073709190744,
            504,
            73,
            0,
            32952,
            1,
            463
          ]
        },
        {
          "insn": 94124720,
          "cpu": 0,
          "pc": 2149600692,
          "satp": 9223372036855308863,
          "a": [
            1,
            18446744073709227608,
            504,
            73,
            0,
            37944,
            37752,
            463
          ]
        },
        {
          "insn": 94201455,
          "cpu": 0,
          "pc": 2149600692,
          "satp": 9223372036855308863,
          "a": [
            1,
            18446744073709227608,
            504,
            73,
            0,
            37944,
            37744,
            463
          ]
        },
        {
          "insn": 94278172,
          "cpu": 0,
          "pc": 2149600692,
          "satp": 9223372036855308863,
          "a": [
            1,
            18446744073709227608,
            504,
            73,
            0,
            37944,
            37744,
            463
          ]
        },
        {
          "insn": 94354275,
          "cpu": 0,
          "pc": 2149600692,
          "satp": 9223372036855308863,
          "a": [
            1,
            18446744073709227608,
            504,
            73,
            0,
            37944,
            37744,
            463
          ]
        }
      ],
      "sys_condvar_create": [
        {
          "insn": 56140802,
          "cpu": 0,
          "pc": 2149607534,
          "satp": 9223372036855308863,
          "a": [
            2149687748,
            18446744073709190744,
            568,
            73,
            0,
            32952,
            1,
            471
          ]
        }
      ],
      "sys_semaphore_down": [
        {
          "insn": 64108591,
          "cpu": 0,
          "pc": 2149606638,
          "satp": 9223372036855308863,
          "a": [
            1,
            18446744073709387352,
            560,
            73,
            0,
            33960,
            0,
            470
          ]
        },
        {
          "insn": 64150704,
          "cpu": 0,
          "pc": 2149606638,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709387352,
            560,
            73,
            0,
            33960,
            0,
            470
          ]
        },
        {
          "insn": 64270803,
          "cpu": 0,
          "pc": 2149606638,
          "satp": 9223372036855308863,
          "a": [
            1,
            18446744073709387352,
            560,
            73,
            0,
            33960,
            0,
            470
          ]
        },
        {
          "insn": 64311953,
          "cpu": 0,
          "pc": 2149606638,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709387352,
            560,
            73,
            0,
            33960,
            0,
            470
          ]
        },
        {
          "insn": 64432052,
          "cpu": 0,
          "pc": 2149606638,
          "satp": 9223372036855308863,
          "a": [
            1,
            18446744073709387352,
            560,
            73,
            0,
            33960,
            0,
            470
          ]
        },
        {
          "insn": 64473202,
          "cpu": 0,
          "pc": 2149606638,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709387352,
            560,
            73,
            0,
            33960,
            0,
            470
          ]
        }
      ],
      "_ZN2os4sync9semaphore9Semaphore4down17hac2c5dc44f5b9508E": [
        {
          "insn": 64132347,
          "cpu": 0,
          "pc": 2149636822,
          "satp": 9223372036855308863,
          "a": [
            2183295376,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 64174460,
          "cpu": 0,
          "pc": 2149636822,
          "satp": 9223372036855308863,
          "a": [
            2183295248,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 64294559,
          "cpu": 0,
          "pc": 2149636822,
          "satp": 9223372036855308863,
          "a": [
            2183295376,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 64335709,
          "cpu": 0,
          "pc": 2149636822,
          "satp": 9223372036855308863,
          "a": [
            2183295248,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 64455808,
          "cpu": 0,
          "pc": 2149636822,
          "satp": 9223372036855308863,
          "a": [
            2183295376,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 64496958,
          "cpu": 0,
          "pc": 2149636822,
          "satp": 9223372036855308863,
          "a": [
            2183295248,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        }
      ],
      "sys_semaphore_up": [
        {
          "insn": 64191861,
          "cpu": 0,
          "pc": 2149605752,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709387352,
            544,
            73,
            0,
            33960,
            0,
            468
          ]
        },
        {
          "insn": 64231331,
          "cpu": 0,
          "pc": 2149605752,
          "satp": 9223372036855308863,
          "a": [
            2,
            18446744073709387352,
            544,
            73,
            0,
            33960,
            0,
            468
          ]
        },
        {
          "insn": 64353110,
          "cpu": 0,
          "pc": 2149605752,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709387352,
            544,
            73,
            0,
            33960,
            0,
            468
          ]
        },
        {
          "insn": 64392580,
          "cpu": 0,
          "pc": 2149605752,
          "satp": 9223372036855308863,
          "a": [
            2,
            18446744073709387352,
            544,
            73,
            0,
            33960,
            0,
            468
          ]
        },
        {
          "insn": 64514359,
          "cpu": 0,
          "pc": 2149605752,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709387352,
            544,
            73,
            0,
            33960,
            0,
            468
          ]
        },
        {
          "insn": 64553829,
          "cpu": 0,
          "pc": 2149605752,
          "satp": 9223372036855308863,
          "a": [
            2,
            18446744073709387352,
            544,
            73,
            0,
            33960,
            0,
            468
          ]
        }
      ],
      "_ZN2os4sync9semaphore9Semaphore2up17h389c1ccf5208c3c2E": [
        {
          "insn": 64214845,
          "cpu": 0,
          "pc": 2149636516,
          "satp": 9223372036855308863,
          "a": [
            2183295248,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 64254315,
          "cpu": 0,
          "pc": 2149636516,
          "satp": 9223372036855308863,
          "a": [
            2183296784,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 64376094,
          "cpu": 0,
          "pc": 2149636516,
          "satp": 9223372036855308863,
          "a": [
            2183295248,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 64415564,
          "cpu": 0,
          "pc": 2149636516,
          "satp": 9223372036855308863,
          "a": [
            2183296784,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 64537343,
          "cpu": 0,
          "pc": 2149636516,
          "satp": 9223372036855308863,
          "a": [
            2183295248,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 64576813,
          "cpu": 0,
          "pc": 2149636516,
          "satp": 9223372036855308863,
          "a": [
            2183296784,
            0,
            18446744073709551615,
            3,
            0,
            2149663758,
            0,
            1
          ]
        }
      ],
      "block_current_and_run_next": [
        {
          "insn": 65459532,
          "cpu": 0,
          "pc": 2149639910,
          "satp": 9223372036855308863,
          "a": [
            1,
            0,
            0,
            2183142816,
            130376,
            170384,
            2183389760,
            5
          ]
        },
        {
          "insn": 65500931,
          "cpu": 0,
          "pc": 2149639910,
          "satp": 9223372036855308863,
          "a": [
            2,
            0,
            0,
            2183142816,
            2183142872,
            0,
            0,
            24
          ]
        },
        {
          "insn": 65543248,
          "cpu": 0,
          "pc": 2149639910,
          "satp": 9223372036855308863,
          "a": [
            3,
            0,
            0,
            2183142816,
            2183142904,
            0,
            0,
            24
          ]
        },
        {
          "insn": 66938912,
          "cpu": 0,
          "pc": 2149639910,
          "satp": 9223372036855308863,
          "a": [
            1,
            0,
            0,
            2183142048,
            130640,
            170704,
            2183389760,
            5
          ]
        },
        {
          "insn": 83396325,
          "cpu": 0,
          "pc": 2149639910,
          "satp": 9223372036855308863,
          "a": [
            0,
            2183139008,
            2183139008,
            2183139008,
            134168,
            175160,
            2183313152,
            6
          ]
        },
        {
          "insn": 83564852,
          "cpu": 0,
          "pc": 2149639910,
          "satp": 9223372036855308863,
          "a": [
            1,
            0,
            0,
            2183139552,
            134416,
            175440,
            2183389760,
            5
          ]
        }
      ],
      "wakeup_task": [
        {
          "insn": 65705609,
          "cpu": 0,
          "pc": 2149628504,
          "satp": 9223372036855308863,
          "a": [
            2183298816,
            6,
            8,
            2183139120,
            0,
            2183142816,
            0,
            1
          ]
        },
        {
          "insn": 65887512,
          "cpu": 0,
          "pc": 2149628504,
          "satp": 9223372036855308863,
          "a": [
            2183358208,
            6,
            8,
            2183139144,
            0,
            2183142816,
            0,
            1
          ]
        },
        {
          "insn": 66069415,
          "cpu": 0,
          "pc": 2149628504,
          "satp": 9223372036855308863,
          "a": [
            2183156480,
            6,
            8,
            2183139168,
            0,
            2183142816,
            0,
            1
          ]
        },
        {
          "insn": 92973194,
          "cpu": 0,
          "pc": 2149628504,
          "satp": 9223372036855308863,
          "a": [
            2183157504,
            6,
            16,
            2183139192,
            0,
            2183142048,
            0,
            1
          ]
        },
        {
          "insn": 106598377,
          "cpu": 0,
          "pc": 2149628504,
          "satp": 9223372036855308863,
          "a": [
            2183314176,
            2183314176,
            0,
            0,
            1,
            2183139552,
            0,
            1
          ]
        },
        {
          "insn": 116530843,
          "cpu": 0,
          "pc": 2149628504,
          "satp": 9223372036855308863,
          "a": [
            2183286528,
            6,
            8,
            2183139096,
            18446744073709551615,
            2183142816,
            0,
            1
          ]
        }
      ],
      "sys_mutex_lock": [
        {
          "insn": 67000523,
          "cpu": 0,
          "pc": 2149602222,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            512,
            73,
            0,
            10007,
            34016,
            464
          ]
        },
        {
          "insn": 67084206,
          "cpu": 0,
          "pc": 2149602222,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            512,
            73,
            0,
            10007,
            34016,
            464
          ]
        },
        {
          "insn": 67166968,
          "cpu": 0,
          "pc": 2149602222,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            512,
            73,
            0,
            10007,
            34016,
            464
          ]
        },
        {
          "insn": 67249730,
          "cpu": 0,
          "pc": 2149602222,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            512,
            73,
            0,
            10007,
            34016,
            464
          ]
        },
        {
          "insn": 67332492,
          "cpu": 0,
          "pc": 2149602222,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            512,
            73,
            0,
            10007,
            34016,
            464
          ]
        },
        {
          "insn": 67415254,
          "cpu": 0,
          "pc": 2149602222,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            512,
            73,
            0,
            10007,
            34016,
            464
          ]
        }
      ],
      "_ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$8resource17h0696f1f890c5a8d8E": [
        {
          "insn": 67022749,
          "cpu": 0,
          "pc": 2149599808,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149599808,
            18446744073709551615,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67106432,
          "cpu": 0,
          "pc": 2149599808,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149599808,
            18446744073709551615,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67189194,
          "cpu": 0,
          "pc": 2149599808,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149599808,
            18446744073709551615,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67271956,
          "cpu": 0,
          "pc": 2149599808,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149599808,
            18446744073709551615,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67354718,
          "cpu": 0,
          "pc": 2149599808,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149599808,
            18446744073709551615,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67437480,
          "cpu": 0,
          "pc": 2149599808,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149599808,
            18446744073709551615,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        }
      ],
      "_ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$4lock17heea72e959e46c06fE": [
        {
          "insn": 67023804,
          "cpu": 0,
          "pc": 2149676074,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149676074,
            1,
            2183389688,
            130840,
            170936,
            2183389744,
            3
          ]
        },
        {
          "insn": 67106566,
          "cpu": 0,
          "pc": 2149676074,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149676074,
            1,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67189328,
          "cpu": 0,
          "pc": 2149676074,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149676074,
            1,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67272090,
          "cpu": 0,
          "pc": 2149676074,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149676074,
            1,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67354852,
          "cpu": 0,
          "pc": 2149676074,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149676074,
            1,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67437614,
          "cpu": 0,
          "pc": 2149676074,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149676074,
            1,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        }
      ],
      "sys_mutex_unlock": [
        {
          "insn": 67043188,
          "cpu": 0,
          "pc": 2149603292,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            528,
            73,
            0,
            10007,
            34016,
            466
          ]
        },
        {
          "insn": 67125950,
          "cpu": 0,
          "pc": 2149603292,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            528,
            73,
            0,
            10007,
            34016,
            466
          ]
        },
        {
          "insn": 67208712,
          "cpu": 0,
          "pc": 2149603292,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            528,
            73,
            0,
            10007,
            34016,
            466
          ]
        },
        {
          "insn": 67291474,
          "cpu": 0,
          "pc": 2149603292,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            528,
            73,
            0,
            10007,
            34016,
            466
          ]
        },
        {
          "insn": 67374236,
          "cpu": 0,
          "pc": 2149603292,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            528,
            73,
            0,
            10007,
            34016,
            466
          ]
        },
        {
          "insn": 67456998,
          "cpu": 0,
          "pc": 2149603292,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073709043288,
            528,
            73,
            0,
            10007,
            34016,
            466
          ]
        }
      ],
      "_ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$6unlock17ha9d57784ec39885eE": [
        {
          "insn": 67066183,
          "cpu": 0,
          "pc": 2149676484,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            0,
            2149676484,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67148945,
          "cpu": 0,
          "pc": 2149676484,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            0,
            2149676484,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67231707,
          "cpu": 0,
          "pc": 2149676484,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            0,
            2149676484,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67314469,
          "cpu": 0,
          "pc": 2149676484,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            0,
            2149676484,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67397231,
          "cpu": 0,
          "pc": 2149676484,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            0,
            2149676484,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 67479993,
          "cpu": 0,
          "pc": 2149676484,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            0,
            2149676484,
            2149726008,
            0,
            2149663758,
            0,
            1
          ]
        }
      ],
      "_ZN73_$LT$os..sync..mutex..MutexBlocking$u20$as$u20$os..sync..mutex..Mutex$GT$4lock17h4184078422fff753E": [
        {
          "insn": 83458045,
          "cpu": 0,
          "pc": 2149676688,
          "satp": 9223372036855308863,
          "a": [
            2183309328,
            2149676688,
            1,
            2183139536,
            134408,
            175432,
            2183389744,
            3
          ]
        },
        {
          "insn": 106555675,
          "cpu": 0,
          "pc": 2149676688,
          "satp": 9223372036855308863,
          "a": [
            2183309328,
            2149676688,
            1,
            2149726056,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 121160695,
          "cpu": 0,
          "pc": 2149676688,
          "satp": 9223372036855308863,
          "a": [
            2183309328,
            0,
            2149676688,
            4,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 133855456,
          "cpu": 0,
          "pc": 2149676688,
          "satp": 9223372036855308863,
          "a": [
            2183274384,
            2149676688,
            1,
            2183324072,
            2183324072,
            0,
            0,
            40
          ]
        },
        {
          "insn": 133896738,
          "cpu": 0,
          "pc": 2149676688,
          "satp": 9223372036855308863,
          "a": [
            2183372304,
            2149676688,
            1,
            2149726056,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 135717844,
          "cpu": 0,
          "pc": 2149676688,
          "satp": 9223372036855308863,
          "a": [
            2183372304,
            2149676688,
            1,
            2183361512,
            2183361512,
            0,
            0,
            40
          ]
        }
      ],
      "sys_condvar_wait": [
        {
          "insn": 83502330,
          "cpu": 0,
          "pc": 2149609778,
          "satp": 9223372036855308863,
          "a": [
            0,
            0,
            584,
            73,
            0,
            7898,
            73424,
            473
          ]
        }
      ],
      "_ZN2os4sync7condvar7Condvar4wait17h418641be24186f3aE": [
        {
          "insn": 83525327,
          "cpu": 0,
          "pc": 2149628020,
          "satp": 9223372036855308863,
          "a": [
            2183347344,
            2183309312,
            2149726056,
            0,
            0,
            2149663758,
            0,
            1
          ]
        }
      ],
      "_ZN73_$LT$os..sync..mutex..MutexBlocking$u20$as$u20$os..sync..mutex..Mutex$GT$6unlock17h3b3aa17afe511db5E": [
        {
          "insn": 83545462,
          "cpu": 0,
          "pc": 2149677166,
          "satp": 9223372036855308863,
          "a": [
            2183309328,
            2149677166,
            0,
            2149743539,
            2149743539,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 106641997,
          "cpu": 0,
          "pc": 2149677166,
          "satp": 9223372036855308863,
          "a": [
            2183309328,
            0,
            2149677166,
            2149726056,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 121202628,
          "cpu": 0,
          "pc": 2149677166,
          "satp": 9223372036855308863,
          "a": [
            2183309328,
            0,
            2149677166,
            2149726056,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 149671831,
          "cpu": 0,
          "pc": 2149677166,
          "satp": 9223372036855308863,
          "a": [
            2183372304,
            0,
            2149677166,
            2149726056,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 149734684,
          "cpu": 0,
          "pc": 2149677166,
          "satp": 9223372036855308863,
          "a": [
            2183274384,
            0,
            2149677166,
            2149726056,
            0,
            2149663758,
            0,
            1
          ]
        },
        {
          "insn": 160724705,
          "cpu": 0,
          "pc": 2149677166,
          "satp": 9223372036855308863,
          "a": [
            2183141008,
            0,
            2149677166,
            2149726056,
            0,
            2149663758,
            0,
            1
          ]
        }
      ],
      "sys_condvar_signal": [
        {
          "insn": 106574597,
          "cpu": 0,
          "pc": 2149608890,
          "satp": 9223372036855308863,
          "a": [
            0,
            18446744073708846680,
            576,
            73,
            0,
            0,
            0,
            472
          ]
        }
      ],
      "_ZN2os4sync7condvar7Condvar6signal17h4c0212f84b928a27E": [
        {
          "insn": 106598353,
          "cpu": 0,
          "pc": 2149627928,
          "satp": 9223372036855308863,
          "a": [
            2183347344,
            0,
            18446744073709551615,
            4,
            0,
            2149663758,
            0,
            1
          ]
        }
      ],
      "_ZN4core3ptr51drop_in_place$LT$os..sync..mutex..MutexBlocking$GT$17h39e2cc653f598adbE": [
        {
          "insn": 1693283199,
          "cpu": 0,
          "pc": 2149599530,
          "satp": 9223372036855308863,
          "a": [
            2183141904,
            2149599530,
            64,
            64,
            60136,
            0,
            2,
            31
          ]
        },
        {
          "insn": 1693284588,
          "cpu": 0,
          "pc": 2149599530,
          "satp": 9223372036855308863,
          "a": [
            2183274384,
            2149599530,
            128,
            80,
            59976,
            0,
            2,
            31
          ]
        },
        {
          "insn": 1693285801,
          "cpu": 0,
          "pc": 2149599530,
          "satp": 9223372036855308863,
          "a": [
            2183372304,
            2149599530,
            128,
            80,
            59816,
            0,
            2,
            31
          ]
        },
        {
          "insn": 1693286270,
          "cpu": 0,
          "pc": 2149599530,
          "satp": 9223372036855308863,
          "a": [
            2183372432,
            2149599530,
            128,
            80,
            59656,
            0,
            2,
            31
          ]
        },
        {
          "insn": 1693286925,
          "cpu": 0,
          "pc": 2149599530,
          "satp": 9223372036855308863,
          "a": [
            2183141008,
            2149599530,
            128,
            80,
            59496,
            0,
            2,
            31
          ]
        },
        {
          "insn": 1693525386,
          "cpu": 0,
          "pc": 2149599530,
          "satp": 9223372036855308863,
          "a": [
            2183309328,
            2149599530,
            32,
            32,
            46632,
            0,
            2,
            31
          ]
        }
      ],
      "_ZN4core3ptr47drop_in_place$LT$os..sync..mutex..MutexSpin$GT$17h80f8f0ac166adfa4E": [
        {
          "insn": 1693367363,
          "cpu": 0,
          "pc": 2149599482,
          "satp": 9223372036855308863,
          "a": [
            2183296592,
            2149599482,
            256,
            256,
            52872,
            0,
            2,
            31
          ]
        }
      ]
    },
    "nftrace_counts": {
      "6": 1,
      "1": 1889,
      "4": 22875,
      "2": 65,
      "5": 1776,
      "3": 36
    },
    "forks": [
      {
        "insn": 27497999,
        "parent_pid": 0,
        "child_pid": 1
      },
      {
        "insn": 29076655,
        "parent_pid": 1,
        "child_pid": 2
      },
      {
        "insn": 29932987,
        "parent_pid": 2,
        "child_pid": 3
      },
      {
        "insn": 30065819,
        "parent_pid": 2,
        "child_pid": 4
      },
      {
        "insn": 30199344,
        "parent_pid": 2,
        "child_pid": 5
      },
      {
        "insn": 30332219,
        "parent_pid": 2,
        "child_pid": 6
      },
      {
        "insn": 30465106,
        "parent_pid": 2,
        "child_pid": 7
      },
      {
        "insn": 30597691,
        "parent_pid": 2,
        "child_pid": 8
      },
      {
        "insn": 30731770,
        "parent_pid": 2,
        "child_pid": 9
      },
      {
        "insn": 30863522,
        "parent_pid": 2,
        "child_pid": 10
      },
      {
        "insn": 31000848,
        "parent_pid": 2,
        "child_pid": 11
      },
      {
        "insn": 31134261,
        "parent_pid": 2,
        "child_pid": 12
      },
      {
        "insn": 31270570,
        "parent_pid": 2,
        "child_pid": 13
      },
      {
        "insn": 38619967,
        "parent_pid": 10,
        "child_pid": 14
      },
      {
        "insn": 40097849,
        "parent_pid": 12,
        "child_pid": 15
      },
      {
        "insn": 40227506,
        "parent_pid": 12,
        "child_pid": 16
      },
      {
        "insn": 40356915,
        "parent_pid": 12,
        "child_pid": 17
      },
      {
        "insn": 40487541,
        "parent_pid": 12,
        "child_pid": 18
      },
      {
        "insn": 40617260,
        "parent_pid": 12,
        "child_pid": 19
      },
      {
        "insn": 40746728,
        "parent_pid": 12,
        "child_pid": 20
      },
      {
        "insn": 40876249,
        "parent_pid": 12,
        "child_pid": 21
      },
      {
        "insn": 41005569,
        "parent_pid": 12,
        "child_pid": 22
      },
      {
        "insn": 42696746,
        "parent_pid": 2,
        "child_pid": 23
      },
      {
        "insn": 42830133,
        "parent_pid": 2,
        "child_pid": 24
      },
      {
        "insn": 42965505,
        "parent_pid": 2,
        "child_pid": 25
      },
      {
        "insn": 43101312,
        "parent_pid": 2,
        "child_pid": 26
      },
      {
        "insn": 43240057,
        "parent_pid": 2,
        "child_pid": 27
      },
      {
        "insn": 43373993,
        "parent_pid": 2,
        "child_pid": 28
      },
      {
        "insn": 43509089,
        "parent_pid": 2,
        "child_pid": 29
      },
      {
        "insn": 43642089,
        "parent_pid": 2,
        "child_pid": 30
      },
      {
        "insn": 43776746,
        "parent_pid": 2,
        "child_pid": 31
      },
      {
        "insn": 47588849,
        "parent_pid": 11,
        "child_pid": 3
      },
      {
        "insn": 49043942,
        "parent_pid": 12,
        "child_pid": 32
      },
      {
        "insn": 49173692,
        "parent_pid": 12,
        "child_pid": 33
      },
      {
        "insn": 49303008,
        "parent_pid": 12,
        "child_pid": 34
      },
      {
        "insn": 49432398,
        "parent_pid": 12,
        "child_pid": 35
      },
      {
        "insn": 49561915,
        "parent_pid": 12,
        "child_pid": 36
      },
      {
        "insn": 49691420,
        "parent_pid": 12,
        "child_pid": 37
      },
      {
        "insn": 49820885,
        "parent_pid": 12,
        "child_pid": 38
      },
      {
        "insn": 49950338,
        "parent_pid": 12,
        "child_pid": 39
      },
      {
        "insn": 50081329,
        "parent_pid": 12,
        "child_pid": 40
      },
      {
        "insn": 50210821,
        "parent_pid": 12,
        "child_pid": 41
      },
      {
        "insn": 50340136,
        "parent_pid": 12,
        "child_pid": 42
      },
      {
        "insn": 50469665,
        "parent_pid": 12,
        "child_pid": 43
      },
      {
        "insn": 63548099,
        "parent_pid": 12,
        "child_pid": 3
      },
      {
        "insn": 63677086,
        "parent_pid": 12,
        "child_pid": 44
      },
      {
        "insn": 63806906,
        "parent_pid": 12,
        "child_pid": 45
      },
      {
        "insn": 64037217,
        "parent_pid": 24,
        "child_pid": 46
      },
      {
        "insn": 91672405,
        "parent_pid": 12,
        "child_pid": 47
      },
      {
        "insn": 91802075,
        "parent_pid": 12,
        "child_pid": 48
      },
      {
        "insn": 91931444,
        "parent_pid": 12,
        "child_pid": 49
      },
      {
        "insn": 92060993,
        "parent_pid": 12,
        "child_pid": 50
      },
      {
        "insn": 92190556,
        "parent_pid": 12,
        "child_pid": 51
      },
      {
        "insn": 92320027,
        "parent_pid": 12,
        "child_pid": 52
      },
      {
        "insn": 126084980,
        "parent_pid": 12,
        "child_pid": 46
      },
      {
        "insn": 126214535,
        "parent_pid": 12,
        "child_pid": 53
      },
      {
        "insn": 126343964,
        "parent_pid": 12,
        "child_pid": 54
      },
      {
        "insn": 126473780,
        "parent_pid": 12,
        "child_pid": 55
      },
      {
        "insn": 126603530,
        "parent_pid": 12,
        "child_pid": 56
      },
      {
        "insn": 126732850,
        "parent_pid": 12,
        "child_pid": 57
      },
      {
        "insn": 126862342,
        "parent_pid": 12,
        "child_pid": 58
      },
      {
        "insn": 126991749,
        "parent_pid": 12,
        "child_pid": 59
      },
      {
        "insn": 127121200,
        "parent_pid": 12,
        "child_pid": 60
      },
      {
        "insn": 127250723,
        "parent_pid": 12,
        "child_pid": 61
      },
      {
        "insn": 127380316,
        "parent_pid": 12,
        "child_pid": 62
      }
    ],
    "threads": [
      {
        "insn": 52961657,
        "pid": 25,
        "parent_tid": 0,
        "child_tid": 1
      },
      {
        "insn": 52997166,
        "pid": 25,
        "parent_tid": 0,
        "child_tid": 2
      },
      {
        "insn": 53031843,
        "pid": 25,
        "parent_tid": 0,
        "child_tid": 3
      },
      {
        "insn": 53066970,
        "pid": 25,
        "parent_tid": 0,
        "child_tid": 4
      },
      {
        "insn": 53101648,
        "pid": 25,
        "parent_tid": 0,
        "child_tid": 5
      },
      {
        "insn": 54472512,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 1
      },
      {
        "insn": 54508058,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 2
      },
      {
        "insn": 54542713,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 3
      },
      {
        "insn": 54577789,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 4
      },
      {
        "insn": 54612432,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 5
      },
      {
        "insn": 54648314,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 6
      },
      {
        "insn": 54682974,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 7
      },
      {
        "insn": 54718048,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 8
      },
      {
        "insn": 54752776,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 9
      },
      {
        "insn": 54787785,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 10
      },
      {
        "insn": 54822445,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 11
      },
      {
        "insn": 54857088,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 12
      },
      {
        "insn": 54891765,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 13
      },
      {
        "insn": 54927786,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 14
      },
      {
        "insn": 54962446,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 15
      },
      {
        "insn": 54997581,
        "pid": 27,
        "parent_tid": 0,
        "child_tid": 16
      },
      {
        "insn": 56259352,
        "pid": 29,
        "parent_tid": 0,
        "child_tid": 1
      },
      {
        "insn": 56294677,
        "pid": 29,
        "parent_tid": 0,
        "child_tid": 2
      },
      {
        "insn": 56943411,
        "pid": 30,
        "parent_tid": 0,
        "child_tid": 1
      },
      {
        "insn": 56978715,
        "pid": 30,
        "parent_tid": 0,
        "child_tid": 2
      },
      {
        "insn": 57013396,
        "pid": 30,
        "parent_tid": 0,
        "child_tid": 3
      },
      {
        "insn": 83300598,
        "pid": 28,
        "parent_tid": 0,
        "child_tid": 1
      },
      {
        "insn": 83335952,
        "pid": 28,
        "parent_tid": 0,
        "child_tid": 2
      },
      {
        "insn": 87702678,
        "pid": 31,
        "parent_tid": 0,
        "child_tid": 1
      },
      {
        "insn": 87738220,
        "pid": 31,
        "parent_tid": 0,
        "child_tid": 2
      },
      {
        "insn": 87772864,
        "pid": 31,
        "parent_tid": 0,
        "child_tid": 3
      },
      {
        "insn": 94200753,
        "pid": 26,
        "parent_tid": 0,
        "child_tid": 1
      },
      {
        "insn": 94277666,
        "pid": 26,
        "parent_tid": 0,
        "child_tid": 2
      },
      {
        "insn": 94353769,
        "pid": 26,
        "parent_tid": 0,
        "child_tid": 3
      },
      {
        "insn": 94430295,
        "pid": 26,
        "parent_tid": 0,
        "child_tid": 4
      },
      {
        "insn": 94507449,
        "pid": 26,
        "parent_tid": 0,
        "child_tid": 5
      }
    ],
    "switches": {
      "idle_to_thread": 11438,
      "thread_to_idle": 11437
    },
    "allocation_balance": {
      "initial_free_pages": 24001,
      "successful_allocations": 1889,
      "frees": 1776,
      "allocation_failures": 0,
      "peak_used_pages": 932,
      "final_used_pages": 113,
      "every_record_balanced": true
    }
  },
  "report": {
    "schema": "nodefusion.artifact-evidence/1",
    "run": "rcore-2026A-ch8-basic-observed-v3",
    "kernel_kind": "rcore",
    "source_sha256": {
      "trace.nfb": "622803b5b083af1421b98534f89d27342a8eec662d96d1c7066bc641fc2d1efa",
      "manifest.json": "cfdff3b0993178c3267e57e3a0a98c600c17e5761aa5c66b1253dc3a02057422",
      "watchlist.json": "2c6c3bcbae436cdd6e5d2c946de47503ab7ed2cd4d44367eb40cb20d7cfaa8b9",
      "kernel_layout.json": "7c252b6e6d10955abc24fc83dd4c3b58769a296f21e643ebc6388419e1c7dcf7"
    },
    "kernel_elf_sha256": "8a4623db77a9e9d393e7513fe4b502e93e1a43f9f67e75cdca849aba248a382b",
    "archive_bytes": {
      "trace.nfb": 2804984386,
      "kernel_elf": 8394888
    },
    "html_sha256": "e67ecb82ed94553be4efecad08b3caf58307c4d858e0065d01882648f37997bb",
    "html_bytes": 3461736,
    "function_trace": {
      "kind": "return-matched observed frames",
      "raw": 2744958,
      "retained": 35295,
      "returns": 32007907,
      "matched_returns": 1449618,
      "nested_entries": 908281
    },
    "event_selection": {
      "applied": true,
      "policy": "kind-preserving/systematic-v5",
      "raw": 6529623,
      "retained": 150000,
      "dropped": 6379623,
      "target_limit": 150000,
      "minimum_spare": 25000,
      "always_keep": "all events of kinds whose count fits their per-kind budget",
      "priority_raw": 4028210,
      "spare_raw": 2501413,
      "semantic_budget": 125000,
      "minimum_per_kind": 64,
      "semantic_kind_budgets": {
        "bcache.read": 182,
        "disk.balloc": 1,
        "disk.io": 98,
        "file.alloc": 26,
        "file.read": 67,
        "file.write": 78,
        "firmware.trap": 19,
        "heap.alloc": 168,
        "heap.alloc_zeroed": 99,
        "heap.free": 202,
        "heap.init": 1,
        "heap.realloc": 77,
        "inode.alloc": 1,
        "inode.bmap": 138,
        "inode.dirlookup": 27,
        "inode.namei": 26,
        "inode.read": 93,
        "inode.write": 1,
        "interrupt.timer": 94,
        "pagetable.map": 1080,
        "pagetable.new": 65,
        "pagetable.unmap": 77,
        "phys.alloc": 119,
        "phys.free": 115,
        "pipe.alloc": 1,
        "pipe.read": 1,
        "pipe.write": 1,
        "proc.create": 1,
        "proc.exec": 22,
        "proc.exit": 64,
        "proc.fork": 64,
        "proc.initproc": 1,
        "sbi.call": 112141,
        "sched.enter": 1,
        "sched.switch": 752,
        "sched.yield": 372,
        "sync.sleep": 94,
        "sync.wakeup": 93,
        "syscall.close": 7,
        "syscall.condvar_create": 1,
        "syscall.condvar_signal": 1,
        "syscall.condvar_wait": 1,
        "syscall.dispatch": 1364,
        "syscall.enter": 1365,
        "syscall.exec": 22,
        "syscall.exit": 66,
        "syscall.fork": 64,
        "syscall.get_time": 65,
        "syscall.getpid": 1,
        "syscall.mutex_create": 7,
        "syscall.mutex_lock": 546,
        "syscall.mutex_unlock": 547,
        "syscall.open": 3,
        "syscall.pipe": 1,
        "syscall.read": 68,
        "syscall.semaphore_create": 4,
        "syscall.semaphore_down": 110,
        "syscall.semaphore_up": 111,
        "syscall.sleep": 42,
        "syscall.thread_create": 36,
        "syscall.waitpid": 125,
        "syscall.waittid": 102,
        "syscall.write": 79,
        "syscall.yield": 163,
        "task.kstack_alloc": 66,
        "task.kstack_free": 65,
        "task.pid_free": 64,
        "thread.alloc_res": 59,
        "thread.create": 36,
        "thread.exit": 65,
        "thread.free_res": 65,
        "trap.enter": 1396,
        "trap.userret": 1396,
        "vm.copy": 65,
        "vm.from_elf": 23,
        "vm.init": 1,
        "vm.kernel_init": 1,
        "vm.map": 81,
        "vm.remove_area": 71,
        "vm.translate_buffer": 86,
        "vm.translate_str": 26,
        "vm.unmap": 71
      },
      "diagnostic_kind_budgets": {
        "func.Bitmap::alloc": 2,
        "func.DiskInode::read_at": 82,
        "func.DiskInode::write_at": 2,
        "func.OpenFlags::fmt": 26,
        "func.Pipe::readable": 1,
        "func.Pipe::writable": 1,
        "func.Stdin::readable": 69,
        "func.TaskUserRes::new": 64,
        "func.VirtIOBlk<H>::read_block": 72,
        "func.VirtIOBlk<H>::write_block": 7,
        "func._ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h80d93d6b6c52f006E": 22,
        "func._ZN14virtio_drivers3blk18VirtIOBlk$LT$H$GT$3new17hd0994094e238c41aE": 1,
        "func._ZN14virtio_drivers5queue15VirtQueueLayout3new17h7aaf6b4f08dcf027E": 1,
        "func._ZN14virtio_drivers5queue18VirtQueue$LT$H$GT$3add17h4f2ee69aa36c0d88E": 73,
        "func._ZN14virtio_drivers5queue18VirtQueue$LT$H$GT$3new17h7c5cf7b80638d7f9E": 1,
        "func._ZN14virtio_drivers5queue18VirtQueue$LT$H$GT$8pop_used17hfc65a0b96b7a0919E": 72,
        "func._ZN14virtio_drivers6header12VirtIOHeader10begin_init17h795d65a8d0af631dE": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader10queue_used17h5b6678026a3fda0fE": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader11finish_init17hae5b7dc3a0dc2cfcE": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader14max_queue_size17hbb211c5b2227154fE": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader20read_device_features17hefc0f27940cdd1c5E": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader21write_driver_features17hcc4876566dfc1ed3E": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader6notify17hdbf2aa8e4d952112E": 72,
        "func._ZN14virtio_drivers6header12VirtIOHeader9queue_set17hbe60585434592044E": 1,
        "func._ZN169_$LT$$LT$alloc..collections..vec_deque..drain..Drain$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop27join_head_and_tail_wrapping17hb615e667bd357b4fE": 68,
        "func._ZN17compiler_builtins3mem6memcmp17he7310feea8ae4946E": 65,
        "func._ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 104,
        "func._ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 89,
        "func._ZN17compiler_builtins3mem7memmove17h6641c454cd41b91bE": 80,
        "func._ZN22buddy_system_allocator4Heap4init17h47bfef144f322583E": 1,
        "func._ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 103,
        "func._ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 102,
        "func._ZN2os4sync7condvar7Condvar4wait17h418641be24186f3aE": 1,
        "func._ZN2os4sync7condvar7Condvar6signal17h4c0212f84b928a27E": 1,
        "func._ZN2os4sync8deadlock8Resource4wait17h80ef70f5fd5fd38eE": 316,
        "func._ZN2os4sync8deadlock8Resource7acquire17h0a744ff02afb4eaeE": 195,
        "func._ZN2os4sync8deadlock8Resource7release17h387aaf90adac0e36E": 195,
        "func._ZN2os4sync9semaphore9Semaphore2up17h389c1ccf5208c3c2E": 76,
        "func._ZN2os4sync9semaphore9Semaphore4down17hac2c5dc44f5b9508E": 75,
        "func._ZN2os4task9processor15current_trap_cx17hc9e1c3c670439f5aE": 709,
        "func._ZN2os4task9processor18current_user_token17hdf0e1c577e037a2dE": 400,
        "func._ZN2os5timer12remove_timer17h0ed1728b21e220aeE": 64,
        "func._ZN2os5timer9add_timer17h25cbc380c45acfcdE": 42,
        "func._ZN2os7console5print17h76082438996b95aaE": 1,
        "func._ZN2os7logging4init17h43a4b1cf83580136E": 1,
        "func._ZN3log10set_logger17h2e922c1b310ebd70E": 1,
        "func._ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 632,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h272baaea76a4c063E": 4,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h70b4ea4648a50a65E": 4,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h9537dceab56d2f80E": 11,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hee1d685352b051b7E": 1,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf13e6f2a4b087de8E": 2,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf2692f804825f417E": 1,
        "func._ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 68,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h28c07ce205a13d86E": 632,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h50f658cd4efd4b33E": 67,
        "func._ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 632,
        "func._ZN4core3fmt3num3imp51_$LT$impl$u20$core..fmt..Display$u20$for$u20$u8$GT$3fmt17hadfe9ae40f4f8fc6E": 4,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 633,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u16$GT$3fmt17h85fdf36f0c7ec4e6E": 2,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4e8d7a453206e77eE": 4,
        "func._ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h83de4ff3c495723bE": 629,
        "func._ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 1198,
        "func._ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17hc86b5565edb93905E": 8,
        "func._ZN4core3fmt5Write10write_char17hce1d0d5a3be5c61bE.llvm.4190863479722300543": 13,
        "func._ZN4core3fmt5write17h49a560cace6c89d2E": 1205,
        "func._ZN4core3fmt8builders10DebugTuple5field17h162956c99153b8a6E": 11,
        "func._ZN4core3fmt8builders11DebugStruct5field17h6ad11fbdee0221d3E": 11,
        "func._ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 1199,
        "func._ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 1199,
        "func._ZN4core3fmt9Formatter25debug_tuple_field1_finish17h7b601b839df38242E": 11,
        "func._ZN4core3fmt9Formatter26debug_struct_fields_finish17h8cadbb2c8dec12feE": 1,
        "func._ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 637,
        "func._ZN4core3fmt9Formatter9write_str17h181bd84b330b3504E": 51,
        "func._ZN4core3ptr39drop_in_place$LT$os..fs..pipe..Pipe$GT$17h8c9baf6588a8e0daE": 2,
        "func._ZN4core3ptr43drop_in_place$LT$os..fs..inode..OSInode$GT$17hbe427dab70e05934E": 3,
        "func._ZN4core3ptr47drop_in_place$LT$os..sync..mutex..MutexSpin$GT$17h80f8f0ac166adfa4E": 1,
        "func._ZN4core3ptr51drop_in_place$LT$os..sync..mutex..MutexBlocking$GT$17h39e2cc653f598adbE": 6,
        "func._ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 78,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h02c0071edb2656e8E.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h0a023521ce53713fE.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h0dee91d5cde1cd37E.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h150f5133d22cd268E.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h157aaa584482d225E.llvm.6040992934245635117": 2,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h24eedd7dae424938E.llvm.6040992934245635117": 2,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h7d4291c6a86a6a27E.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h80e33ab45403a6a6E.llvm.11230785868374640620": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h838f173c4d3dfe02E.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h89654cc05573968bE.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17hb0d9363ad231a5aaE.llvm.6040992934245635117": 1,
        "func._ZN50_$LT$$RF$mut$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hcd5944d5ff9c921eE": 1,
        "func._ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17h6a8c331078677d7aE.llvm.2057350605574355411": 632,
        "func._ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h29f7700aa99cb934E.llvm.4190863479722300543": 5185,
        "func._ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 633,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h998a3e8fddbe337bE": 73,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17hf00c3f10cff78e80E": 64,
        "func._ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17h8c3f3340159c890aE": 68,
        "func._ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17h9bc1587e00af06ecE": 64,
        "func._ZN5alloc11collections5btree4node210Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$16insert_recursing17h4e09ae1a2ce62ab0E": 70,
        "func._ZN5alloc11collections5btree4node210Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$16insert_recursing17h58c572b033f1cf25E": 64,
        "func._ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$15bulk_steal_left17hb607efb53e115ac8E": 3,
        "func._ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$8do_merge17h50343fd10a4768f0E": 8,
        "func._ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$14remove_leaf_kv17hda491be77a31c11aE": 67,
        "func._ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$14remove_leaf_kv17he25de69b4e40e560E": 64,
        "func._ZN5alloc11collections5btree6remove269_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..LeafOrInternal$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$18remove_kv_tracking17h0a4a69f04856055cE": 64,
        "func._ZN5alloc11collections5btree6remove269_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..LeafOrInternal$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$18remove_kv_tracking17h5a4f9e70cef21d30E": 67,
        "func._ZN5alloc11collections5btree8navigate263_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Dying$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$$GT$27deallocating_next_unchecked17h3c026b03bb456ae6E": 70,
        "func._ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4grow17h30b26e8068a7cd60E.llvm.1451390653963600059": 15,
        "func._ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4grow17hf6c65aa2ea0c3527E.llvm.11230785868374640620": 3,
        "func._ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9wrap_copy17hbca5ec0e3ff07ce2E": 69,
        "func._ZN5alloc3vec16Vec$LT$T$C$A$GT$11resize_with17h58ddafd23af7324eE": 580,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h05c9317fb0d98ae9E": 72,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h071cae9273e23dd7E": 1,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h20360bb4228da682E": 64,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h549075da9ea406caE": 26,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h5546c2cc8d915116E": 1,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h88e32e1c8ba5fa9dE": 23,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17ha326f4f6cb368e21E": 4,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hb19e7d9134a8fd7cE": 12,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hba033c4d12bae5a7E": 64,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hbd710d266b771528E": 65,
        "func._ZN5alloc7raw_vec11finish_grow17h1c14e794b93d472cE": 10,
        "func._ZN5alloc7raw_vec11finish_grow17h2f38419a86fe04d9E.llvm.10237508459952846522": 76,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h16cbca8d168bb856E": 10,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hc589b1cbc7da6827E": 64,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hf7c0923958275c08E": 10,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h0b033fb5247cdb44E": 53,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h0b0709c0f2fc9180E": 6,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h2dbc31778a06bb11E": 1,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h335587fb241adf1bE": 66,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h34dd228448f6ce7cE": 1,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h5442bbec84571cd0E": 69,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h9baa4c6c3f7fd615E": 3,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hede2f442620291feE": 65,
        "func._ZN60_$LT$alloc..string..String$u20$as$u20$core..fmt..Display$GT$3fmt17habcb84d1216ded9bE": 64,
        "func._ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 633,
        "func._ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h15eb1c3d4a808e05E": 4,
        "func._ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h583ebf9eb72f2b5fE": 2,
        "func._ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h58d44d85024ee7efE": 1,
        "func._ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17ha1e140568d2e771bE": 3,
        "func._ZN68_$LT$virtio_drivers..blk..BlkFeature$u20$as$u20$core..fmt..Debug$GT$3fmt17haa2677946c1fde60E": 1,
        "func._ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$4lock17heea72e959e46c06fE": 183,
        "func._ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$6unlock17ha9d57784ec39885eE": 184,
        "func._ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$8resource17h0696f1f890c5a8d8E": 184,
        "func._ZN73_$LT$os..sync..mutex..MutexBlocking$u20$as$u20$os..sync..mutex..Mutex$GT$4lock17h4184078422fff753E": 43,
        "func._ZN73_$LT$os..sync..mutex..MutexBlocking$u20$as$u20$os..sync..mutex..Mutex$GT$6unlock17h3b3aa17afe511db5E": 43,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 102,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 102,
        "func._ZN8xmas_elf7ElfFile14program_header17h33fe96bc4d1e97faE": 65,
        "func._ZN8xmas_elf7ElfFile3new17h20f397223943fbdaE": 23,
        "func._ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 65,
        "func._ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 64,
        "func._ZN98_$LT$alloc..collections..vec_deque..drain..Drain$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h5303d25be4d89695E": 73,
        "func._ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h5d3c7c6d4f878b36E": 22,
        "func._ZN99_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc5201e649d2a4821E": 68,
        "func.__rust_alloc": 74,
        "func.__rust_alloc_zeroed": 73,
        "func.__rust_dealloc": 81,
        "func.__rust_realloc": 7,
        "func.all_write_ends_closed": 1,
        "func.available_read": 3,
        "func.available_write": 1,
        "func.block_cache_sync_all": 2,
        "func.create": 1,
        "func.current_process": 680,
        "func.current_trap_cx_user_va": 395,
        "func.dealloc_tid": 64,
        "func.dealloc_user_res": 65,
        "func.dma_alloc": 1,
        "func.increase_size": 2,
        "func.init_frame_allocator": 1,
        "func.list_apps": 1,
        "func.ls": 1,
        "func.memcmp": 64,
        "func.memcpy": 103,
        "func.memmove": 80,
        "func.memset": 89,
        "func.name": 75,
        "func.open": 1,
        "func.read_all": 23,
        "func.read_byte": 13,
        "func.readable": 3,
        "func.remap_test": 1,
        "func.remove_task": 64,
        "func.root_inode": 1,
        "func.rust_main": 1,
        "func.trap_cx_ppn": 64,
        "func.unmap@0": 65,
        "func.virt_to_phys": 90,
        "func.writable": 1,
        "func.write_byte": 13
      },
      "minimum_per_diagnostic_kind": 64,
      "semantic_retained": 125000,
      "spare_budget": 25000,
      "stride": null,
      "retained_kinds": {
        "bcache.read": 182,
        "disk.balloc": 1,
        "disk.io": 98,
        "file.alloc": 26,
        "file.read": 67,
        "file.write": 78,
        "firmware.trap": 19,
        "func.Bitmap::alloc": 2,
        "func.DiskInode::read_at": 82,
        "func.DiskInode::write_at": 2,
        "func.OpenFlags::fmt": 26,
        "func.Pipe::readable": 1,
        "func.Pipe::writable": 1,
        "func.Stdin::readable": 69,
        "func.TaskUserRes::new": 64,
        "func.VirtIOBlk<H>::read_block": 72,
        "func.VirtIOBlk<H>::write_block": 7,
        "func._ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h80d93d6b6c52f006E": 22,
        "func._ZN14virtio_drivers3blk18VirtIOBlk$LT$H$GT$3new17hd0994094e238c41aE": 1,
        "func._ZN14virtio_drivers5queue15VirtQueueLayout3new17h7aaf6b4f08dcf027E": 1,
        "func._ZN14virtio_drivers5queue18VirtQueue$LT$H$GT$3add17h4f2ee69aa36c0d88E": 73,
        "func._ZN14virtio_drivers5queue18VirtQueue$LT$H$GT$3new17h7c5cf7b80638d7f9E": 1,
        "func._ZN14virtio_drivers5queue18VirtQueue$LT$H$GT$8pop_used17hfc65a0b96b7a0919E": 72,
        "func._ZN14virtio_drivers6header12VirtIOHeader10begin_init17h795d65a8d0af631dE": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader10queue_used17h5b6678026a3fda0fE": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader11finish_init17hae5b7dc3a0dc2cfcE": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader14max_queue_size17hbb211c5b2227154fE": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader20read_device_features17hefc0f27940cdd1c5E": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader21write_driver_features17hcc4876566dfc1ed3E": 1,
        "func._ZN14virtio_drivers6header12VirtIOHeader6notify17hdbf2aa8e4d952112E": 72,
        "func._ZN14virtio_drivers6header12VirtIOHeader9queue_set17hbe60585434592044E": 1,
        "func._ZN169_$LT$$LT$alloc..collections..vec_deque..drain..Drain$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop27join_head_and_tail_wrapping17hb615e667bd357b4fE": 68,
        "func._ZN17compiler_builtins3mem6memcmp17he7310feea8ae4946E": 65,
        "func._ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 104,
        "func._ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 89,
        "func._ZN17compiler_builtins3mem7memmove17h6641c454cd41b91bE": 80,
        "func._ZN22buddy_system_allocator4Heap4init17h47bfef144f322583E": 1,
        "func._ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 103,
        "func._ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 102,
        "func._ZN2os4sync7condvar7Condvar4wait17h418641be24186f3aE": 1,
        "func._ZN2os4sync7condvar7Condvar6signal17h4c0212f84b928a27E": 1,
        "func._ZN2os4sync8deadlock8Resource4wait17h80ef70f5fd5fd38eE": 316,
        "func._ZN2os4sync8deadlock8Resource7acquire17h0a744ff02afb4eaeE": 195,
        "func._ZN2os4sync8deadlock8Resource7release17h387aaf90adac0e36E": 195,
        "func._ZN2os4sync9semaphore9Semaphore2up17h389c1ccf5208c3c2E": 76,
        "func._ZN2os4sync9semaphore9Semaphore4down17hac2c5dc44f5b9508E": 75,
        "func._ZN2os4task9processor15current_trap_cx17hc9e1c3c670439f5aE": 709,
        "func._ZN2os4task9processor18current_user_token17hdf0e1c577e037a2dE": 400,
        "func._ZN2os5timer12remove_timer17h0ed1728b21e220aeE": 64,
        "func._ZN2os5timer9add_timer17h25cbc380c45acfcdE": 42,
        "func._ZN2os7console5print17h76082438996b95aaE": 1,
        "func._ZN2os7logging4init17h43a4b1cf83580136E": 1,
        "func._ZN3log10set_logger17h2e922c1b310ebd70E": 1,
        "func._ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 632,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h272baaea76a4c063E": 4,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h70b4ea4648a50a65E": 4,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h9537dceab56d2f80E": 11,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hee1d685352b051b7E": 1,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf13e6f2a4b087de8E": 2,
        "func._ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf2692f804825f417E": 1,
        "func._ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 68,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h28c07ce205a13d86E": 632,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h50f658cd4efd4b33E": 67,
        "func._ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 632,
        "func._ZN4core3fmt3num3imp51_$LT$impl$u20$core..fmt..Display$u20$for$u20$u8$GT$3fmt17hadfe9ae40f4f8fc6E": 4,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 633,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u16$GT$3fmt17h85fdf36f0c7ec4e6E": 2,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4e8d7a453206e77eE": 4,
        "func._ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h83de4ff3c495723bE": 629,
        "func._ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 1198,
        "func._ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17hc86b5565edb93905E": 8,
        "func._ZN4core3fmt5Write10write_char17hce1d0d5a3be5c61bE.llvm.4190863479722300543": 13,
        "func._ZN4core3fmt5write17h49a560cace6c89d2E": 1205,
        "func._ZN4core3fmt8builders10DebugTuple5field17h162956c99153b8a6E": 11,
        "func._ZN4core3fmt8builders11DebugStruct5field17h6ad11fbdee0221d3E": 11,
        "func._ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 1199,
        "func._ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 1199,
        "func._ZN4core3fmt9Formatter25debug_tuple_field1_finish17h7b601b839df38242E": 11,
        "func._ZN4core3fmt9Formatter26debug_struct_fields_finish17h8cadbb2c8dec12feE": 1,
        "func._ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 637,
        "func._ZN4core3fmt9Formatter9write_str17h181bd84b330b3504E": 51,
        "func._ZN4core3ptr39drop_in_place$LT$os..fs..pipe..Pipe$GT$17h8c9baf6588a8e0daE": 2,
        "func._ZN4core3ptr43drop_in_place$LT$os..fs..inode..OSInode$GT$17hbe427dab70e05934E": 3,
        "func._ZN4core3ptr47drop_in_place$LT$os..sync..mutex..MutexSpin$GT$17h80f8f0ac166adfa4E": 1,
        "func._ZN4core3ptr51drop_in_place$LT$os..sync..mutex..MutexBlocking$GT$17h39e2cc653f598adbE": 6,
        "func._ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 78,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h02c0071edb2656e8E.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h0a023521ce53713fE.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h0dee91d5cde1cd37E.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h150f5133d22cd268E.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h157aaa584482d225E.llvm.6040992934245635117": 2,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h24eedd7dae424938E.llvm.6040992934245635117": 2,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h7d4291c6a86a6a27E.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h80e33ab45403a6a6E.llvm.11230785868374640620": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h838f173c4d3dfe02E.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h89654cc05573968bE.llvm.6040992934245635117": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17hb0d9363ad231a5aaE.llvm.6040992934245635117": 1,
        "func._ZN50_$LT$$RF$mut$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hcd5944d5ff9c921eE": 1,
        "func._ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17h6a8c331078677d7aE.llvm.2057350605574355411": 632,
        "func._ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h29f7700aa99cb934E.llvm.4190863479722300543": 5185,
        "func._ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 633,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h998a3e8fddbe337bE": 73,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17hf00c3f10cff78e80E": 64,
        "func._ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17h8c3f3340159c890aE": 68,
        "func._ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17h9bc1587e00af06ecE": 64,
        "func._ZN5alloc11collections5btree4node210Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$16insert_recursing17h4e09ae1a2ce62ab0E": 70,
        "func._ZN5alloc11collections5btree4node210Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$16insert_recursing17h58c572b033f1cf25E": 64,
        "func._ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$15bulk_steal_left17hb607efb53e115ac8E": 3,
        "func._ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$8do_merge17h50343fd10a4768f0E": 8,
        "func._ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$14remove_leaf_kv17hda491be77a31c11aE": 67,
        "func._ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$14remove_leaf_kv17he25de69b4e40e560E": 64,
        "func._ZN5alloc11collections5btree6remove269_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..LeafOrInternal$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$18remove_kv_tracking17h0a4a69f04856055cE": 64,
        "func._ZN5alloc11collections5btree6remove269_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..LeafOrInternal$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$18remove_kv_tracking17h5a4f9e70cef21d30E": 67,
        "func._ZN5alloc11collections5btree8navigate263_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Dying$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$$GT$27deallocating_next_unchecked17h3c026b03bb456ae6E": 70,
        "func._ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4grow17h30b26e8068a7cd60E.llvm.1451390653963600059": 15,
        "func._ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4grow17hf6c65aa2ea0c3527E.llvm.11230785868374640620": 3,
        "func._ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9wrap_copy17hbca5ec0e3ff07ce2E": 69,
        "func._ZN5alloc3vec16Vec$LT$T$C$A$GT$11resize_with17h58ddafd23af7324eE": 580,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h05c9317fb0d98ae9E": 72,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h071cae9273e23dd7E": 1,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h20360bb4228da682E": 64,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h549075da9ea406caE": 26,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h5546c2cc8d915116E": 1,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h88e32e1c8ba5fa9dE": 23,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17ha326f4f6cb368e21E": 4,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hb19e7d9134a8fd7cE": 12,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hba033c4d12bae5a7E": 64,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hbd710d266b771528E": 65,
        "func._ZN5alloc7raw_vec11finish_grow17h1c14e794b93d472cE": 10,
        "func._ZN5alloc7raw_vec11finish_grow17h2f38419a86fe04d9E.llvm.10237508459952846522": 76,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h16cbca8d168bb856E": 10,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hc589b1cbc7da6827E": 64,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hf7c0923958275c08E": 10,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h0b033fb5247cdb44E": 53,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h0b0709c0f2fc9180E": 6,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h2dbc31778a06bb11E": 1,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h335587fb241adf1bE": 66,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h34dd228448f6ce7cE": 1,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h5442bbec84571cd0E": 69,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h9baa4c6c3f7fd615E": 3,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hede2f442620291feE": 65,
        "func._ZN60_$LT$alloc..string..String$u20$as$u20$core..fmt..Display$GT$3fmt17habcb84d1216ded9bE": 64,
        "func._ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 633,
        "func._ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h15eb1c3d4a808e05E": 4,
        "func._ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h583ebf9eb72f2b5fE": 2,
        "func._ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h58d44d85024ee7efE": 1,
        "func._ZN64_$LT$volatile..Volatile$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17ha1e140568d2e771bE": 3,
        "func._ZN68_$LT$virtio_drivers..blk..BlkFeature$u20$as$u20$core..fmt..Debug$GT$3fmt17haa2677946c1fde60E": 1,
        "func._ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$4lock17heea72e959e46c06fE": 183,
        "func._ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$6unlock17ha9d57784ec39885eE": 184,
        "func._ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$8resource17h0696f1f890c5a8d8E": 184,
        "func._ZN73_$LT$os..sync..mutex..MutexBlocking$u20$as$u20$os..sync..mutex..Mutex$GT$4lock17h4184078422fff753E": 43,
        "func._ZN73_$LT$os..sync..mutex..MutexBlocking$u20$as$u20$os..sync..mutex..Mutex$GT$6unlock17h3b3aa17afe511db5E": 43,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 102,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 102,
        "func._ZN8xmas_elf7ElfFile14program_header17h33fe96bc4d1e97faE": 65,
        "func._ZN8xmas_elf7ElfFile3new17h20f397223943fbdaE": 23,
        "func._ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 65,
        "func._ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 64,
        "func._ZN98_$LT$alloc..collections..vec_deque..drain..Drain$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h5303d25be4d89695E": 73,
        "func._ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h5d3c7c6d4f878b36E": 22,
        "func._ZN99_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc5201e649d2a4821E": 68,
        "func.__rust_alloc": 74,
        "func.__rust_alloc_zeroed": 73,
        "func.__rust_dealloc": 81,
        "func.__rust_realloc": 7,
        "func.all_write_ends_closed": 1,
        "func.available_read": 3,
        "func.available_write": 1,
        "func.block_cache_sync_all": 2,
        "func.create": 1,
        "func.current_process": 680,
        "func.current_trap_cx_user_va": 395,
        "func.dealloc_tid": 64,
        "func.dealloc_user_res": 65,
        "func.dma_alloc": 1,
        "func.increase_size": 2,
        "func.init_frame_allocator": 1,
        "func.list_apps": 1,
        "func.ls": 1,
        "func.memcmp": 64,
        "func.memcpy": 103,
        "func.memmove": 80,
        "func.memset": 89,
        "func.name": 75,
        "func.open": 1,
        "func.read_all": 23,
        "func.read_byte": 13,
        "func.readable": 3,
        "func.remap_test": 1,
        "func.remove_task": 64,
        "func.root_inode": 1,
        "func.rust_main": 1,
        "func.trap_cx_ppn": 64,
        "func.unmap@0": 65,
        "func.virt_to_phys": 90,
        "func.writable": 1,
        "func.write_byte": 13,
        "heap.alloc": 168,
        "heap.alloc_zeroed": 99,
        "heap.free": 202,
        "heap.init": 1,
        "heap.realloc": 77,
        "inode.alloc": 1,
        "inode.bmap": 138,
        "inode.dirlookup": 27,
        "inode.namei": 26,
        "inode.read": 93,
        "inode.write": 1,
        "interrupt.timer": 94,
        "pagetable.map": 1080,
        "pagetable.new": 65,
        "pagetable.unmap": 77,
        "phys.alloc": 119,
        "phys.free": 115,
        "pipe.alloc": 1,
        "pipe.read": 1,
        "pipe.write": 1,
        "proc.create": 1,
        "proc.exec": 22,
        "proc.exit": 64,
        "proc.fork": 64,
        "proc.initproc": 1,
        "sbi.call": 112141,
        "sched.enter": 1,
        "sched.switch": 752,
        "sched.yield": 372,
        "sync.sleep": 94,
        "sync.wakeup": 93,
        "syscall.close": 7,
        "syscall.condvar_create": 1,
        "syscall.condvar_signal": 1,
        "syscall.condvar_wait": 1,
        "syscall.dispatch": 1364,
        "syscall.enter": 1365,
        "syscall.exec": 22,
        "syscall.exit": 66,
        "syscall.fork": 64,
        "syscall.get_time": 65,
        "syscall.getpid": 1,
        "syscall.mutex_create": 7,
        "syscall.mutex_lock": 546,
        "syscall.mutex_unlock": 547,
        "syscall.open": 3,
        "syscall.pipe": 1,
        "syscall.read": 68,
        "syscall.semaphore_create": 4,
        "syscall.semaphore_down": 110,
        "syscall.semaphore_up": 111,
        "syscall.sleep": 42,
        "syscall.thread_create": 36,
        "syscall.waitpid": 125,
        "syscall.waittid": 102,
        "syscall.write": 79,
        "syscall.yield": 163,
        "task.kstack_alloc": 66,
        "task.kstack_free": 65,
        "task.pid_free": 64,
        "thread.alloc_res": 59,
        "thread.create": 36,
        "thread.exit": 65,
        "thread.free_res": 65,
        "trap.enter": 1396,
        "trap.userret": 1396,
        "vm.copy": 65,
        "vm.from_elf": 23,
        "vm.init": 1,
        "vm.kernel_init": 1,
        "vm.map": 81,
        "vm.remove_area": 71,
        "vm.translate_buffer": 86,
        "vm.translate_str": 26,
        "vm.unmap": 71
      },
      "dropped_kinds": {
        "bcache.read": 3787,
        "disk.io": 1088,
        "file.read": 117,
        "file.write": 456,
        "func.DiskInode::read_at": 2465,
        "func.Stdin::readable": 645,
        "func.TaskUserRes::new": 38,
        "func.VirtIOBlk<H>::read_block": 1107,
        "func._ZN14virtio_drivers5queue18VirtQueue$LT$H$GT$3add17h4f2ee69aa36c0d88E": 1113,
        "func._ZN14virtio_drivers5queue18VirtQueue$LT$H$GT$8pop_used17hfc65a0b96b7a0919E": 1114,
        "func._ZN14virtio_drivers6header12VirtIOHeader6notify17hdbf2aa8e4d952112E": 1114,
        "func._ZN169_$LT$$LT$alloc..collections..vec_deque..drain..Drain$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop27join_head_and_tail_wrapping17hb615e667bd357b4fE": 628,
        "func._ZN17compiler_builtins3mem6memcmp17he7310feea8ae4946E": 44,
        "func._ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 5225,
        "func._ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 3336,
        "func._ZN17compiler_builtins3mem7memmove17h6641c454cd41b91bE": 2139,
        "func._ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 5126,
        "func._ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 5045,
        "func._ZN2os4sync8deadlock8Resource4wait17h80ef70f5fd5fd38eE": 33370,
        "func._ZN2os4sync8deadlock8Resource7acquire17h0a744ff02afb4eaeE": 17449,
        "func._ZN2os4sync8deadlock8Resource7release17h387aaf90adac0e36E": 17449,
        "func._ZN2os4sync9semaphore9Semaphore2up17h389c1ccf5208c3c2E": 1525,
        "func._ZN2os4sync9semaphore9Semaphore4down17hac2c5dc44f5b9508E": 1526,
        "func._ZN2os4task9processor15current_trap_cx17hc9e1c3c670439f5aE": 85492,
        "func._ZN2os4task9processor18current_user_token17hdf0e1c577e037a2dE": 44643,
        "func._ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 75389,
        "func._ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 482,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h28c07ce205a13d86E": 75389,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h50f658cd4efd4b33E": 399,
        "func._ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 75389,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 75388,
        "func._ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h83de4ff3c495723bE": 75007,
        "func._ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 150469,
        "func._ZN4core3fmt5write17h49a560cace6c89d2E": 151362,
        "func._ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 150476,
        "func._ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 150476,
        "func._ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 75934,
        "func._ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 1869,
        "func._ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17h6a8c331078677d7aE.llvm.2057350605574355411": 75389,
        "func._ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h29f7700aa99cb934E.llvm.4190863479722300543": 679046,
        "func._ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 75388,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h998a3e8fddbe337bE": 1304,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17hf00c3f10cff78e80E": 2,
        "func._ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17h8c3f3340159c890aE": 430,
        "func._ZN5alloc11collections5btree4node210Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$16insert_recursing17h4e09ae1a2ce62ab0E": 693,
        "func._ZN5alloc11collections5btree4node210Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$16insert_recursing17h58c572b033f1cf25E": 1,
        "func._ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$14remove_leaf_kv17hda491be77a31c11aE": 431,
        "func._ZN5alloc11collections5btree6remove269_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..LeafOrInternal$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$18remove_kv_tracking17h5a4f9e70cef21d30E": 431,
        "func._ZN5alloc11collections5btree8navigate263_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Dying$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..Edge$GT$$GT$27deallocating_next_unchecked17h3c026b03bb456ae6E": 778,
        "func._ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9wrap_copy17hbca5ec0e3ff07ce2E": 627,
        "func._ZN5alloc3vec16Vec$LT$T$C$A$GT$11resize_with17h58ddafd23af7324eE": 68394,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h05c9317fb0d98ae9E": 1091,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hba033c4d12bae5a7E": 35,
        "func._ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hbd710d266b771528E": 63,
        "func._ZN5alloc7raw_vec11finish_grow17h2f38419a86fe04d9E.llvm.10237508459952846522": 1533,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17hc589b1cbc7da6827E": 97,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h335587fb241adf1bE": 314,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h5442bbec84571cd0E": 734,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hede2f442620291feE": 126,
        "func._ZN60_$LT$alloc..string..String$u20$as$u20$core..fmt..Display$GT$3fmt17habcb84d1216ded9bE": 20,
        "func._ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 75388,
        "func._ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$4lock17heea72e959e46c06fE": 15817,
        "func._ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$6unlock17ha9d57784ec39885eE": 15816,
        "func._ZN69_$LT$os..sync..mutex..MutexSpin$u20$as$u20$os..sync..mutex..Mutex$GT$8resource17h0696f1f890c5a8d8E": 15858,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 5127,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 5045,
        "func._ZN8xmas_elf7ElfFile14program_header17h33fe96bc4d1e97faE": 50,
        "func._ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 50,
        "func._ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 51,
        "func._ZN98_$LT$alloc..collections..vec_deque..drain..Drain$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h5303d25be4d89695E": 1090,
        "func._ZN99_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc5201e649d2a4821E": 533,
        "func.__rust_alloc": 1219,
        "func.__rust_alloc_zeroed": 1106,
        "func.__rust_dealloc": 2246,
        "func.current_process": 81639,
        "func.current_trap_cx_user_va": 43818,
        "func.dealloc_tid": 36,
        "func.dealloc_user_res": 35,
        "func.memcmp": 45,
        "func.memcpy": 5226,
        "func.memmove": 2139,
        "func.memset": 3336,
        "func.name": 1432,
        "func.trap_cx_ppn": 60,
        "func.unmap@0": 234,
        "func.virt_to_phys": 3468,
        "heap.alloc": 3339,
        "heap.alloc_zeroed": 1115,
        "heap.free": 4437,
        "heap.realloc": 431,
        "inode.bmap": 2387,
        "inode.read": 947,
        "interrupt.timer": 967,
        "pagetable.map": 32645,
        "pagetable.new": 24,
        "pagetable.unmap": 421,
        "phys.alloc": 1770,
        "phys.free": 1661,
        "proc.fork": 1,
        "sbi.call": 3601651,
        "sched.switch": 22123,
        "sched.yield": 9898,
        "sync.sleep": 973,
        "sync.wakeup": 932,
        "syscall.dispatch": 41787,
        "syscall.enter": 41787,
        "syscall.exit": 34,
        "syscall.fork": 1,
        "syscall.get_time": 19,
        "syscall.mutex_lock": 15496,
        "syscall.mutex_unlock": 15495,
        "syscall.read": 117,
        "syscall.semaphore_down": 1491,
        "syscall.semaphore_up": 1490,
        "syscall.waitpid": 1965,
        "syscall.waittid": 1234,
        "syscall.write": 456,
        "syscall.yield": 3181,
        "task.kstack_alloc": 36,
        "task.kstack_free": 34,
        "thread.exit": 35,
        "thread.free_res": 35,
        "trap.enter": 42816,
        "trap.userret": 42817,
        "vm.map": 540,
        "vm.remove_area": 228,
        "vm.translate_buffer": 718,
        "vm.unmap": 228
      }
    },
    "coverage": {
      "status": "complete",
      "percent": 100.0,
      "passed": 4092209,
      "total": 4092209,
      "metrics": {
        "covered": 18,
        "applicable": 18,
        "not_applicable": [
          "log_commits"
        ],
        "missing": [],
        "sampled": []
      },
      "semantic_events": {
        "raw": 4028210,
        "unknown": 0,
        "unknown_fields": {},
        "dropped_from_interactive": 3903210
      },
      "snapshots": {
        "checked": 584,
        "incomplete": 0,
        "physical_memory": 0,
        "physical_counters": 0,
        "processes": 0,
        "resources": 0,
        "pre_initialization": {
          "physical_memory": 0,
          "physical_counters": 7,
          "processes": 9,
          "resources": 17
        }
      },
      "snapshot_not_applicable": [],
      "manifest_fields": {
        "cells": 60504,
        "states": {
          "empty": 575,
          "present": 59929
        },
        "not_applicable": 0,
        "unresolved": 0
      },
      "full_watch_scope": true,
      "function_watch_drops": 0,
      "function_stacks_available": true,
      "observation_points": {
        "unresolved": [],
        "reported_missing": 18,
        "layout_missing": [
          "app_manager",
          "task_manager_inner"
        ]
      },
      "blockers": []
    },
    "source_view": {
      "run": "rcore-2026A-ch8-basic-observed-v3",
      "files": 39,
      "locations": 719,
      "revision": "00b2a84360710640fbde595c194a7f2447e755f2"
    }
  },
  "console_sha256": "0e03b47eb1156af283dc10f337d8b26900083c007f17fdcdc46289fef0fa3ffa",
  "outcome": "completed",
  "trace_complete": true,
  "started_utc": "2026-09-27T18:41:42.640199+00:00",
  "qemu_command": "cd \"/home/joseph/nf/education-2026A-20260927/rcore-ch8-observed-v3\" && exec qemu-system-riscv64 -machine virt -bios default -kernel os/target/riscv64gc-unknown-none-elf/release/os.bin -m 128M -drive file=user/target/riscv64gc-unknown-none-elf/release/fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0 -smp 1 -nographic -qmp tcp:127.0.0.1:42833,server=on,wait=off -plugin /home/joseph/nf/education-2026A-20260927/tool/nodefusion/plugin/libnf.so,out=/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch8-basic-observed-v3/trace.nfb,sample=200000,snap=3198046,maxram=268435456,returns=1,snapstart=0,bootsnap=0,ramsize=134217728,watch=/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch8-basic-observed-v3/watchlist.txt -icount shift=3",
  "archive": {
    "run_path": "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch8-basic-observed-v3",
    "trace_sha256": "622803b5b083af1421b98534f89d27342a8eec662d96d1c7066bc641fc2d1efa",
    "trace_bytes": 2804984386
  },
  "analysis_recovery": {
    "reason": "original driver terminated after complete capture before analysis output",
    "analysis_command_executed_separately": [
      "/home/joseph/nf/venv313/bin/python",
      "-m",
      "scripts.regenerate_artifact",
      "--run",
      "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch8-basic-observed-v3",
      "--out",
      "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch8-basic-observed-v3/rcore-2026A-ch8-basic-observed-v3.html"
    ],
    "finalizer_sha256": "0272be2b2cffeb9abd4a96ad079b4f933a712de2268da22d620ea65b3acd51fc",
    "original_preflight_sha256": "471f70370c2ce15dae2feee96b6bcca93ec05bb52e7b8f16cf09a8e50433399b"
  }
}
