{
  "schema": "nodefusion.education-recording/1",
  "course": "2026A",
  "chapter": 4,
  "variant": "observed",
  "run": "rcore-2026A-ch4-observed",
  "html": "rcore-2026A-ch4-observed.html",
  "source": {
    "kernel_commit": "ef2dfc4c23c70a1eb4c6a0b30feb694b2d09a73d",
    "kernel_patch": "diff --git a/os/src/mm/frame_allocator.rs b/os/src/mm/frame_allocator.rs\nindex 01e62fd..6a3f192 100644\n--- a/os/src/mm/frame_allocator.rs\n+++ b/os/src/mm/frame_allocator.rs\n@@ -8,6 +8,34 @@ use alloc::vec::Vec;\n use core::fmt::{self, Debug, Formatter};\n use lazy_static::*;\n \n+const NFT_KALLOC: u64 = 1;\n+const NFT_KFREE: u64 = 5;\n+const NFT_ALLOCATOR_STATE: u64 = 6;\n+\n+#[repr(C)]\n+struct NfTraceRecord {\n+    type_: u64,\n+    a: [u64; 4],\n+}\n+\n+#[no_mangle]\n+#[inline(never)]\n+/// Read an observation record while its stack storage is live.\n+pub extern \"C\" fn nftrace_commit_point(record: *const u64) {\n+    if !record.is_null() {\n+        // The caller keeps this stack record alive until the function returns.\n+        core::hint::black_box(unsafe { core::ptr::read_volatile(record) });\n+    }\n+}\n+\n+fn nodefusion_trace_page(kind: u64, paddr: usize, free_pages: usize, used_pages: usize) {\n+    let record = NfTraceRecord {\n+        type_: kind,\n+        a: [paddr as u64, 1, free_pages as u64, used_pages as u64],\n+    };\n+    nftrace_commit_point(&record as *const NfTraceRecord as *const u64);\n+}\n+\n /// tracker for physical page frame allocation and deallocation\n pub struct FrameTracker {\n     /// physical page number\n@@ -48,6 +76,7 @@ pub struct StackFrameAllocator {\n     current: usize,\n     end: usize,\n     recycled: Vec<usize>,\n+    allocated: usize,\n }\n \n impl StackFrameAllocator {\n@@ -63,17 +92,22 @@ impl FrameAllocator for StackFrameAllocator {\n             current: 0,\n             end: 0,\n             recycled: Vec::new(),\n+            allocated: 0,\n         }\n     }\n     fn alloc(&mut self) -> Option<PhysPageNum> {\n-        if let Some(ppn) = self.recycled.pop() {\n+        let result = if let Some(ppn) = self.recycled.pop() {\n             Some(ppn.into())\n         } else if self.current == self.end {\n             None\n         } else {\n             self.current += 1;\n             Some((self.current - 1).into())\n+        };\n+        if result.is_some() {\n+            self.allocated += 1;\n         }\n+        result\n     }\n     fn dealloc(&mut self, ppn: PhysPageNum) {\n         let ppn = ppn.0;\n@@ -83,6 +117,13 @@ impl FrameAllocator for StackFrameAllocator {\n         }\n         // recycle\n         self.recycled.push(ppn);\n+        self.allocated -= 1;\n+    }\n+}\n+\n+impl StackFrameAllocator {\n+    fn page_counts(&self) -> (usize, usize) {\n+        (self.end - self.current + self.recycled.len(), self.allocated)\n     }\n }\n \n@@ -102,19 +143,38 @@ pub fn init_frame_allocator() {\n         PhysAddr::from(ekernel as usize).ceil(),\n         PhysAddr::from(MEMORY_END).floor(),\n     );\n+    let (free_pages, used_pages) = FRAME_ALLOCATOR.exclusive_access().page_counts();\n+    let record = NfTraceRecord {\n+        type_: NFT_ALLOCATOR_STATE,\n+        a: [free_pages as u64, used_pages as u64, 0, 0],\n+    };\n+    nftrace_commit_point(&record as *const NfTraceRecord as *const u64);\n }\n \n /// Allocate a physical page frame in FrameTracker style\n+#[inline(never)]\n pub fn frame_alloc() -> Option<FrameTracker> {\n-    FRAME_ALLOCATOR\n-        .exclusive_access()\n-        .alloc()\n-        .map(FrameTracker::new)\n+    let (ppn, free_pages, used_pages) = {\n+        let mut allocator = FRAME_ALLOCATOR.exclusive_access();\n+        let ppn = allocator.alloc();\n+        let (free_pages, used_pages) = allocator.page_counts();\n+        (ppn, free_pages, used_pages)\n+    };\n+    let frame = ppn.map(FrameTracker::new);\n+    let paddr = frame.as_ref().map_or(0, |frame| PhysAddr::from(frame.ppn).0);\n+    nodefusion_trace_page(NFT_KALLOC, paddr, free_pages, used_pages);\n+    frame\n }\n \n /// Deallocate a physical page frame with a given ppn\n+#[inline(never)]\n pub fn frame_dealloc(ppn: PhysPageNum) {\n-    FRAME_ALLOCATOR.exclusive_access().dealloc(ppn);\n+    let (free_pages, used_pages) = {\n+        let mut allocator = FRAME_ALLOCATOR.exclusive_access();\n+        allocator.dealloc(ppn);\n+        allocator.page_counts()\n+    };\n+    nodefusion_trace_page(NFT_KFREE, PhysAddr::from(ppn).0, free_pages, used_pages);\n }\n \n #[allow(unused)]\ndiff --git a/os/src/mm/heap_allocator.rs b/os/src/mm/heap_allocator.rs\nindex e5f8b30..e39a7cc 100644\n--- a/os/src/mm/heap_allocator.rs\n+++ b/os/src/mm/heap_allocator.rs\n@@ -1,10 +1,44 @@\n //! The global allocator\n use crate::config::KERNEL_HEAP_SIZE;\n use buddy_system_allocator::LockedHeap;\n+use core::alloc::{GlobalAlloc, Layout};\n+use core::ops::Deref;\n+\n+struct ObservedHeap(LockedHeap);\n+\n+impl Deref for ObservedHeap {\n+    type Target = LockedHeap;\n+\n+    fn deref(&self) -> &Self::Target {\n+        &self.0\n+    }\n+}\n+\n+unsafe impl GlobalAlloc for ObservedHeap {\n+    #[inline(never)]\n+    unsafe fn alloc(&self, layout: Layout) -> *mut u8 {\n+        GlobalAlloc::alloc(&self.0, layout)\n+    }\n+\n+    #[inline(never)]\n+    unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) {\n+        GlobalAlloc::dealloc(&self.0, ptr, layout)\n+    }\n+\n+    #[inline(never)]\n+    unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 {\n+        GlobalAlloc::realloc(&self.0, ptr, layout, new_size)\n+    }\n+\n+    #[inline(never)]\n+    unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 {\n+        GlobalAlloc::alloc_zeroed(&self.0, layout)\n+    }\n+}\n \n #[global_allocator]\n /// heap allocator instance\n-static HEAP_ALLOCATOR: LockedHeap = LockedHeap::empty();\n+static HEAP_ALLOCATOR: ObservedHeap = ObservedHeap(LockedHeap::empty());\n \n #[alloc_error_handler]\n /// panic when heap allocation error occurs\ndiff --git a/os/src/mm/memory_set.rs b/os/src/mm/memory_set.rs\nindex 5854e42..221b957 100644\n--- a/os/src/mm/memory_set.rs\n+++ b/os/src/mm/memory_set.rs\n@@ -191,6 +191,12 @@ lazy_static! {\n     };\n }\n \n+#[inline(never)]\n+/// Observe an accepted complete-region removal before clearing its mappings.\n+pub fn nodefusion_vm_unmap_region(start_vpn: usize, end_vpn: usize) {\n+    core::hint::black_box((start_vpn, end_vpn));\n+}\n+\n impl MemorySet {\n     /// Create a new empty `MemorySet`.\n     pub fn new_bare() -> Self {\n@@ -204,6 +210,7 @@ impl MemorySet {\n         self.page_table.token()\n     }\n \n+    #[inline(never)]\n     fn push(&mut self, mut map_area: MapArea) -> Option<()> {\n         map_area.map(&mut self.page_table)?;\n         self.areas.push(map_area);\n@@ -397,6 +404,7 @@ impl MemorySet {\n                 && area.vpn_range.get_start() == start\n                 && area.vpn_range.get_end() == end\n         })?;\n+        nodefusion_vm_unmap_region(start.0, end.0);\n         let mut area = self.areas.remove(index);\n         area.unmap(&mut self.page_table);\n         Some(())\ndiff --git a/os/src/mm/page_table.rs b/os/src/mm/page_table.rs\nindex d260c6e..c63dc6a 100644\n--- a/os/src/mm/page_table.rs\n+++ b/os/src/mm/page_table.rs\n@@ -89,6 +89,7 @@ pub struct PageTable {\n \n impl PageTable {\n     /// Create a new page table\n+    #[inline(never)]\n     pub fn new() -> Self {\n         let frame = frame_alloc().unwrap();\n         PageTable {\n@@ -154,6 +155,7 @@ impl PageTable {\n     /// Constraints: Use a 4 KiB Sv39 mapping with `V` and the requested flags.\n     /// This page table owns its intermediate page table frames through `frames`;\n     /// ownership of the mapped data frame remains with the caller.\n+    #[inline(never)]\n     pub fn map(&mut self, vpn: VirtPageNum, ppn: PhysPageNum, flags: PTEFlags) -> Option<()> {\n         let pte = self.find_pte_create(vpn)?;\n         if pte.is_valid() {\ndiff --git a/os/src/task/mod.rs b/os/src/task/mod.rs\nindex 5739112..fadf002 100644\n--- a/os/src/task/mod.rs\n+++ b/os/src/task/mod.rs\n@@ -217,6 +217,7 @@ fn mark_current_exited() {\n }\n \n /// Suspend the current 'Running' task and run the next task in task list.\n+#[inline(never)]\n pub fn suspend_current_and_run_next() {\n     mark_current_suspended();\n     run_next_task();\n",
    "user_commit": "a0593662ad55d670ba8c27ce1763347cd0dd552f",
    "user_patch": "",
    "nodefusion_commit": "bce9de05d36d5cdd0afc71121e7c9b1016c08664",
    "nodefusion_runtime_overrides": [
      {
        "path": "nodefusion/host/analyze.py",
        "sha256": "b1c4a595a54058841630ba7b18818688efd00b8085b03ca91767208ec3b499e8",
        "patch": "diff --git a/nodefusion/host/analyze.py b/nodefusion/host/analyze.py\nindex a6ca1e7..31b6599 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"
      },
      {
        "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": "1a96912593cf39d23f487ba2dd3e8df52c5a9ea87d47cc8eb2c3c5d350e7b918",
        "patch": "diff --git a/nodefusion/manifests/rcore.toml b/nodefusion/manifests/rcore.toml\nindex 3579114..da4c91d 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,7 +208,7 @@ 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+pgtbl = { path = \"memory_set.page_table.root_ppn.__0\", reader = \"ppn\", role = \"address_space_root\" }\n prio  = { path = \"inner.priority\",  reader = \"usize\", role = \"priority\" }\n \n \n@@ -223,7 +218,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 +472,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 +663,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 +835,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 +900,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 +1558,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": "b08a4f8edac1a7fbd40397ed8c21217cf8dfb03ba9fad496142892f59e4bd5f8",
        "patch": "diff --git a/nodefusion/manifests/ucore.toml b/nodefusion/manifests/ucore.toml\nindex 4312842..ce8c88f 100644\n--- a/nodefusion/manifests/ucore.toml\n+++ b/nodefusion/manifests/ucore.toml\n@@ -33,14 +33,23 @@ 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@@ -112,6 +121,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 +320,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 +517,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 +535,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"
      }
    ],
    "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": "b1c4a595a54058841630ba7b18818688efd00b8085b03ca91767208ec3b499e8",
      "nodefusion/host/assets/app.css": "84035a9ddf0faf3ae1d4ebdd7049c142fcee11c20851afb16f636e7220c71949",
      "nodefusion/host/assets/app.js": "ef4a9150df38c69cc2f382836b6e7ded63d58413e3b930d79b5db119548cc3f2",
      "nodefusion/host/bundle.py": "6cc7fa9b185ffaf40c964bb2b8b90b1d144ef6cb987e85a386c1a14f332a9e2d",
      "nodefusion/host/callstack.py": "a091f8123f33797a628ebcaabbeae721fe458b009b69cee6697221971b7f2fc0",
      "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": "1a96912593cf39d23f487ba2dd3e8df52c5a9ea87d47cc8eb2c3c5d350e7b918",
      "nodefusion/manifests/rel4.toml": "ca43c2847a9ca757542ef3ed3e276dc7130c92b25150c73deb3e2a20faf8c37e",
      "nodefusion/manifests/starry.toml": "8a3ce9735d4c948322962b8c532be334034ad608aac28a041bb58876012dcae8",
      "nodefusion/manifests/ucore.toml": "b08a4f8edac1a7fbd40397ed8c21217cf8dfb03ba9fad496142892f59e4bd5f8",
      "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": "05812b00228ba601209ec909213381d47272efdbcac3957914f4590a1d705cfe",
      "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": "0767cb84c8ccea309e70cdfc6e6f7cb5f3d6be09c7c9065a1119c142e1519892",
      "nodefusion/tests/test_cache_hit_contract.py": "087277fe75bf38d8e83453b3671da4825f7586382fc1fa5300b3dc79272fbee7",
      "nodefusion/tests/test_calibration_failure_reason.py": "02449f59da919dc09781a66ad57789a98775b3888d1480f4f3064b4d8a1139da",
      "nodefusion/tests/test_callstack.py": "f81c2f42b453d26287f1cbab835cff47a2722d8c62b486529fbbcfc20c94c872",
      "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": "7d066f949905b4df866f0ebfa3ead6cc3b78c7d8416d8b0a5660332dd2f6ef47",
      "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": "ec42c43dca4a41d6456915b698cd688097fda34438a57057faa74bf10236ee86",
      "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": "f831e3504531cdd9f8f588428e7a7e86fa420bdee27cbf74522fac05bb27d6fa",
      "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": "a9a2a0b654cc803871d3702c25d2cfae95f8b1d3d8a881f00579fb3a0ef2fd02",
      "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": "b84db1f0c55683e9ccf8eaafdcef09dd37bb67a5fa555814d4d750ff97f844df",
      "nodefusion/tests/test_recording_tail.py": "833b8e33c6d111b49790beea1ba7ab81b23bd7ea907a2155f981967bcb61a614",
      "nodefusion/tests/test_regenerate_artifact.py": "4b2046cdcc98219c4181ca174f4ca02b6e3b5cfbfdd7bb6506c85112007e21f3",
      "nodefusion/tests/test_resolve.py": "7e26f572cfaa0576e626a7458a23fd8f911a3d766ecad3df7954ce6f78207230",
      "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": "17ef07a10857516f2fd29186157b945ff67490d2cdac94166cf370e96171e034",
      "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": "c5b167cca227c5620b958329f5461232bc73e22997e5fe58a02859bb3664feef",
      "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-ch4-observed-source.tar.gz",
      "sha256": "efc407443b7f03893a403b366bc26c0eb7c43609ba9513d2df3bced57a7d3df2",
      "bytes": 1676840
    }
  },
  "workload": {
    "mode": "official-base-programs",
    "user_programs": {
      "ch2b_bad_address.bin": "06347ef4b47d7d0853e8fee66524e06ca8baea7f272e426a489683c6f6ef78e1",
      "ch2b_bad_instructions.bin": "c62b150b404dc1c95fa24b9395a654ffb8fe946e8913afdee4040eb17b54cda6",
      "ch2b_bad_register.bin": "0e2375149458961b6c62914c94f238ee6f7d4925eab8d25737908dacd8f4b542",
      "ch2b_hello_world.bin": "0390418069b07e9f2897cb98c1d2677e2911733f64405520b39f987ed5b44e66",
      "ch2b_power_3.bin": "7e946705f598ee538a04f32e69a3cfbf14d08786fb8942029d4348469e3413da",
      "ch2b_power_5.bin": "a977d6874dc53e99c66b6601f86a62caa0fab9f1a49a3e06d7874e81f87b4414",
      "ch2b_power_7.bin": "fd11415f169ed3670042bf1ac530492463c92a47f84a8f88d05ea0a0a8f526f2",
      "ch3_sleep.bin": "f3d6bc0351823251ac2f6f42945bc94ff8736cbf4e98afb2f97b9b0da4310cd7",
      "ch3_sleep1.bin": "badb8164c8e0d9dba49e4ff88299372c7bb57e9d858d92111872fda968b42eaf",
      "ch3_trace.bin": "f48564ec3fd08cbd55755aff7d650d766762404c1b5204df127bf3af772cddc6",
      "ch3b_yield0.bin": "ce57a0bdd5c9bc8788783efe9f7995a58680142330ba4ad0d50234150b90285e",
      "ch3b_yield1.bin": "f9b8ddaefa4d215f66dc434a9efa81b74694adfadbc24daddd28f4eca986b412",
      "ch3b_yield2.bin": "197aed43bbcd6093e0055566bc2425a94ec636f05c8832f74af90a9c3e431b7b",
      "ch4_mmap0.bin": "0211b715b4e944c38f931831c402163a32512195009c3e3abe1f96b1dc3ecbfa",
      "ch4_mmap1.bin": "391f9d626b46788309ee8bd74eed26934c974b86827ead9f1ee474dd87aa415e",
      "ch4_mmap2.bin": "b2f1b5aa53e45360711ff0dce879f14921d8347ff85df768382ab0ac26e2113a",
      "ch4_mmap3.bin": "d948fc201473a8459b0d635184ca891acab693af16b6a2bb854c175e41ada39a",
      "ch4_trace1.bin": "f97e8efbebe38f729d07a20b4cc24cd4bc2dcbee000ec81fd5f86230c8f9f28a",
      "ch4_unmap.bin": "9f2aa5e6b4043a18fc871fa2785ba3b85bdfc067fd38a434c49753ba619712dd",
      "ch4_unmap2.bin": "17184ca4b39881a4f1aab9715bed68fb438ab9122d57d3f87d50ee0efcab4458",
      "ch4b_sbrk.bin": "5db58894ec31434d6bd825a7cefeb90ca50071a967e8ecce4c8c2cbf6a64a843"
    },
    "loaded_user_elfs": {
      "ch2b_bad_address.elf": "171dc1a64f3498cbca813349afe8be5589481c7b57c0e3b42b6eecd7417142a8",
      "ch2b_bad_instructions.elf": "0d67c4570d0f9770157afff34c6816613f822be0f0bea30ec05b5d560970d001",
      "ch2b_bad_register.elf": "120fa181bd5be2819baf873532357c11b634f5ffa33847574475d2e9950c01d2",
      "ch2b_hello_world.elf": "72a60818f85903a3207926e2d5e0e940cc437bfa3f496e78cc243c995f5e79fd",
      "ch2b_power_3.elf": "95341948c6c4cc973e28a1d735995bbd0918f23bf9bfdef24243615bc3e12e25",
      "ch2b_power_5.elf": "1ecbd52c68cd5936bd8f2d487901d9b2c6a711e511ba0251f64eb3a63aaba12a",
      "ch2b_power_7.elf": "a5ed792848253b435225c4ed4dc8064cb65ece554e6d0db0f4bf65ed7c9ba5c7",
      "ch3_sleep.elf": "b98df4f9d97e3cfcc3b5b59a43ac6ee4fbf0b83847a614e5aa7b919b1513f63a",
      "ch3_sleep1.elf": "5facc6e42edc3cb7c24c5b5bad1c50f3db6419ed9c27cbc1fa7c1a8c25a4b677",
      "ch3_trace.elf": "71bc814e7ee39acd6af2db3af3d03755b9796dcb985f57bfef9125e876758a57",
      "ch3b_yield0.elf": "1449a21015d920e8cb3d3504ffe51c10cd7bee2952dce44be699f451667e3fb6",
      "ch3b_yield1.elf": "ec3be3205215a535d2bf8659d5926fb5a56bef41bad046ea32279daf7af85341",
      "ch3b_yield2.elf": "34fc7fbde41531715e7b8df5aba82188f7a43595216420f10a51d57633f1437c",
      "ch4_mmap0.elf": "3210c35fee0c4666ba6a8f1aaa5a52fd741f394957babc8a8ba10a55be9fa79f",
      "ch4_mmap1.elf": "c77a9c5174db0e025afda679a166706a1d1a3a50180b33a98535aff75872689f",
      "ch4_mmap2.elf": "a2a0a777ee6427ff79b7002af0bdd9cbbd97f53063601a78a708ca6acb3504ee",
      "ch4_mmap3.elf": "53c7aef09b85612cb31cb581410aa5300f8e3d1d05c33bed3fe5b9c08948f388",
      "ch4_trace1.elf": "677c44eae147b49b44cd8298c8d404e0f7b4e98846abc3e465ae21b3474a7da3",
      "ch4_unmap.elf": "e1eec3fe5c85ea4d55e6c0aad3a970680200473e89c329879d9e31512bbed58a",
      "ch4_unmap2.elf": "568b7d0c246055056faedbf2f248623427dd9ce69d7944ccb18785e9e25143a5",
      "ch4b_sbrk.elf": "c2786aab40c8d27e43d792b9e3cd49fd1803e4f23d95779b8f26c24de3972127"
    },
    "embedded_user_apps": {
      "observed": {
        "ch2b_bad_address.elf": {
          "sha256": "171dc1a64f3498cbca813349afe8be5589481c7b57c0e3b42b6eecd7417142a8",
          "bytes": 21360,
          "start": 2149650616,
          "end": 2149671976
        },
        "ch2b_bad_instructions.elf": {
          "sha256": "0d67c4570d0f9770157afff34c6816613f822be0f0bea30ec05b5d560970d001",
          "bytes": 21360,
          "start": 2149671976,
          "end": 2149693336
        },
        "ch2b_bad_register.elf": {
          "sha256": "120fa181bd5be2819baf873532357c11b634f5ffa33847574475d2e9950c01d2",
          "bytes": 21360,
          "start": 2149693336,
          "end": 2149714696
        },
        "ch2b_hello_world.elf": {
          "sha256": "72a60818f85903a3207926e2d5e0e940cc437bfa3f496e78cc243c995f5e79fd",
          "bytes": 21360,
          "start": 2149714696,
          "end": 2149736056
        },
        "ch2b_power_3.elf": {
          "sha256": "95341948c6c4cc973e28a1d735995bbd0918f23bf9bfdef24243615bc3e12e25",
          "bytes": 21360,
          "start": 2149736056,
          "end": 2149757416
        },
        "ch2b_power_5.elf": {
          "sha256": "1ecbd52c68cd5936bd8f2d487901d9b2c6a711e511ba0251f64eb3a63aaba12a",
          "bytes": 21360,
          "start": 2149757416,
          "end": 2149778776
        },
        "ch2b_power_7.elf": {
          "sha256": "a5ed792848253b435225c4ed4dc8064cb65ece554e6d0db0f4bf65ed7c9ba5c7",
          "bytes": 21360,
          "start": 2149778776,
          "end": 2149800136
        },
        "ch3_sleep.elf": {
          "sha256": "b98df4f9d97e3cfcc3b5b59a43ac6ee4fbf0b83847a614e5aa7b919b1513f63a",
          "bytes": 21360,
          "start": 2149800136,
          "end": 2149821496
        },
        "ch3_sleep1.elf": {
          "sha256": "5facc6e42edc3cb7c24c5b5bad1c50f3db6419ed9c27cbc1fa7c1a8c25a4b677",
          "bytes": 21360,
          "start": 2149821496,
          "end": 2149842856
        },
        "ch3_trace.elf": {
          "sha256": "71bc814e7ee39acd6af2db3af3d03755b9796dcb985f57bfef9125e876758a57",
          "bytes": 21360,
          "start": 2149842856,
          "end": 2149864216
        },
        "ch3b_yield0.elf": {
          "sha256": "1449a21015d920e8cb3d3504ffe51c10cd7bee2952dce44be699f451667e3fb6",
          "bytes": 21368,
          "start": 2149864216,
          "end": 2149885584
        },
        "ch3b_yield1.elf": {
          "sha256": "ec3be3205215a535d2bf8659d5926fb5a56bef41bad046ea32279daf7af85341",
          "bytes": 21368,
          "start": 2149885584,
          "end": 2149906952
        },
        "ch3b_yield2.elf": {
          "sha256": "34fc7fbde41531715e7b8df5aba82188f7a43595216420f10a51d57633f1437c",
          "bytes": 21368,
          "start": 2149906952,
          "end": 2149928320
        },
        "ch4_mmap0.elf": {
          "sha256": "3210c35fee0c4666ba6a8f1aaa5a52fd741f394957babc8a8ba10a55be9fa79f",
          "bytes": 21360,
          "start": 2149928320,
          "end": 2149949680
        },
        "ch4_mmap1.elf": {
          "sha256": "c77a9c5174db0e025afda679a166706a1d1a3a50180b33a98535aff75872689f",
          "bytes": 21360,
          "start": 2149949680,
          "end": 2149971040
        },
        "ch4_mmap2.elf": {
          "sha256": "a2a0a777ee6427ff79b7002af0bdd9cbbd97f53063601a78a708ca6acb3504ee",
          "bytes": 21360,
          "start": 2149971040,
          "end": 2149992400
        },
        "ch4_mmap3.elf": {
          "sha256": "53c7aef09b85612cb31cb581410aa5300f8e3d1d05c33bed3fe5b9c08948f388",
          "bytes": 21360,
          "start": 2149992400,
          "end": 2150013760
        },
        "ch4_trace1.elf": {
          "sha256": "677c44eae147b49b44cd8298c8d404e0f7b4e98846abc3e465ae21b3474a7da3",
          "bytes": 21360,
          "start": 2150013760,
          "end": 2150035120
        },
        "ch4_unmap.elf": {
          "sha256": "e1eec3fe5c85ea4d55e6c0aad3a970680200473e89c329879d9e31512bbed58a",
          "bytes": 21360,
          "start": 2150035120,
          "end": 2150056480
        },
        "ch4_unmap2.elf": {
          "sha256": "568b7d0c246055056faedbf2f248623427dd9ce69d7944ccb18785e9e25143a5",
          "bytes": 21360,
          "start": 2150056480,
          "end": 2150077840
        },
        "ch4b_sbrk.elf": {
          "sha256": "c2786aab40c8d27e43d792b9e3cd49fd1803e4f23d95779b8f26c24de3972127",
          "bytes": 21360,
          "start": 2150077840,
          "end": 2150099200
        }
      },
      "reference": {
        "ch2b_bad_address.elf": {
          "sha256": "171dc1a64f3498cbca813349afe8be5589481c7b57c0e3b42b6eecd7417142a8",
          "bytes": 21360,
          "start": 2149650616,
          "end": 2149671976
        },
        "ch2b_bad_instructions.elf": {
          "sha256": "0d67c4570d0f9770157afff34c6816613f822be0f0bea30ec05b5d560970d001",
          "bytes": 21360,
          "start": 2149671976,
          "end": 2149693336
        },
        "ch2b_bad_register.elf": {
          "sha256": "120fa181bd5be2819baf873532357c11b634f5ffa33847574475d2e9950c01d2",
          "bytes": 21360,
          "start": 2149693336,
          "end": 2149714696
        },
        "ch2b_hello_world.elf": {
          "sha256": "72a60818f85903a3207926e2d5e0e940cc437bfa3f496e78cc243c995f5e79fd",
          "bytes": 21360,
          "start": 2149714696,
          "end": 2149736056
        },
        "ch2b_power_3.elf": {
          "sha256": "95341948c6c4cc973e28a1d735995bbd0918f23bf9bfdef24243615bc3e12e25",
          "bytes": 21360,
          "start": 2149736056,
          "end": 2149757416
        },
        "ch2b_power_5.elf": {
          "sha256": "1ecbd52c68cd5936bd8f2d487901d9b2c6a711e511ba0251f64eb3a63aaba12a",
          "bytes": 21360,
          "start": 2149757416,
          "end": 2149778776
        },
        "ch2b_power_7.elf": {
          "sha256": "a5ed792848253b435225c4ed4dc8064cb65ece554e6d0db0f4bf65ed7c9ba5c7",
          "bytes": 21360,
          "start": 2149778776,
          "end": 2149800136
        },
        "ch3_sleep.elf": {
          "sha256": "b98df4f9d97e3cfcc3b5b59a43ac6ee4fbf0b83847a614e5aa7b919b1513f63a",
          "bytes": 21360,
          "start": 2149800136,
          "end": 2149821496
        },
        "ch3_sleep1.elf": {
          "sha256": "5facc6e42edc3cb7c24c5b5bad1c50f3db6419ed9c27cbc1fa7c1a8c25a4b677",
          "bytes": 21360,
          "start": 2149821496,
          "end": 2149842856
        },
        "ch3_trace.elf": {
          "sha256": "71bc814e7ee39acd6af2db3af3d03755b9796dcb985f57bfef9125e876758a57",
          "bytes": 21360,
          "start": 2149842856,
          "end": 2149864216
        },
        "ch3b_yield0.elf": {
          "sha256": "1449a21015d920e8cb3d3504ffe51c10cd7bee2952dce44be699f451667e3fb6",
          "bytes": 21368,
          "start": 2149864216,
          "end": 2149885584
        },
        "ch3b_yield1.elf": {
          "sha256": "ec3be3205215a535d2bf8659d5926fb5a56bef41bad046ea32279daf7af85341",
          "bytes": 21368,
          "start": 2149885584,
          "end": 2149906952
        },
        "ch3b_yield2.elf": {
          "sha256": "34fc7fbde41531715e7b8df5aba82188f7a43595216420f10a51d57633f1437c",
          "bytes": 21368,
          "start": 2149906952,
          "end": 2149928320
        },
        "ch4_mmap0.elf": {
          "sha256": "3210c35fee0c4666ba6a8f1aaa5a52fd741f394957babc8a8ba10a55be9fa79f",
          "bytes": 21360,
          "start": 2149928320,
          "end": 2149949680
        },
        "ch4_mmap1.elf": {
          "sha256": "c77a9c5174db0e025afda679a166706a1d1a3a50180b33a98535aff75872689f",
          "bytes": 21360,
          "start": 2149949680,
          "end": 2149971040
        },
        "ch4_mmap2.elf": {
          "sha256": "a2a0a777ee6427ff79b7002af0bdd9cbbd97f53063601a78a708ca6acb3504ee",
          "bytes": 21360,
          "start": 2149971040,
          "end": 2149992400
        },
        "ch4_mmap3.elf": {
          "sha256": "53c7aef09b85612cb31cb581410aa5300f8e3d1d05c33bed3fe5b9c08948f388",
          "bytes": 21360,
          "start": 2149992400,
          "end": 2150013760
        },
        "ch4_trace1.elf": {
          "sha256": "677c44eae147b49b44cd8298c8d404e0f7b4e98846abc3e465ae21b3474a7da3",
          "bytes": 21360,
          "start": 2150013760,
          "end": 2150035120
        },
        "ch4_unmap.elf": {
          "sha256": "e1eec3fe5c85ea4d55e6c0aad3a970680200473e89c329879d9e31512bbed58a",
          "bytes": 21360,
          "start": 2150035120,
          "end": 2150056480
        },
        "ch4_unmap2.elf": {
          "sha256": "568b7d0c246055056faedbf2f248623427dd9ce69d7944ccb18785e9e25143a5",
          "bytes": 21360,
          "start": 2150056480,
          "end": 2150077840
        },
        "ch4b_sbrk.elf": {
          "sha256": "c2786aab40c8d27e43d792b9e3cd49fd1803e4f23d95779b8f26c24de3972127",
          "bytes": 21360,
          "start": 2150077840,
          "end": 2150099200
        }
      }
    }
  },
  "versions": {
    "rustc": "rustc 1.80.0-nightly (c987ad527 2024-05-01)",
    "cargo": "cargo 1.80.0-nightly (6087566b3 2024-04-30)",
    "qemu-system-riscv64": "QEMU emulator version 10.2.2"
  },
  "build_context": {
    "kernel_commit": "ef2dfc4c23c70a1eb4c6a0b30feb694b2d09a73d",
    "kernel_patch": "diff --git a/os/src/mm/frame_allocator.rs b/os/src/mm/frame_allocator.rs\nindex 01e62fd..6a3f192 100644\n--- a/os/src/mm/frame_allocator.rs\n+++ b/os/src/mm/frame_allocator.rs\n@@ -8,6 +8,34 @@ use alloc::vec::Vec;\n use core::fmt::{self, Debug, Formatter};\n use lazy_static::*;\n \n+const NFT_KALLOC: u64 = 1;\n+const NFT_KFREE: u64 = 5;\n+const NFT_ALLOCATOR_STATE: u64 = 6;\n+\n+#[repr(C)]\n+struct NfTraceRecord {\n+    type_: u64,\n+    a: [u64; 4],\n+}\n+\n+#[no_mangle]\n+#[inline(never)]\n+/// Read an observation record while its stack storage is live.\n+pub extern \"C\" fn nftrace_commit_point(record: *const u64) {\n+    if !record.is_null() {\n+        // The caller keeps this stack record alive until the function returns.\n+        core::hint::black_box(unsafe { core::ptr::read_volatile(record) });\n+    }\n+}\n+\n+fn nodefusion_trace_page(kind: u64, paddr: usize, free_pages: usize, used_pages: usize) {\n+    let record = NfTraceRecord {\n+        type_: kind,\n+        a: [paddr as u64, 1, free_pages as u64, used_pages as u64],\n+    };\n+    nftrace_commit_point(&record as *const NfTraceRecord as *const u64);\n+}\n+\n /// tracker for physical page frame allocation and deallocation\n pub struct FrameTracker {\n     /// physical page number\n@@ -48,6 +76,7 @@ pub struct StackFrameAllocator {\n     current: usize,\n     end: usize,\n     recycled: Vec<usize>,\n+    allocated: usize,\n }\n \n impl StackFrameAllocator {\n@@ -63,17 +92,22 @@ impl FrameAllocator for StackFrameAllocator {\n             current: 0,\n             end: 0,\n             recycled: Vec::new(),\n+            allocated: 0,\n         }\n     }\n     fn alloc(&mut self) -> Option<PhysPageNum> {\n-        if let Some(ppn) = self.recycled.pop() {\n+        let result = if let Some(ppn) = self.recycled.pop() {\n             Some(ppn.into())\n         } else if self.current == self.end {\n             None\n         } else {\n             self.current += 1;\n             Some((self.current - 1).into())\n+        };\n+        if result.is_some() {\n+            self.allocated += 1;\n         }\n+        result\n     }\n     fn dealloc(&mut self, ppn: PhysPageNum) {\n         let ppn = ppn.0;\n@@ -83,6 +117,13 @@ impl FrameAllocator for StackFrameAllocator {\n         }\n         // recycle\n         self.recycled.push(ppn);\n+        self.allocated -= 1;\n+    }\n+}\n+\n+impl StackFrameAllocator {\n+    fn page_counts(&self) -> (usize, usize) {\n+        (self.end - self.current + self.recycled.len(), self.allocated)\n     }\n }\n \n@@ -102,19 +143,38 @@ pub fn init_frame_allocator() {\n         PhysAddr::from(ekernel as usize).ceil(),\n         PhysAddr::from(MEMORY_END).floor(),\n     );\n+    let (free_pages, used_pages) = FRAME_ALLOCATOR.exclusive_access().page_counts();\n+    let record = NfTraceRecord {\n+        type_: NFT_ALLOCATOR_STATE,\n+        a: [free_pages as u64, used_pages as u64, 0, 0],\n+    };\n+    nftrace_commit_point(&record as *const NfTraceRecord as *const u64);\n }\n \n /// Allocate a physical page frame in FrameTracker style\n+#[inline(never)]\n pub fn frame_alloc() -> Option<FrameTracker> {\n-    FRAME_ALLOCATOR\n-        .exclusive_access()\n-        .alloc()\n-        .map(FrameTracker::new)\n+    let (ppn, free_pages, used_pages) = {\n+        let mut allocator = FRAME_ALLOCATOR.exclusive_access();\n+        let ppn = allocator.alloc();\n+        let (free_pages, used_pages) = allocator.page_counts();\n+        (ppn, free_pages, used_pages)\n+    };\n+    let frame = ppn.map(FrameTracker::new);\n+    let paddr = frame.as_ref().map_or(0, |frame| PhysAddr::from(frame.ppn).0);\n+    nodefusion_trace_page(NFT_KALLOC, paddr, free_pages, used_pages);\n+    frame\n }\n \n /// Deallocate a physical page frame with a given ppn\n+#[inline(never)]\n pub fn frame_dealloc(ppn: PhysPageNum) {\n-    FRAME_ALLOCATOR.exclusive_access().dealloc(ppn);\n+    let (free_pages, used_pages) = {\n+        let mut allocator = FRAME_ALLOCATOR.exclusive_access();\n+        allocator.dealloc(ppn);\n+        allocator.page_counts()\n+    };\n+    nodefusion_trace_page(NFT_KFREE, PhysAddr::from(ppn).0, free_pages, used_pages);\n }\n \n #[allow(unused)]\ndiff --git a/os/src/mm/heap_allocator.rs b/os/src/mm/heap_allocator.rs\nindex e5f8b30..e39a7cc 100644\n--- a/os/src/mm/heap_allocator.rs\n+++ b/os/src/mm/heap_allocator.rs\n@@ -1,10 +1,44 @@\n //! The global allocator\n use crate::config::KERNEL_HEAP_SIZE;\n use buddy_system_allocator::LockedHeap;\n+use core::alloc::{GlobalAlloc, Layout};\n+use core::ops::Deref;\n+\n+struct ObservedHeap(LockedHeap);\n+\n+impl Deref for ObservedHeap {\n+    type Target = LockedHeap;\n+\n+    fn deref(&self) -> &Self::Target {\n+        &self.0\n+    }\n+}\n+\n+unsafe impl GlobalAlloc for ObservedHeap {\n+    #[inline(never)]\n+    unsafe fn alloc(&self, layout: Layout) -> *mut u8 {\n+        GlobalAlloc::alloc(&self.0, layout)\n+    }\n+\n+    #[inline(never)]\n+    unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) {\n+        GlobalAlloc::dealloc(&self.0, ptr, layout)\n+    }\n+\n+    #[inline(never)]\n+    unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 {\n+        GlobalAlloc::realloc(&self.0, ptr, layout, new_size)\n+    }\n+\n+    #[inline(never)]\n+    unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 {\n+        GlobalAlloc::alloc_zeroed(&self.0, layout)\n+    }\n+}\n \n #[global_allocator]\n /// heap allocator instance\n-static HEAP_ALLOCATOR: LockedHeap = LockedHeap::empty();\n+static HEAP_ALLOCATOR: ObservedHeap = ObservedHeap(LockedHeap::empty());\n \n #[alloc_error_handler]\n /// panic when heap allocation error occurs\ndiff --git a/os/src/mm/memory_set.rs b/os/src/mm/memory_set.rs\nindex 5854e42..221b957 100644\n--- a/os/src/mm/memory_set.rs\n+++ b/os/src/mm/memory_set.rs\n@@ -191,6 +191,12 @@ lazy_static! {\n     };\n }\n \n+#[inline(never)]\n+/// Observe an accepted complete-region removal before clearing its mappings.\n+pub fn nodefusion_vm_unmap_region(start_vpn: usize, end_vpn: usize) {\n+    core::hint::black_box((start_vpn, end_vpn));\n+}\n+\n impl MemorySet {\n     /// Create a new empty `MemorySet`.\n     pub fn new_bare() -> Self {\n@@ -204,6 +210,7 @@ impl MemorySet {\n         self.page_table.token()\n     }\n \n+    #[inline(never)]\n     fn push(&mut self, mut map_area: MapArea) -> Option<()> {\n         map_area.map(&mut self.page_table)?;\n         self.areas.push(map_area);\n@@ -397,6 +404,7 @@ impl MemorySet {\n                 && area.vpn_range.get_start() == start\n                 && area.vpn_range.get_end() == end\n         })?;\n+        nodefusion_vm_unmap_region(start.0, end.0);\n         let mut area = self.areas.remove(index);\n         area.unmap(&mut self.page_table);\n         Some(())\ndiff --git a/os/src/mm/page_table.rs b/os/src/mm/page_table.rs\nindex d260c6e..c63dc6a 100644\n--- a/os/src/mm/page_table.rs\n+++ b/os/src/mm/page_table.rs\n@@ -89,6 +89,7 @@ pub struct PageTable {\n \n impl PageTable {\n     /// Create a new page table\n+    #[inline(never)]\n     pub fn new() -> Self {\n         let frame = frame_alloc().unwrap();\n         PageTable {\n@@ -154,6 +155,7 @@ impl PageTable {\n     /// Constraints: Use a 4 KiB Sv39 mapping with `V` and the requested flags.\n     /// This page table owns its intermediate page table frames through `frames`;\n     /// ownership of the mapped data frame remains with the caller.\n+    #[inline(never)]\n     pub fn map(&mut self, vpn: VirtPageNum, ppn: PhysPageNum, flags: PTEFlags) -> Option<()> {\n         let pte = self.find_pte_create(vpn)?;\n         if pte.is_valid() {\ndiff --git a/os/src/task/mod.rs b/os/src/task/mod.rs\nindex 5739112..fadf002 100644\n--- a/os/src/task/mod.rs\n+++ b/os/src/task/mod.rs\n@@ -217,6 +217,7 @@ fn mark_current_exited() {\n }\n \n /// Suspend the current 'Running' task and run the next task in task list.\n+#[inline(never)]\n pub fn suspend_current_and_run_next() {\n     mark_current_suspended();\n     run_next_task();\n",
    "kernel_elf_sha256": "2851a05dc0e377c07ee76da70426ba3c17b0bbf42594af5215dd8bd48ef80925",
    "kernel_binary_sha256": "c5adac393fa6a9cf5f3ef14e88176b6f7f91db698f178ab53d8411e9c987a168",
    "user_commit": "a0593662ad55d670ba8c27ce1763347cd0dd552f",
    "user_patch": "",
    "selected_apps": {
      "ch2b_bad_address.bin": "06347ef4b47d7d0853e8fee66524e06ca8baea7f272e426a489683c6f6ef78e1",
      "ch2b_bad_instructions.bin": "c62b150b404dc1c95fa24b9395a654ffb8fe946e8913afdee4040eb17b54cda6",
      "ch2b_bad_register.bin": "0e2375149458961b6c62914c94f238ee6f7d4925eab8d25737908dacd8f4b542",
      "ch2b_hello_world.bin": "0390418069b07e9f2897cb98c1d2677e2911733f64405520b39f987ed5b44e66",
      "ch2b_power_3.bin": "7e946705f598ee538a04f32e69a3cfbf14d08786fb8942029d4348469e3413da",
      "ch2b_power_5.bin": "a977d6874dc53e99c66b6601f86a62caa0fab9f1a49a3e06d7874e81f87b4414",
      "ch2b_power_7.bin": "fd11415f169ed3670042bf1ac530492463c92a47f84a8f88d05ea0a0a8f526f2",
      "ch3_sleep.bin": "f3d6bc0351823251ac2f6f42945bc94ff8736cbf4e98afb2f97b9b0da4310cd7",
      "ch3_sleep1.bin": "badb8164c8e0d9dba49e4ff88299372c7bb57e9d858d92111872fda968b42eaf",
      "ch3_trace.bin": "f48564ec3fd08cbd55755aff7d650d766762404c1b5204df127bf3af772cddc6",
      "ch3b_yield0.bin": "ce57a0bdd5c9bc8788783efe9f7995a58680142330ba4ad0d50234150b90285e",
      "ch3b_yield1.bin": "f9b8ddaefa4d215f66dc434a9efa81b74694adfadbc24daddd28f4eca986b412",
      "ch3b_yield2.bin": "197aed43bbcd6093e0055566bc2425a94ec636f05c8832f74af90a9c3e431b7b",
      "ch4_mmap0.bin": "0211b715b4e944c38f931831c402163a32512195009c3e3abe1f96b1dc3ecbfa",
      "ch4_mmap1.bin": "391f9d626b46788309ee8bd74eed26934c974b86827ead9f1ee474dd87aa415e",
      "ch4_mmap2.bin": "b2f1b5aa53e45360711ff0dce879f14921d8347ff85df768382ab0ac26e2113a",
      "ch4_mmap3.bin": "d948fc201473a8459b0d635184ca891acab693af16b6a2bb854c175e41ada39a",
      "ch4_trace1.bin": "f97e8efbebe38f729d07a20b4cc24cd4bc2dcbee000ec81fd5f86230c8f9f28a",
      "ch4_unmap.bin": "9f2aa5e6b4043a18fc871fa2785ba3b85bdfc067fd38a434c49753ba619712dd",
      "ch4_unmap2.bin": "17184ca4b39881a4f1aab9715bed68fb438ab9122d57d3f87d50ee0efcab4458",
      "ch4b_sbrk.bin": "5db58894ec31434d6bd825a7cefeb90ca50071a967e8ecce4c8c2cbf6a64a843"
    },
    "loaded_apps": {
      "ch2b_bad_address.elf": "171dc1a64f3498cbca813349afe8be5589481c7b57c0e3b42b6eecd7417142a8",
      "ch2b_bad_instructions.elf": "0d67c4570d0f9770157afff34c6816613f822be0f0bea30ec05b5d560970d001",
      "ch2b_bad_register.elf": "120fa181bd5be2819baf873532357c11b634f5ffa33847574475d2e9950c01d2",
      "ch2b_hello_world.elf": "72a60818f85903a3207926e2d5e0e940cc437bfa3f496e78cc243c995f5e79fd",
      "ch2b_power_3.elf": "95341948c6c4cc973e28a1d735995bbd0918f23bf9bfdef24243615bc3e12e25",
      "ch2b_power_5.elf": "1ecbd52c68cd5936bd8f2d487901d9b2c6a711e511ba0251f64eb3a63aaba12a",
      "ch2b_power_7.elf": "a5ed792848253b435225c4ed4dc8064cb65ece554e6d0db0f4bf65ed7c9ba5c7",
      "ch3_sleep.elf": "b98df4f9d97e3cfcc3b5b59a43ac6ee4fbf0b83847a614e5aa7b919b1513f63a",
      "ch3_sleep1.elf": "5facc6e42edc3cb7c24c5b5bad1c50f3db6419ed9c27cbc1fa7c1a8c25a4b677",
      "ch3_trace.elf": "71bc814e7ee39acd6af2db3af3d03755b9796dcb985f57bfef9125e876758a57",
      "ch3b_yield0.elf": "1449a21015d920e8cb3d3504ffe51c10cd7bee2952dce44be699f451667e3fb6",
      "ch3b_yield1.elf": "ec3be3205215a535d2bf8659d5926fb5a56bef41bad046ea32279daf7af85341",
      "ch3b_yield2.elf": "34fc7fbde41531715e7b8df5aba82188f7a43595216420f10a51d57633f1437c",
      "ch4_mmap0.elf": "3210c35fee0c4666ba6a8f1aaa5a52fd741f394957babc8a8ba10a55be9fa79f",
      "ch4_mmap1.elf": "c77a9c5174db0e025afda679a166706a1d1a3a50180b33a98535aff75872689f",
      "ch4_mmap2.elf": "a2a0a777ee6427ff79b7002af0bdd9cbbd97f53063601a78a708ca6acb3504ee",
      "ch4_mmap3.elf": "53c7aef09b85612cb31cb581410aa5300f8e3d1d05c33bed3fe5b9c08948f388",
      "ch4_trace1.elf": "677c44eae147b49b44cd8298c8d404e0f7b4e98846abc3e465ae21b3474a7da3",
      "ch4_unmap.elf": "e1eec3fe5c85ea4d55e6c0aad3a970680200473e89c329879d9e31512bbed58a",
      "ch4_unmap2.elf": "568b7d0c246055056faedbf2f248623427dd9ce69d7944ccb18785e9e25143a5",
      "ch4b_sbrk.elf": "c2786aab40c8d27e43d792b9e3cd49fd1803e4f23d95779b8f26c24de3972127"
    },
    "loaded_apps_origin": "/home/joseph/nf/education-2026A-20260927/rcore-ch4/user/build/elf",
    "commands": [
      {
        "argv": [
          "cp",
          "-a",
          "/home/joseph/nf/education-2026A-20260927/rcore-ch4/user/build",
          "/home/joseph/nf/education-2026A-20260927/rcore-ch4-observed/user/build"
        ],
        "cwd": "/home/joseph/nf/education-2026A-20260927",
        "environment": {}
      },
      {
        "argv": [
          "cp",
          "/home/joseph/nf/education-2026A-20260927/rcore-ch4/os/Cargo.lock",
          "/home/joseph/nf/education-2026A-20260927/rcore-ch4-observed/os/Cargo.lock"
        ],
        "cwd": "/home/joseph/nf/education-2026A-20260927",
        "environment": {}
      },
      {
        "argv": [
          "cargo",
          "build",
          "--release",
          "--locked"
        ],
        "cwd": "/home/joseph/nf/education-2026A-20260927/rcore-ch4-observed/os",
        "environment": {
          "LOG": "TRACE",
          "CARGO_NET_GIT_FETCH_WITH_CLI": "true",
          "CARGO_PROFILE_RELEASE_DEBUG": "2"
        }
      },
      {
        "argv": [
          "rust-objcopy",
          "--binary-architecture=riscv64",
          "--strip-all",
          "-O",
          "binary",
          "/home/joseph/nf/education-2026A-20260927/rcore-ch4-observed/os/target/riscv64gc-unknown-none-elf/release/os",
          "/home/joseph/nf/education-2026A-20260927/rcore-ch4-observed/os/target/riscv64gc-unknown-none-elf/release/os.bin"
        ],
        "cwd": "/home/joseph/nf/education-2026A-20260927/rcore-ch4-observed/os",
        "environment": {}
      },
      {
        "argv": [
          "qemu-system-riscv64",
          "-nographic",
          "-machine",
          "virt",
          "-m",
          "128M",
          "-smp",
          "1",
          "-bios",
          "default",
          "-kernel",
          "/home/joseph/nf/education-2026A-20260927/rcore-ch4-observed/os/target/riscv64gc-unknown-none-elf/release/os.bin"
        ],
        "cwd": "/home/joseph/nf/education-2026A-20260927/rcore-ch4-observed"
      }
    ],
    "cargo_lock_sha256": "1ea2ccca1e0cf7eca924161563fbd6f7fbefc240c96caa9eb790b44ca84dafb4",
    "driver_sha256": "050bd4b8cebb243b67d96cac697a8166a433fab11ad280b99a4893fa822d3ca8",
    "patch_sha256": "e854c0c4022ebc720e84de3a31abc73b71d0ba5a8ad589153447364c8009e4d2",
    "qemu_exit": 0,
    "qemu_log_sha256": "81f0f7b841f95cd245d67dd2dbbf8b557fac4e732cb378393f4a93b761b74e29",
    "versions": {
      "rustc": "rustc 1.80.0-nightly (c987ad527 2024-05-01)",
      "cargo": "cargo 1.80.0-nightly (6087566b3 2024-04-30)",
      "qemu-system-riscv64": "QEMU emulator version 10.2.2"
    }
  },
  "build_command": [
    "cargo",
    "build",
    "--release",
    "--locked"
  ],
  "build_cwd": "/home/joseph/nf/education-2026A-20260927/rcore-ch4-observed/os",
  "record_command": [
    "/home/joseph/nf/venv313/bin/python",
    "-m",
    "nodefusion.host.cli",
    "record",
    "--kernel",
    "/home/joseph/nf/education-2026A-20260927/rcore-ch4-observed",
    "--kernel-kind",
    "rcore",
    "--runs",
    "/home/joseph/nf/education-2026A-20260927/runs",
    "--name",
    "rcore-2026A-ch4-observed",
    "--no-build",
    "--function-returns",
    "--watch-all",
    "--profile",
    "uniform",
    "--snapshots",
    "80",
    "--max-ram-bytes",
    "268435456",
    "--timeout",
    "90",
    "--no-render",
    "--event-stream",
    "never"
  ],
  "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-ch4-observed",
    "--out",
    "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch4-observed/rcore-2026A-ch4-observed.html",
    "--replace",
    "--strict"
  ],
  "analysis_cwd": "/home/joseph/nf/education-2026A-20260927/tool",
  "record_driver_sha256": "ecadbe106ce79d9e1b26a8fd1ec404d611c71c8d80686a1e58fc0800439292b9",
  "memory_analysis_command": [
    "/home/joseph/nf/venv313/bin/python",
    "/home/joseph/nf/education-2026A-20260927/inspect-ch4-memory.py",
    "rcore-2026A-ch4-observed"
  ],
  "memory_analysis_script_sha256": "ad2e5d03d6d1f77c41864a4683eeadc8b1fb4195e7c74f04d1e42821ad7c7dc6",
  "memory_refinement_command": [
    "/home/joseph/nf/venv313/bin/python",
    "/home/joseph/nf/education-2026A-20260927/refine-ch4-memory.py",
    "rcore-2026A-ch4-observed",
    "ucore-2026A-ch4-observed",
    "ucore-2026A-ch4-pagetable"
  ],
  "memory_refinement_script_sha256": "faa989ed05de70017c287865eb8632f9db2fb994d1e18b0dfa5471a29f391967",
  "observations": {
    "run": "rcore-2026A-ch4-observed",
    "outcome": "completed",
    "trace_complete": true,
    "function_counts": {
      "<&T as core::fmt::Display>::fmt": 29361,
      "<alloc::collections::btree::map::BTreeMap<K,V,A> as core::ops::drop::Drop>::drop": 2,
      "<alloc::vec::Vec<T,A> as core::ops::index::IndexMut<I>>::index_mut": 1,
      "<buddy_system_allocator::LockedHeap as core::alloc::global::GlobalAlloc>::alloc": 14962,
      "<buddy_system_allocator::LockedHeap as core::alloc::global::GlobalAlloc>::dealloc": 14781,
      "<core::fmt::Arguments as core::fmt::Display>::fmt": 29262,
      "<log::Level as core::fmt::Display>::fmt": 29261,
      "<log::__private_api::GlobalLogger as log::Log>::log": 29261,
      "<os::console::Stdout as core::fmt::Write>::write_str": 204993,
      "<os::logging::SimpleLogger as log::Log>::log": 29261,
      "<str as core::fmt::Display>::fmt": 99,
      "<xmas_elf::program::ProgramIter as core::iter::traits::iterator::Iterator>::next": 126,
      "MapArea::unmap@0": 2,
      "PageTable::new": 22,
      "__switch": 14863,
      "alloc": 14883,
      "alloc::collections::btree::map::BTreeMap<K,V,A>::insert": 316,
      "alloc::collections::btree::map::entry::OccupiedEntry<K,V,A>::remove_kv": 13,
      "alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing": 180,
      "alloc::collections::btree::remove::<impl alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::KV>>::remove_leaf_kv": 13,
      "alloc::collections::btree::remove::<impl alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::LeafOrInternal>,alloc::collections::btree::node::marker::KV>>::remove_kv_tracking": 13,
      "alloc::raw_vec::RawVec<T,A>::grow_one": 14803,
      "alloc::raw_vec::finish_grow": 14803,
      "append_to": 6,
      "buddy_system_allocator::Heap::alloc": 14962,
      "buddy_system_allocator::Heap::dealloc": 14781,
      "buddy_system_allocator::Heap::init": 1,
      "change_program_brk": 8,
      "compiler_builtins::mem::memcpy": 14786,
      "compiler_builtins::mem::memmove": 28,
      "compiler_builtins::mem::memset": 561,
      "core::fmt::Formatter::pad": 29360,
      "core::fmt::Formatter::pad_integral": 29281,
      "core::fmt::Formatter::pad_integral::write_prefix": 29281,
      "core::fmt::Write::write_char": 2,
      "core::fmt::num::<impl core::fmt::LowerHex for usize>::fmt": 18,
      "core::fmt::num::imp::<impl core::fmt::Display for i32>::fmt": 29261,
      "core::fmt::num::imp::<impl core::fmt::Display for u32>::fmt": 1,
      "core::fmt::num::imp::<impl core::fmt::Display for usize>::fmt": 1,
      "core::fmt::num::imp::fmt_u64": 29263,
      "core::fmt::write": 58628,
      "core::panicking::panic_fmt": 1,
      "core::str::converts::from_utf8": 98,
      "dealloc": 14702,
      "deref": 1,
      "exit_current_and_run_next": 15,
      "frame_alloc": 496,
      "frame_dealloc": 13,
      "from_elf": 21,
      "init": 1,
      "init_frame_allocator": 1,
      "init_heap@0": 1,
      "log::__private_api::loc": 29261,
      "log::__private_api::log_impl": 14548,
      "log::set_logger": 1,
      "map": 32594,
      "map_one": 32572,
      "memcpy": 14786,
      "memmove": 28,
      "memset": 561,
      "mmap": 10,
      "mmap_current_task": 10,
      "munmap": 3,
      "munmap_current_task": 3,
      "new": 21,
      "new_kernel": 1,
      "nftrace_commit_point": 510,
      "nodefusion_vm_unmap_region": 2,
      "os::console::print": 2,
      "os::kernel_log_info": 1,
      "os::sbi::shutdown": 1,
      "os::sync::up::UPSafeCell<T>::exclusive_access": 1,
      "os::task::current_user_token": 29564,
      "panic": 1,
      "push": 161,
      "realloc": 79,
      "remap_test": 1,
      "remove_framed_area": 2,
      "run_first_task": 1,
      "run_next_task": 14863,
      "rust_main": 1,
      "shrink_to": 1,
      "spin::once::Once<T,R>::try_call_once_slow": 3,
      "suspend_current_and_run_next": 14842,
      "sys_exit": 15,
      "sys_get_time": 14539,
      "sys_mmap": 13,
      "sys_munmap": 4,
      "sys_sbrk@0": 8,
      "sys_trace": 24,
      "sys_write": 113,
      "sys_yield@0": 14540,
      "syscall": 29256,
      "task::run_first_task": 1,
      "translated_byte_buffer": 14715,
      "trap_handler": 29564,
      "trap_return": 29564,
      "unmap@1": 2,
      "unmap@2": 11,
      "xmas_elf::ElfFile::new": 21,
      "xmas_elf::program::ProgramHeader::get_type": 105,
      "xmas_elf::program::parse_program_header": 105
    },
    "function_kind_counts": {
      "heap.alloc": 14883,
      "heap.free": 14702,
      "heap.init": 1,
      "heap.realloc": 79,
      "kernel.panic": 1,
      "pagetable.map": 32594,
      "pagetable.new": 22,
      "pagetable.unmap": 13,
      "phys.alloc": 496,
      "phys.free": 13,
      "proc.create": 21,
      "proc.exit": 15,
      "sched.enter": 1,
      "sched.switch": 14863,
      "sched.yield": 14842,
      "syscall.dispatch": 29256,
      "syscall.exit": 15,
      "syscall.get_time": 14539,
      "syscall.mmap": 13,
      "syscall.munmap": 4,
      "syscall.sbrk": 8,
      "syscall.trace": 24,
      "syscall.write": 113,
      "syscall.yield": 14540,
      "trap.enter": 29564,
      "trap.userret": 29564,
      "vm.from_elf": 21,
      "vm.grow": 6,
      "vm.init": 1,
      "vm.kernel_init": 1,
      "vm.map": 161,
      "vm.remove_area": 2,
      "vm.shrink": 1,
      "vm.translate_buffer": 14715,
      "vm.unmap": 2
    },
    "entries": {
      "sys_mmap": [
        {
          "insn": 34204274,
          "pc": 2149616838,
          "sp": 18446744073709387536,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268435456,
            4096,
            3,
            4096,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 34385665,
          "pc": 2149616838,
          "sp": 18446744073709375248,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268435456,
            4096,
            1,
            4096,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 34511193,
          "pc": 2149616838,
          "sp": 18446744073709362960,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268435456,
            4096,
            2,
            4096,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 34636759,
          "pc": 2149616838,
          "sp": 18446744073709350672,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268435456,
            4096,
            3,
            4096,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 34654796,
          "pc": 2149616838,
          "sp": 18446744073709350672,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268431360,
            4097,
            3,
            4097,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 34669164,
          "pc": 2149616838,
          "sp": 18446744073709350672,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268439553,
            4096,
            3,
            4096,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 34683379,
          "pc": 2149616838,
          "sp": 18446744073709350672,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268439552,
            4096,
            0,
            4096,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 34697598,
          "pc": 2149616838,
          "sp": 18446744073709350672,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268439552,
            4096,
            11,
            4096,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 34934806,
          "pc": 2149616838,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268435456,
            4096,
            1,
            4096,
            1776,
            1,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 35020980,
          "pc": 2149616838,
          "sp": 18446744073709326096,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268435456,
            4096,
            3,
            4096,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 35039017,
          "pc": 2149616838,
          "sp": 18446744073709326096,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268439552,
            8192,
            3,
            8192,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 35073385,
          "pc": 2149616838,
          "sp": 18446744073709326096,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268431360,
            4097,
            3,
            4097,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        },
        {
          "insn": 35394233,
          "pc": 2149616838,
          "sp": 18446744073709313808,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268435456,
            4096,
            3,
            4096,
            1776,
            32952,
            1,
            222
          ],
          "kind": "syscall.mmap",
          "params": [
            "start",
            "len",
            "prot"
          ]
        }
      ],
      "sys_trace": [
        {
          "insn": 34832131,
          "pc": 2149616172,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            0,
            48927,
            0,
            48927,
            3280,
            32952,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 34846830,
          "pc": 2149616172,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            0,
            48927,
            0,
            48927,
            3280,
            0,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 34861524,
          "pc": 2149616172,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            1,
            48927,
            33,
            48927,
            3280,
            0,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 34876202,
          "pc": 2149616172,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            0,
            9223372036854775807,
            0,
            9223372036854775807,
            3280,
            0,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 34890859,
          "pc": 2149616172,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            1,
            9223372036854775807,
            0,
            9223372036854775807,
            3280,
            1,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 34905499,
          "pc": 2149616172,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            0,
            2149580800,
            0,
            2149580800,
            3280,
            1,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 34920164,
          "pc": 2149616172,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            1,
            2149580800,
            0,
            2149580800,
            3280,
            1,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 39848661,
          "pc": 2149616172,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            0,
            268435456,
            0,
            268435456,
            3280,
            1,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 39863350,
          "pc": 2149616172,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            1,
            268435456,
            0,
            268435456,
            3280,
            1,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 39893786,
          "pc": 2149616172,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            0,
            268435456,
            0,
            268435456,
            3280,
            1,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 39908474,
          "pc": 2149616172,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            1,
            268435456,
            0,
            268435456,
            3280,
            1,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 111824808,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            2,
            169,
            0,
            169,
            3280,
            32952,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 111839436,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            2,
            410,
            0,
            410,
            3280,
            32952,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 111854065,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            2,
            64,
            0,
            64,
            3280,
            32952,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 111868694,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            2,
            124,
            0,
            124,
            3280,
            32952,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 111883322,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            2,
            93,
            0,
            93,
            3280,
            32952,
            1,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 111974086,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            2,
            169,
            0,
            169,
            3280,
            33208,
            33016,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 111988715,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            2,
            410,
            0,
            410,
            3280,
            33208,
            33016,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 112003345,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            2,
            64,
            0,
            64,
            3280,
            33208,
            33016,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 112017974,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            2,
            124,
            0,
            124,
            3280,
            33208,
            33016,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 112032602,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            2,
            93,
            0,
            93,
            3280,
            33208,
            33016,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 112047236,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            0,
            48910,
            0,
            48910,
            3280,
            33208,
            33016,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 112061934,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            1,
            48910,
            216,
            48910,
            3280,
            0,
            33016,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        },
        {
          "insn": 112076613,
          "pc": 2149616172,
          "sp": 18446744073709436688,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            0,
            1178,
            0,
            1178,
            3280,
            0,
            33016,
            410
          ],
          "kind": "syscall.trace",
          "params": [
            "trace_request",
            "id",
            "data"
          ]
        }
      ],
      "sys_munmap": [
        {
          "insn": 35057410,
          "pc": 2149617142,
          "sp": 18446744073709326096,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268435456,
            4096,
            215,
            213,
            1720,
            32952,
            1,
            215
          ],
          "kind": "syscall.munmap",
          "params": [
            "start",
            "len"
          ]
        },
        {
          "insn": 35412271,
          "pc": 2149617142,
          "sp": 18446744073709313808,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268435456,
            4097,
            215,
            213,
            1720,
            32952,
            1,
            215
          ],
          "kind": "syscall.munmap",
          "params": [
            "start",
            "len"
          ]
        },
        {
          "insn": 35427384,
          "pc": 2149617142,
          "sp": 18446744073709313808,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268435457,
            4095,
            215,
            213,
            1720,
            32952,
            1,
            215
          ],
          "kind": "syscall.munmap",
          "params": [
            "start",
            "len"
          ]
        },
        {
          "insn": 39878014,
          "pc": 2149617142,
          "sp": 18446744073709338384,
          "ra": 2149612412,
          "satp": 9223372036855308945,
          "args": [
            268435456,
            4096,
            215,
            213,
            1720,
            1,
            1,
            215
          ],
          "kind": "syscall.munmap",
          "params": [
            "start",
            "len"
          ]
        }
      ],
      "remove_framed_area": [
        {
          "insn": 35072224,
          "pc": 2149597374,
          "sp": 18446744073709325872,
          "ra": 2149603242,
          "satp": 9223372036855308945,
          "args": [
            2150442976,
            65536,
            65537,
            1,
            65537,
            0,
            1,
            2185404416
          ],
          "kind": "vm.remove_area",
          "params": [
            "self",
            "start_vpn",
            "end_vpn"
          ]
        },
        {
          "insn": 39892828,
          "pc": 2149597374,
          "sp": 18446744073709338160,
          "ra": 2149603242,
          "satp": 9223372036855308945,
          "args": [
            2150438768,
            65536,
            65537,
            1,
            65537,
            0,
            1,
            2185326592
          ],
          "kind": "vm.remove_area",
          "params": [
            "self",
            "start_vpn",
            "end_vpn"
          ]
        }
      ],
      "nodefusion_vm_unmap_region": [
        {
          "insn": 35072296,
          "pc": 2149594548,
          "sp": 18446744073709325696,
          "ra": 2149597468,
          "satp": 9223372036855308945,
          "args": [
            65536,
            65537,
            65537,
            18446744073709551568,
            65537,
            0,
            1,
            2185404416
          ],
          "kind": "vm.unmap",
          "params": [
            "start_vpn",
            "end_vpn"
          ]
        },
        {
          "insn": 39892900,
          "pc": 2149594548,
          "sp": 18446744073709337984,
          "ra": 2149597468,
          "satp": 9223372036855308945,
          "args": [
            65536,
            65537,
            65537,
            18446744073709551568,
            65537,
            0,
            1,
            2185326592
          ],
          "kind": "vm.unmap",
          "params": [
            "start_vpn",
            "end_vpn"
          ]
        }
      ],
      "append_to": [
        {
          "insn": 35600405,
          "pc": 2149598524,
          "sp": 18446744073709301328,
          "ra": 2149603422,
          "satp": 9223372036855308945,
          "args": [
            2150451392,
            49152,
            49152,
            20,
            2149638627,
            2149609942,
            0,
            1
          ],
          "kind": "vm.grow",
          "params": null
        },
        {
          "insn": 35641356,
          "pc": 2149598524,
          "sp": 18446744073709301328,
          "ra": 2149603422,
          "satp": 9223372036855308945,
          "args": [
            2150451392,
            49152,
            53248,
            20,
            2149638627,
            2149609942,
            0,
            1
          ],
          "kind": "vm.grow",
          "params": null
        },
        {
          "insn": 35657693,
          "pc": 2149598524,
          "sp": 18446744073709301328,
          "ra": 2149603422,
          "satp": 9223372036855308945,
          "args": [
            2150451392,
            49152,
            53248,
            20,
            2149638627,
            2149609942,
            0,
            1
          ],
          "kind": "vm.grow",
          "params": null
        },
        {
          "insn": 35767171,
          "pc": 2149598524,
          "sp": 18446744073709301328,
          "ra": 2149603422,
          "satp": 9223372036855308945,
          "args": [
            2150451392,
            49152,
            94208,
            20,
            2149638627,
            2149609942,
            0,
            1
          ],
          "kind": "vm.grow",
          "params": null
        },
        {
          "insn": 35800893,
          "pc": 2149598524,
          "sp": 18446744073709301328,
          "ra": 2149603422,
          "satp": 9223372036855308945,
          "args": [
            2150451392,
            49152,
            94208,
            20,
            2149638627,
            2149609942,
            0,
            1
          ],
          "kind": "vm.grow",
          "params": null
        },
        {
          "insn": 35867136,
          "pc": 2149598524,
          "sp": 18446744073709301328,
          "ra": 2149603422,
          "satp": 9223372036855308945,
          "args": [
            2150451392,
            49152,
            49152,
            20,
            2149638627,
            2149609942,
            0,
            1
          ],
          "kind": "vm.grow",
          "params": null
        }
      ],
      "shrink_to": [
        {
          "insn": 35847493,
          "pc": 2149597884,
          "sp": 18446744073709301328,
          "ra": 2149603466,
          "satp": 9223372036855308945,
          "args": [
            2150451392,
            49152,
            49152,
            20,
            2149638627,
            2149609942,
            0,
            1
          ],
          "kind": "vm.shrink",
          "params": null
        }
      ]
    },
    "syscall_counts": {
      "64": 113,
      "93": 15,
      "124": 14540,
      "169": 14539,
      "214": 8,
      "215": 4,
      "222": 13,
      "410": 24
    },
    "syscall_samples": {
      "222": [
        {
          "insn": 34204118,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1118,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1118,
          "stval": 0,
          "satp": 9223372036855309259,
          "sstatus": 9223372045444734976,
          "a": [
            268435456,
            4096,
            3,
            4096,
            268435456,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34385509,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1062,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1062,
          "stval": 0,
          "satp": 9223372036855309278,
          "sstatus": 9223372045444734976,
          "a": [
            268435456,
            4096,
            1,
            1,
            268435456,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34511037,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1060,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1060,
          "stval": 0,
          "satp": 9223372036855309297,
          "sstatus": 9223372045444734976,
          "a": [
            268435456,
            4096,
            2,
            268435456,
            32952,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34636603,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1048,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1048,
          "stval": 0,
          "satp": 9223372036855309316,
          "sstatus": 9223372045444734976,
          "a": [
            268435456,
            4096,
            3,
            4096,
            32952,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34654640,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1070,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1070,
          "stval": 0,
          "satp": 9223372036855309316,
          "sstatus": 9223372045444734976,
          "a": [
            268431360,
            4097,
            3,
            4096,
            32952,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34669008,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1096,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1096,
          "stval": 0,
          "satp": 9223372036855309316,
          "sstatus": 9223372045444734976,
          "a": [
            268439553,
            4096,
            3,
            18446744073709551615,
            32952,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34683223,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1116,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1116,
          "stval": 0,
          "satp": 9223372036855309316,
          "sstatus": 9223372045444734976,
          "a": [
            268439552,
            4096,
            0,
            18446744073709551615,
            32952,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34697442,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1138,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1138,
          "stval": 0,
          "satp": 9223372036855309316,
          "sstatus": 9223372045444734976,
          "a": [
            268439552,
            4096,
            11,
            18446744073709551615,
            32952,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34934650,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1384,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1384,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            268435456,
            4096,
            1,
            18446744073709551615,
            1,
            1,
            1,
            222
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35020824,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1098,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1098,
          "stval": 0,
          "satp": 9223372036855309354,
          "sstatus": 9223372045444734976,
          "a": [
            268435456,
            4096,
            3,
            8,
            32952,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149612342,
          "mtval": 0
        },
        {
          "insn": 35038861,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1118,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1118,
          "stval": 0,
          "satp": 9223372036855309354,
          "sstatus": 9223372045444734976,
          "a": [
            268439552,
            8192,
            3,
            8,
            32952,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35073229,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1166,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1166,
          "stval": 0,
          "satp": 9223372036855309354,
          "sstatus": 9223372045444734976,
          "a": [
            268431360,
            4097,
            3,
            268431360,
            32952,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35394077,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1048,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1048,
          "stval": 0,
          "satp": 9223372036855309373,
          "sstatus": 9223372045444734976,
          "a": [
            268435456,
            4096,
            3,
            4096,
            32952,
            32952,
            1,
            222
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        }
      ],
      "410": [
        {
          "insn": 34831973,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 9824,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 9824,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            48927,
            0,
            8,
            32952,
            32952,
            1,
            410
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34846672,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 9824,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 9824,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            48927,
            0,
            111,
            0,
            0,
            1,
            410
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34861366,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1248,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1248,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            1,
            48927,
            33,
            22,
            0,
            0,
            1,
            410
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34876044,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 9824,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 9824,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            9223372036854775807,
            0,
            22,
            0,
            0,
            1,
            410
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34890701,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1304,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1304,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            1,
            9223372036854775807,
            0,
            18446744073709551615,
            1,
            1,
            1,
            410
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34905341,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 9824,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 9824,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            2149580800,
            0,
            18446744073709551615,
            1,
            1,
            1,
            410
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 34920006,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1360,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1360,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            1,
            2149580800,
            0,
            18446744073709551615,
            1,
            1,
            1,
            410
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 39848503,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 9824,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 9824,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            268435456,
            0,
            18446744073709551615,
            1,
            1,
            1,
            410
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 39863192,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1438,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1438,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            1,
            268435456,
            0,
            0,
            1,
            1,
            1,
            410
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 39893628,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 9824,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 9824,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            268435456,
            0,
            0,
            1,
            1,
            1,
            410
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 39908316,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1518,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1518,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            1,
            268435456,
            0,
            1,
            1,
            1,
            1,
            410
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 111824650,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1284,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1284,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            2,
            169,
            0,
            2,
            32952,
            32952,
            1,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 111839278,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1304,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1304,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            2,
            410,
            0,
            2,
            32952,
            32952,
            1,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 111853907,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1326,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1326,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            2,
            64,
            0,
            2,
            32952,
            32952,
            1,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 111868536,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1348,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1348,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            2,
            124,
            0,
            2,
            32952,
            32952,
            1,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 111883164,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1368,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1368,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            2,
            93,
            0,
            2,
            32952,
            32952,
            1,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 111973928,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1444,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1444,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            2,
            169,
            0,
            4,
            0,
            33208,
            33016,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 111988557,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1466,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1466,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            2,
            410,
            0,
            2,
            0,
            33208,
            33016,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 112003187,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1490,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1490,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            2,
            64,
            0,
            2,
            0,
            33208,
            33016,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 112017816,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1512,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1512,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            2,
            124,
            0,
            2,
            0,
            33208,
            33016,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 112032444,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1532,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1532,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            2,
            93,
            0,
            2,
            0,
            33208,
            33016,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 112047078,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 10022,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 10022,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            48910,
            0,
            2,
            0,
            33208,
            33016,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 112061776,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1620,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1620,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            1,
            48910,
            216,
            111,
            0,
            0,
            33016,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 112076455,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 10022,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 10022,
          "stval": 0,
          "satp": 9223372036855309183,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            1178,
            0,
            111,
            0,
            0,
            33016,
            410
          ],
          "sp": 48896,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        }
      ],
      "215": [
        {
          "insn": 35057254,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1140,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1140,
          "stval": 0,
          "satp": 9223372036855309354,
          "sstatus": 9223372045444734976,
          "a": [
            268435456,
            4096,
            0,
            4096,
            32952,
            32952,
            1,
            215
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35412115,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1074,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1074,
          "stval": 0,
          "satp": 9223372036855309373,
          "sstatus": 9223372045444734976,
          "a": [
            268435456,
            4097,
            0,
            4096,
            268435456,
            32952,
            1,
            215
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35427228,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1100,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1100,
          "stval": 0,
          "satp": 9223372036855309373,
          "sstatus": 9223372045444734976,
          "a": [
            268435457,
            4095,
            0,
            18446744073709551615,
            268435456,
            32952,
            1,
            215
          ],
          "sp": 48944,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 39877858,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1462,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1462,
          "stval": 0,
          "satp": 9223372036855309335,
          "sstatus": 9223372045444734976,
          "a": [
            268435456,
            4096,
            0,
            0,
            1,
            1,
            1,
            215
          ],
          "sp": 48912,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        }
      ],
      "214": [
        {
          "insn": 35586244,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 998,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 998,
          "stval": 0,
          "satp": 9223372036855309392,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            0,
            0,
            20480,
            0,
            33208,
            33016,
            214
          ],
          "sp": 48848,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35627195,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1060,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1060,
          "stval": 0,
          "satp": 9223372036855309392,
          "sstatus": 9223372045444734976,
          "a": [
            4096,
            0,
            0,
            20480,
            0,
            7396,
            10,
            214
          ],
          "sp": 48848,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35643532,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1082,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1082,
          "stval": 0,
          "satp": 9223372036855309392,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            0,
            0,
            20480,
            0,
            7396,
            10,
            214
          ],
          "sp": 48848,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35753010,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1208,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1208,
          "stval": 0,
          "satp": 9223372036855309392,
          "sstatus": 9223372045444734976,
          "a": [
            40960,
            0,
            0,
            20480,
            0,
            7396,
            10,
            214
          ],
          "sp": 48848,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35786732,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1222,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1222,
          "stval": 0,
          "satp": 9223372036855309392,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            0,
            0,
            20480,
            0,
            7396,
            10,
            214
          ],
          "sp": 48848,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35833332,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1278,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1278,
          "stval": 0,
          "satp": 9223372036855309392,
          "sstatus": 9223372045444734976,
          "a": [
            18446744073709506560,
            0,
            0,
            20480,
            0,
            7396,
            10,
            214
          ],
          "sp": 48848,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35852975,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1292,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1292,
          "stval": 0,
          "satp": 9223372036855309392,
          "sstatus": 9223372045444734976,
          "a": [
            0,
            0,
            0,
            20480,
            0,
            7396,
            10,
            214
          ],
          "sp": 48848,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        },
        {
          "insn": 35935501,
          "cpu": 0,
          "flags": 0,
          "discon_type": 2,
          "priv": 1,
          "from_pc": 1368,
          "to_pc": 18446744073709547520,
          "scause": 8,
          "sepc": 1368,
          "stval": 0,
          "satp": 9223372036855309392,
          "sstatus": 9223372045444734976,
          "a": [
            18446744073709547520,
            0,
            0,
            18446744073709551615,
            0,
            7396,
            10,
            214
          ],
          "sp": 48848,
          "mcause": 9,
          "mepc": 2149609986,
          "mtval": 0
        }
      ]
    },
    "faults": [
      {
        "insn": 28458802,
        "cpu": 0,
        "flags": 0,
        "discon_type": 2,
        "priv": 1,
        "from_pc": 932,
        "to_pc": 18446744073709547520,
        "scause": 15,
        "sepc": 932,
        "stval": 0,
        "satp": 9223372036855309012,
        "sstatus": 9223372045444734976,
        "a": [
          16384,
          32952,
          1,
          8,
          32952,
          32952,
          1,
          8
        ],
        "sp": 49008,
        "mcause": 9,
        "mepc": 2149609986,
        "mtval": 0
      },
      {
        "insn": 28563518,
        "cpu": 0,
        "flags": 0,
        "discon_type": 2,
        "priv": 3,
        "from_pc": 932,
        "to_pc": 2147484920,
        "scause": 15,
        "sepc": 0,
        "stval": 0,
        "satp": 9223372036855309031,
        "sstatus": 9223372045444735008,
        "a": [
          16384,
          32952,
          1,
          8,
          32952,
          32952,
          1,
          8
        ],
        "sp": 49008,
        "mcause": 2,
        "mepc": 932,
        "mtval": 270532723
      },
      {
        "insn": 28661925,
        "cpu": 0,
        "flags": 0,
        "discon_type": 2,
        "priv": 3,
        "from_pc": 934,
        "to_pc": 2147484920,
        "scause": 2,
        "sepc": 0,
        "stval": 270532723,
        "satp": 9223372036855309050,
        "sstatus": 9223372045444735008,
        "a": [
          16384,
          32952,
          1,
          8,
          32952,
          32952,
          1,
          8
        ],
        "sp": 48928,
        "mcause": 2,
        "mepc": 934,
        "mtval": 268445043
      },
      {
        "insn": 34403542,
        "cpu": 0,
        "flags": 0,
        "discon_type": 2,
        "priv": 1,
        "from_pc": 1070,
        "to_pc": 18446744073709547520,
        "scause": 15,
        "sepc": 1070,
        "stval": 268435456,
        "satp": 9223372036855309278,
        "sstatus": 9223372045444734976,
        "a": [
          0,
          4096,
          1,
          1,
          268435456,
          32952,
          1,
          222
        ],
        "sp": 48944,
        "mcause": 9,
        "mepc": 2149609986,
        "mtval": 0
      },
      {
        "insn": 34529108,
        "cpu": 0,
        "flags": 0,
        "discon_type": 2,
        "priv": 1,
        "from_pc": 1068,
        "to_pc": 18446744073709547520,
        "scause": 13,
        "sepc": 1068,
        "stval": 268435456,
        "satp": 9223372036855309297,
        "sstatus": 9223372045444734976,
        "a": [
          0,
          4096,
          2,
          268435456,
          32952,
          32952,
          1,
          222
        ],
        "sp": 48944,
        "mcause": 9,
        "mepc": 2149609986,
        "mtval": 0
      },
      {
        "insn": 36012430,
        "cpu": 0,
        "flags": 0,
        "discon_type": 2,
        "priv": 1,
        "from_pc": 1472,
        "to_pc": 18446744073709547520,
        "scause": 15,
        "sepc": 1472,
        "stval": 49152,
        "satp": 9223372036855309392,
        "sstatus": 9223372045444734976,
        "a": [
          4096,
          20480,
          56,
          20480,
          0,
          7396,
          10,
          64
        ],
        "sp": 48848,
        "mcause": 9,
        "mepc": 2149609986,
        "mtval": 0
      }
    ],
    "allocator_record_counts": {
      "6": 1,
      "1": 496,
      "5": 13
    },
    "allocator_initial": {
      "insn": 23485478,
      "free": 23919,
      "used": 0
    },
    "allocator_final": {
      "insn": 39893296,
      "free": 23436,
      "used": 483
    },
    "total_insns": 502163131,
    "snapshots": 92,
    "raw_events": 2124082,
    "event_selection": {
      "applied": true,
      "policy": "kind-preserving/systematic-v3",
      "raw": 2124082,
      "retained": 150000,
      "dropped": 1974082,
      "target_limit": 150000,
      "minimum_spare": 25000,
      "always_keep": "first event of each normalized kind within budget",
      "priority_raw": 1325793,
      "spare_raw": 798289,
      "semantic_budget": 125000,
      "semantic_retained": 125000,
      "spare_budget": 25000,
      "stride": 31,
      "retained_kinds": {
        "firmware.trap": 2,
        "func._ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 459,
        "func._ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 21,
        "func._ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 466,
        "func._ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 468,
        "func._ZN2os4sync2up19UPSafeCell$LT$T$GT$16exclusive_access17hd70b6695a4c93434E": 1,
        "func._ZN2os4task18current_user_token17h6fd252ce840f0703E": 928,
        "func._ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 913,
        "func._ZN3log13__private_api8log_impl17h32a5fa02ff889f14E": 454,
        "func._ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 3,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h1c05db3ffb69a1e2E": 915,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hb03337872ca5c760E": 6,
        "func._ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 917,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 918,
        "func._ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 915,
        "func._ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17hc86b5565edb93905E": 1,
        "func._ZN4core3fmt5write17h49a560cace6c89d2E": 1836,
        "func._ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 923,
        "func._ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 917,
        "func._ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 914,
        "func._ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 5,
        "func._ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17hb67c4766b081d986E.llvm.1089857170425312875": 913,
        "func._ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h5b2cf8a168a60b67E.llvm.5861110501722348481": 6397,
        "func._ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 913,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h3066ea9ee2f5fc1cE": 6,
        "func._ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17hb4417fe4429410b4E": 1,
        "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_recursing17hdea21c2fa1292932E": 22,
        "func._ZN5alloc7raw_vec11finish_grow17ha28be5cc43b0e77fE": 456,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17he435081f56ef5e29E": 461,
        "func._ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 917,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 474,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 459,
        "func._ZN89_$LT$xmas_elf..program..ProgramIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h419d2856adccca23E": 2,
        "func._ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 2,
        "func._ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 5,
        "func._ZN99_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha2b340a8329e80b7E": 1,
        "func.map_one": 1043,
        "func.memcpy": 470,
        "func.memmove": 2,
        "func.memset": 12,
        "func.run_next_task": 463,
        "func.rust_main": 1,
        "heap.alloc": 1396,
        "heap.free": 1392,
        "heap.init": 1,
        "heap.realloc": 9,
        "interrupt.timer": 29,
        "kernel.panic": 1,
        "pagetable.map": 3072,
        "pagetable.new": 4,
        "pagetable.unmap": 3,
        "phys.alloc": 48,
        "phys.free": 1,
        "proc.create": 4,
        "proc.exit": 2,
        "sbi.call": 100955,
        "sched.enter": 1,
        "sched.switch": 1401,
        "sched.yield": 1398,
        "syscall.dispatch": 2761,
        "syscall.enter": 2749,
        "syscall.exit": 3,
        "syscall.get_time": 1368,
        "syscall.mmap": 2,
        "syscall.munmap": 1,
        "syscall.sbrk": 1,
        "syscall.trace": 2,
        "syscall.write": 11,
        "syscall.yield": 1380,
        "trap.enter": 2790,
        "trap.page_fault": 1,
        "trap.userret": 2794,
        "vm.from_elf": 3,
        "vm.grow": 2,
        "vm.init": 1,
        "vm.kernel_init": 1,
        "vm.map": 16,
        "vm.remove_area": 1,
        "vm.shrink": 1,
        "vm.translate_buffer": 1391,
        "vm.unmap": 2
      },
      "dropped_kinds": {
        "firmware.trap": 19,
        "func.MapArea::unmap@0": 2,
        "func._ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 14327,
        "func._ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 540,
        "func._ZN17compiler_builtins3mem7memmove17h6641c454cd41b91bE": 28,
        "func._ZN22buddy_system_allocator4Heap4init17h47bfef144f322583E": 1,
        "func._ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 14496,
        "func._ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 14313,
        "func._ZN2os15kernel_log_info17he7eb3005c801817eE": 1,
        "func._ZN2os3sbi8shutdown17h94be2037459f3d1dE": 1,
        "func._ZN2os4task18current_user_token17h6fd252ce840f0703E": 28636,
        "func._ZN2os7console5print17h259fbd0040a35667E": 2,
        "func._ZN3log10set_logger17h2e922c1b310ebd70E": 1,
        "func._ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 28348,
        "func._ZN3log13__private_api8log_impl17h32a5fa02ff889f14E": 14094,
        "func._ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 96,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h1c05db3ffb69a1e2E": 28347,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hb03337872ca5c760E": 93,
        "func._ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 28344,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 28343,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4e8d7a453206e77eE": 1,
        "func._ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h83de4ff3c495723bE": 1,
        "func._ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 28348,
        "func._ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17hc86b5565edb93905E": 17,
        "func._ZN4core3fmt5Write10write_char17h3dbf66e4bcd45ae0E.llvm.5861110501722348481": 2,
        "func._ZN4core3fmt5write17h49a560cace6c89d2E": 56792,
        "func._ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 28358,
        "func._ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 28364,
        "func._ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 28446,
        "func._ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 93,
        "func._ZN4core9panicking9panic_fmt17h11ec9af140fca503E": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h55d4729ab37ba670E.llvm.11421662704708071368": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h77de66cfa8653b3fE.llvm.11421662704708071368": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h7ca92b6ad2ef04b8E.llvm.11421662704708071368": 1,
        "func._ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17hb67c4766b081d986E.llvm.1089857170425312875": 28348,
        "func._ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h5b2cf8a168a60b67E.llvm.5861110501722348481": 198596,
        "func._ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 28349,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h3066ea9ee2f5fc1cE": 310,
        "func._ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17hb4417fe4429410b4E": 12,
        "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_recursing17hdea21c2fa1292932E": 158,
        "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_kv17hecb11ceeaade770aE": 13,
        "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_tracking17h96ac68a250cfaca3E": 13,
        "func._ZN5alloc7raw_vec11finish_grow17ha28be5cc43b0e77fE": 14347,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h3ad1ba6de2c5daa4E": 51,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h5e81cd5d71ba5b65E": 46,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hb14695c286ff2662E": 6,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17he435081f56ef5e29E": 14239,
        "func._ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 28344,
        "func._ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h1849b011e04f63ecE": 1,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 14488,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 14322,
        "func._ZN89_$LT$xmas_elf..program..ProgramIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h419d2856adccca23E": 124,
        "func._ZN8xmas_elf7ElfFile3new17h20f397223943fbdaE": 21,
        "func._ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 103,
        "func._ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 100,
        "func._ZN99_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha2b340a8329e80b7E": 1,
        "func.change_program_brk": 8,
        "func.deref": 1,
        "func.init_frame_allocator": 1,
        "func.map_one": 31529,
        "func.memcpy": 14316,
        "func.memmove": 26,
        "func.memset": 549,
        "func.mmap": 10,
        "func.mmap_current_task": 10,
        "func.munmap": 3,
        "func.munmap_current_task": 3,
        "func.remap_test": 1,
        "func.run_first_task": 1,
        "func.run_next_task": 14400,
        "heap.alloc": 13487,
        "heap.free": 13310,
        "heap.realloc": 70,
        "interrupt.timer": 273,
        "pagetable.map": 29522,
        "pagetable.new": 18,
        "pagetable.unmap": 10,
        "phys.alloc": 448,
        "phys.free": 12,
        "proc.create": 17,
        "proc.exit": 13,
        "sbi.call": 970159,
        "sched.switch": 13462,
        "sched.yield": 13444,
        "syscall.dispatch": 26495,
        "syscall.enter": 26507,
        "syscall.exit": 12,
        "syscall.get_time": 13171,
        "syscall.mmap": 11,
        "syscall.munmap": 3,
        "syscall.sbrk": 7,
        "syscall.trace": 22,
        "syscall.write": 102,
        "syscall.yield": 13160,
        "trap.enter": 26774,
        "trap.page_fault": 3,
        "trap.userret": 26770,
        "vm.from_elf": 18,
        "vm.grow": 4,
        "vm.map": 145,
        "vm.remove_area": 1,
        "vm.translate_buffer": 13324
      }
    },
    "coverage": {
      "status": "complete",
      "percent": 100.0,
      "passed": 1344441,
      "total": 1344441,
      "metrics": {
        "covered": 12,
        "applicable": 12,
        "not_applicable": [
          "bcache_hit_rate",
          "bcache_hits",
          "bcache_reads",
          "disk_io",
          "execs",
          "forks",
          "log_commits"
        ],
        "missing": [],
        "sampled": []
      },
      "semantic_events": {
        "raw": 1325793,
        "unknown": 0,
        "unknown_fields": {},
        "dropped_from_interactive": 1200793
      },
      "snapshots": {
        "checked": 92,
        "incomplete": 0,
        "physical_memory": 0,
        "physical_counters": 0,
        "processes": 0,
        "resources": 0,
        "pre_initialization": {
          "physical_memory": 0,
          "physical_counters": 3,
          "processes": 5,
          "resources": 0
        }
      },
      "snapshot_not_applicable": [],
      "manifest_fields": {
        "cells": 18270,
        "states": {
          "absent": 9135,
          "present": 9135
        },
        "not_applicable": 9135,
        "unresolved": 0
      },
      "full_watch_scope": true,
      "function_watch_drops": 0,
      "function_stacks_available": true,
      "observation_points": {
        "unresolved": [],
        "reported_missing": 81,
        "layout_missing": [
          "app_manager"
        ]
      },
      "blockers": []
    },
    "input_sha256": {
      "trace.nfb": "3a68d90420bcad669d2307c574388f1f50e73673ec8f53a8e6ad4fd97227b4d6",
      "manifest.json": "a71b1faca7a5a4217c5ae1bbfe32c3f102d1c07e8432a420c9c61e9428f4fc71",
      "watchlist.json": "43ac8ed916c13bbf0094b970f0b4cc4dfab6d46c67d25e977ec48ef2f630d726",
      "kernel_layout.json": "0ae4f02243f5c490d813921b05228ad94832df99ad7a3013c8d5d40a04f1e3f2"
    },
    "console_sha256": "c19b09d61b4f1463896ca50fc41a50a7359568c1a7aff7b502ea61e5743f3381",
    "kernel_elf_sha256": "2851a05dc0e377c07ee76da70426ba3c17b0bbf42594af5215dd8bd48ef80925",
    "script_sha256": "ad2e5d03d6d1f77c41864a4683eeadc8b1fb4195e7c74f04d1e42821ad7c7dc6",
    "watch_hits": 1023895,
    "return_records": 9452059,
    "report_function_entries": {
      "raw": 1022876,
      "retained": 46935
    },
    "report_function_returns": {
      "raw": 9452059,
      "matched": 475403,
      "nested_entries": 327539
    },
    "raw_analysis_sha256": "d9975df234acc601052ad85f83fb2730f8d78362d4482a684c2ae6625a68e1b6",
    "refinement_script_sha256": "faa989ed05de70017c287865eb8632f9db2fb994d1e18b0dfa5471a29f391967",
    "schema": "nodefusion.memory-observations/1",
    "fault_counts": [
      {
        "destination_privilege": 1,
        "cause": 13,
        "count": 1
      },
      {
        "destination_privilege": 1,
        "cause": 15,
        "count": 3
      },
      {
        "destination_privilege": 3,
        "cause": 2,
        "count": 2
      }
    ],
    "kernel_start_insn": 10762845,
    "previous_observations_sha256": "7b5334ebfc8082818a0218228e81444b028f89947c6e311bbc238c1cf83a83c9",
    "fault_refinement_script_sha256": "6a6ae502861ca9e6930da99f4210ee1f7fe730df8065439f16f46d0a1ddba4a6"
  },
  "report": {
    "schema": "nodefusion.artifact-evidence/1",
    "run": "rcore-2026A-ch4-observed",
    "kernel_kind": "rcore",
    "source_sha256": {
      "trace.nfb": "3a68d90420bcad669d2307c574388f1f50e73673ec8f53a8e6ad4fd97227b4d6",
      "manifest.json": "a71b1faca7a5a4217c5ae1bbfe32c3f102d1c07e8432a420c9c61e9428f4fc71",
      "watchlist.json": "43ac8ed916c13bbf0094b970f0b4cc4dfab6d46c67d25e977ec48ef2f630d726",
      "kernel_layout.json": "0ae4f02243f5c490d813921b05228ad94832df99ad7a3013c8d5d40a04f1e3f2"
    },
    "kernel_elf_sha256": "2851a05dc0e377c07ee76da70426ba3c17b0bbf42594af5215dd8bd48ef80925",
    "archive_bytes": {
      "trace.nfb": 849091776,
      "kernel_elf": 3921856
    },
    "html_sha256": "5aba13049ff6c8f4d042da5ff8a85b54dff8d9b4d0c95badb0a2341c772a3692",
    "html_bytes": 2636206,
    "function_trace": {
      "kind": "return-matched observed frames",
      "raw": 1022876,
      "retained": 46935,
      "returns": 9452059,
      "matched_returns": 475403,
      "nested_entries": 327539
    },
    "event_selection": {
      "applied": true,
      "policy": "kind-preserving/systematic-v5",
      "raw": 2124082,
      "retained": 150000,
      "dropped": 1974082,
      "target_limit": 150000,
      "minimum_spare": 25000,
      "always_keep": "all events of kinds whose count fits their per-kind budget",
      "priority_raw": 1325793,
      "spare_raw": 798289,
      "semantic_budget": 125000,
      "minimum_per_kind": 64,
      "semantic_kind_budgets": {
        "firmware.trap": 21,
        "heap.alloc": 1448,
        "heap.free": 1430,
        "heap.init": 1,
        "heap.realloc": 66,
        "interrupt.timer": 86,
        "kernel.panic": 1,
        "pagetable.map": 3100,
        "pagetable.new": 22,
        "pagetable.unmap": 13,
        "phys.alloc": 104,
        "phys.free": 13,
        "proc.create": 21,
        "proc.exit": 15,
        "sbi.call": 100048,
        "sched.enter": 1,
        "sched.switch": 1446,
        "sched.yield": 1444,
        "syscall.dispatch": 2789,
        "syscall.enter": 2789,
        "syscall.exit": 15,
        "syscall.get_time": 1415,
        "syscall.mmap": 13,
        "syscall.munmap": 4,
        "syscall.sbrk": 8,
        "syscall.trace": 24,
        "syscall.write": 69,
        "syscall.yield": 1416,
        "trap.enter": 2818,
        "trap.page_fault": 4,
        "trap.userret": 2817,
        "vm.from_elf": 21,
        "vm.grow": 6,
        "vm.init": 1,
        "vm.kernel_init": 1,
        "vm.map": 73,
        "vm.remove_area": 2,
        "vm.shrink": 1,
        "vm.translate_buffer": 1432,
        "vm.unmap": 2
      },
      "diagnostic_kind_budgets": {
        "func.MapArea::unmap@0": 2,
        "func._ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 480,
        "func._ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 78,
        "func._ZN17compiler_builtins3mem7memmove17h6641c454cd41b91bE": 28,
        "func._ZN22buddy_system_allocator4Heap4init17h47bfef144f322583E": 1,
        "func._ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 485,
        "func._ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 480,
        "func._ZN2os15kernel_log_info17he7eb3005c801817eE": 1,
        "func._ZN2os3sbi8shutdown17h94be2037459f3d1dE": 1,
        "func._ZN2os4sync2up19UPSafeCell$LT$T$GT$16exclusive_access17hd70b6695a4c93434E": 1,
        "func._ZN2os4task18current_user_token17h6fd252ce840f0703E": 897,
        "func._ZN2os7console5print17h259fbd0040a35667E": 2,
        "func._ZN3log10set_logger17h2e922c1b310ebd70E": 1,
        "func._ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 888,
        "func._ZN3log13__private_api8log_impl17h32a5fa02ff889f14E": 473,
        "func._ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 65,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h1c05db3ffb69a1e2E": 888,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hb03337872ca5c760E": 65,
        "func._ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 888,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 888,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4e8d7a453206e77eE": 1,
        "func._ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h83de4ff3c495723bE": 1,
        "func._ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 888,
        "func._ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17hc86b5565edb93905E": 18,
        "func._ZN4core3fmt5Write10write_char17h3dbf66e4bcd45ae0E.llvm.5861110501722348481": 2,
        "func._ZN4core3fmt5write17h49a560cace6c89d2E": 1717,
        "func._ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 889,
        "func._ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 889,
        "func._ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 891,
        "func._ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 65,
        "func._ZN4core9panicking9panic_fmt17h11ec9af140fca503E": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h55d4729ab37ba670E.llvm.11421662704708071368": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h77de66cfa8653b3fE.llvm.11421662704708071368": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h7ca92b6ad2ef04b8E.llvm.11421662704708071368": 1,
        "func._ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17hb67c4766b081d986E.llvm.1089857170425312875": 888,
        "func._ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h5b2cf8a168a60b67E.llvm.5861110501722348481": 5850,
        "func._ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 888,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h3066ea9ee2f5fc1cE": 71,
        "func._ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17hb4417fe4429410b4E": 13,
        "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_recursing17hdea21c2fa1292932E": 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_kv17hecb11ceeaade770aE": 13,
        "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_tracking17h96ac68a250cfaca3E": 13,
        "func._ZN5alloc7raw_vec11finish_grow17ha28be5cc43b0e77fE": 480,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h3ad1ba6de2c5daa4E": 51,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h5e81cd5d71ba5b65E": 46,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hb14695c286ff2662E": 6,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17he435081f56ef5e29E": 477,
        "func._ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 888,
        "func._ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h1849b011e04f63ecE": 1,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 485,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 479,
        "func._ZN89_$LT$xmas_elf..program..ProgramIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h419d2856adccca23E": 65,
        "func._ZN8xmas_elf7ElfFile3new17h20f397223943fbdaE": 21,
        "func._ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 66,
        "func._ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 65,
        "func._ZN99_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha2b340a8329e80b7E": 2,
        "func.change_program_brk": 8,
        "func.deref": 1,
        "func.init_frame_allocator": 1,
        "func.map_one": 982,
        "func.memcpy": 479,
        "func.memmove": 28,
        "func.memset": 78,
        "func.mmap": 10,
        "func.mmap_current_task": 10,
        "func.munmap": 3,
        "func.munmap_current_task": 3,
        "func.remap_test": 1,
        "func.run_first_task": 1,
        "func.run_next_task": 482,
        "func.rust_main": 1
      },
      "minimum_per_diagnostic_kind": 64,
      "semantic_retained": 125000,
      "spare_budget": 25000,
      "stride": null,
      "retained_kinds": {
        "firmware.trap": 21,
        "func.MapArea::unmap@0": 2,
        "func._ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 480,
        "func._ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 78,
        "func._ZN17compiler_builtins3mem7memmove17h6641c454cd41b91bE": 28,
        "func._ZN22buddy_system_allocator4Heap4init17h47bfef144f322583E": 1,
        "func._ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 485,
        "func._ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 480,
        "func._ZN2os15kernel_log_info17he7eb3005c801817eE": 1,
        "func._ZN2os3sbi8shutdown17h94be2037459f3d1dE": 1,
        "func._ZN2os4sync2up19UPSafeCell$LT$T$GT$16exclusive_access17hd70b6695a4c93434E": 1,
        "func._ZN2os4task18current_user_token17h6fd252ce840f0703E": 897,
        "func._ZN2os7console5print17h259fbd0040a35667E": 2,
        "func._ZN3log10set_logger17h2e922c1b310ebd70E": 1,
        "func._ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 888,
        "func._ZN3log13__private_api8log_impl17h32a5fa02ff889f14E": 473,
        "func._ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 65,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h1c05db3ffb69a1e2E": 888,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hb03337872ca5c760E": 65,
        "func._ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 888,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 888,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4e8d7a453206e77eE": 1,
        "func._ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h83de4ff3c495723bE": 1,
        "func._ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 888,
        "func._ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17hc86b5565edb93905E": 18,
        "func._ZN4core3fmt5Write10write_char17h3dbf66e4bcd45ae0E.llvm.5861110501722348481": 2,
        "func._ZN4core3fmt5write17h49a560cace6c89d2E": 1717,
        "func._ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 889,
        "func._ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 889,
        "func._ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 891,
        "func._ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 65,
        "func._ZN4core9panicking9panic_fmt17h11ec9af140fca503E": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h55d4729ab37ba670E.llvm.11421662704708071368": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h77de66cfa8653b3fE.llvm.11421662704708071368": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h7ca92b6ad2ef04b8E.llvm.11421662704708071368": 1,
        "func._ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17hb67c4766b081d986E.llvm.1089857170425312875": 888,
        "func._ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h5b2cf8a168a60b67E.llvm.5861110501722348481": 5850,
        "func._ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 888,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h3066ea9ee2f5fc1cE": 71,
        "func._ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17hb4417fe4429410b4E": 13,
        "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_recursing17hdea21c2fa1292932E": 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_kv17hecb11ceeaade770aE": 13,
        "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_tracking17h96ac68a250cfaca3E": 13,
        "func._ZN5alloc7raw_vec11finish_grow17ha28be5cc43b0e77fE": 480,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h3ad1ba6de2c5daa4E": 51,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h5e81cd5d71ba5b65E": 46,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hb14695c286ff2662E": 6,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17he435081f56ef5e29E": 477,
        "func._ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 888,
        "func._ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h1849b011e04f63ecE": 1,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 485,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 479,
        "func._ZN89_$LT$xmas_elf..program..ProgramIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h419d2856adccca23E": 65,
        "func._ZN8xmas_elf7ElfFile3new17h20f397223943fbdaE": 21,
        "func._ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 66,
        "func._ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 65,
        "func._ZN99_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha2b340a8329e80b7E": 2,
        "func.change_program_brk": 8,
        "func.deref": 1,
        "func.init_frame_allocator": 1,
        "func.map_one": 982,
        "func.memcpy": 479,
        "func.memmove": 28,
        "func.memset": 78,
        "func.mmap": 10,
        "func.mmap_current_task": 10,
        "func.munmap": 3,
        "func.munmap_current_task": 3,
        "func.remap_test": 1,
        "func.run_first_task": 1,
        "func.run_next_task": 482,
        "func.rust_main": 1,
        "heap.alloc": 1448,
        "heap.free": 1430,
        "heap.init": 1,
        "heap.realloc": 66,
        "interrupt.timer": 86,
        "kernel.panic": 1,
        "pagetable.map": 3100,
        "pagetable.new": 22,
        "pagetable.unmap": 13,
        "phys.alloc": 104,
        "phys.free": 13,
        "proc.create": 21,
        "proc.exit": 15,
        "sbi.call": 100048,
        "sched.enter": 1,
        "sched.switch": 1446,
        "sched.yield": 1444,
        "syscall.dispatch": 2789,
        "syscall.enter": 2789,
        "syscall.exit": 15,
        "syscall.get_time": 1415,
        "syscall.mmap": 13,
        "syscall.munmap": 4,
        "syscall.sbrk": 8,
        "syscall.trace": 24,
        "syscall.write": 69,
        "syscall.yield": 1416,
        "trap.enter": 2818,
        "trap.page_fault": 4,
        "trap.userret": 2817,
        "vm.from_elf": 21,
        "vm.grow": 6,
        "vm.init": 1,
        "vm.kernel_init": 1,
        "vm.map": 73,
        "vm.remove_area": 2,
        "vm.shrink": 1,
        "vm.translate_buffer": 1432,
        "vm.unmap": 2
      },
      "dropped_kinds": {
        "func._ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 14306,
        "func._ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 483,
        "func._ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 14477,
        "func._ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 14301,
        "func._ZN2os4task18current_user_token17h6fd252ce840f0703E": 28667,
        "func._ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 28373,
        "func._ZN3log13__private_api8log_impl17h32a5fa02ff889f14E": 14075,
        "func._ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 34,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h1c05db3ffb69a1e2E": 28374,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hb03337872ca5c760E": 34,
        "func._ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 28373,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 28373,
        "func._ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 28375,
        "func._ZN4core3fmt5write17h49a560cace6c89d2E": 56911,
        "func._ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 28392,
        "func._ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 28392,
        "func._ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 28469,
        "func._ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 33,
        "func._ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17hb67c4766b081d986E.llvm.1089857170425312875": 28373,
        "func._ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h5b2cf8a168a60b67E.llvm.5861110501722348481": 199143,
        "func._ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 28374,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h3066ea9ee2f5fc1cE": 245,
        "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_recursing17hdea21c2fa1292932E": 113,
        "func._ZN5alloc7raw_vec11finish_grow17ha28be5cc43b0e77fE": 14323,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17he435081f56ef5e29E": 14223,
        "func._ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 28373,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 14477,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 14302,
        "func._ZN89_$LT$xmas_elf..program..ProgramIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h419d2856adccca23E": 61,
        "func._ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 39,
        "func._ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 40,
        "func.map_one": 31590,
        "func.memcpy": 14307,
        "func.memset": 483,
        "func.run_next_task": 14381,
        "heap.alloc": 13435,
        "heap.free": 13272,
        "heap.realloc": 13,
        "interrupt.timer": 216,
        "pagetable.map": 29494,
        "phys.alloc": 392,
        "sbi.call": 971066,
        "sched.switch": 13417,
        "sched.yield": 13398,
        "syscall.dispatch": 26467,
        "syscall.enter": 26467,
        "syscall.get_time": 13124,
        "syscall.write": 44,
        "syscall.yield": 13124,
        "trap.enter": 26746,
        "trap.userret": 26747,
        "vm.map": 88,
        "vm.translate_buffer": 13283
      }
    },
    "coverage": {
      "status": "complete",
      "percent": 100.0,
      "passed": 1344441,
      "total": 1344441,
      "metrics": {
        "covered": 12,
        "applicable": 12,
        "not_applicable": [
          "bcache_hit_rate",
          "bcache_hits",
          "bcache_reads",
          "disk_io",
          "execs",
          "forks",
          "log_commits"
        ],
        "missing": [],
        "sampled": []
      },
      "semantic_events": {
        "raw": 1325793,
        "unknown": 0,
        "unknown_fields": {},
        "dropped_from_interactive": 1200793
      },
      "snapshots": {
        "checked": 92,
        "incomplete": 0,
        "physical_memory": 0,
        "physical_counters": 0,
        "processes": 0,
        "resources": 0,
        "pre_initialization": {
          "physical_memory": 0,
          "physical_counters": 3,
          "processes": 5,
          "resources": 0
        }
      },
      "snapshot_not_applicable": [],
      "manifest_fields": {
        "cells": 18270,
        "states": {
          "absent": 9135,
          "present": 9135
        },
        "not_applicable": 9135,
        "unresolved": 0
      },
      "full_watch_scope": true,
      "function_watch_drops": 0,
      "function_stacks_available": true,
      "observation_points": {
        "unresolved": [],
        "reported_missing": 81,
        "layout_missing": [
          "app_manager"
        ]
      },
      "blockers": []
    },
    "source_view": {
      "run": "rcore-2026A-ch4-observed",
      "files": 19,
      "locations": 240,
      "revision": "ef2dfc4c23c70a1eb4c6a0b30feb694b2d09a73d"
    }
  },
  "outcome": "completed",
  "trace_complete": true,
  "started_utc": "2026-09-27T13:19:40.299817+00:00",
  "qemu_command": "cd \"/home/joseph/nf/education-2026A-20260927/rcore-ch4-observed\" && exec qemu-system-riscv64 -machine virt -bios default -kernel os/target/riscv64gc-unknown-none-elf/release/os.bin -m 128M -smp 1 -nographic -qmp tcp:127.0.0.1:51125,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-ch4-observed/trace.nfb,sample=200000,snap=5922144,maxram=268435456,returns=1,snapstart=0,bootsnap=0,ramsize=134217728,watch=/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch4-observed/watchlist.txt -icount shift=3",
  "archive": {
    "run_path": "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch4-observed",
    "trace_sha256": "3a68d90420bcad669d2307c574388f1f50e73673ec8f53a8e6ad4fd97227b4d6",
    "trace_bytes": 849091776
  },
  "fault_refinement_command": [
    "/home/joseph/nf/venv313/bin/python",
    "/home/joseph/nf/education-2026A-20260927/refine-ch4-faults.py",
    "rcore-2026A-ch4-observed",
    "ucore-2026A-ch4-observed",
    "ucore-2026A-ch4-pagetable"
  ],
  "fault_refinement_script_sha256": "6a6ae502861ca9e6930da99f4210ee1f7fe730df8065439f16f46d0a1ddba4a6",
  "original_analysis_command": [
    "/home/joseph/nf/venv313/bin/python",
    "-m",
    "scripts.regenerate_artifact",
    "--run",
    "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch4-observed",
    "--out",
    "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch4-observed/rcore-2026A-ch4-observed.html",
    "--strict"
  ],
  "analysis_source": {
    "nodefusion_commit": "bce9de05d36d5cdd0afc71121e7c9b1016c08664",
    "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": "b1c4a595a54058841630ba7b18818688efd00b8085b03ca91767208ec3b499e8",
      "nodefusion/host/assets/app.css": "84035a9ddf0faf3ae1d4ebdd7049c142fcee11c20851afb16f636e7220c71949",
      "nodefusion/host/assets/app.js": "ef4a9150df38c69cc2f382836b6e7ded63d58413e3b930d79b5db119548cc3f2",
      "nodefusion/host/bundle.py": "f6117f48b073e117dc0ffa6cdf1af4984d173b3a8f16808730e3746b51c2ad33",
      "nodefusion/host/callstack.py": "a091f8123f33797a628ebcaabbeae721fe458b009b69cee6697221971b7f2fc0",
      "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": "1a96912593cf39d23f487ba2dd3e8df52c5a9ea87d47cc8eb2c3c5d350e7b918",
      "nodefusion/manifests/rel4.toml": "ca43c2847a9ca757542ef3ed3e276dc7130c92b25150c73deb3e2a20faf8c37e",
      "nodefusion/manifests/starry.toml": "8a3ce9735d4c948322962b8c532be334034ad608aac28a041bb58876012dcae8",
      "nodefusion/manifests/ucore.toml": "b08a4f8edac1a7fbd40397ed8c21217cf8dfb03ba9fad496142892f59e4bd5f8",
      "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": "05812b00228ba601209ec909213381d47272efdbcac3957914f4590a1d705cfe",
      "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": "34d227f2726d1820160288b225243b51fe3583839ff52ee245a814eb1c27f81d",
      "nodefusion/tests/test_cache_hit_contract.py": "087277fe75bf38d8e83453b3671da4825f7586382fc1fa5300b3dc79272fbee7",
      "nodefusion/tests/test_calibration_failure_reason.py": "02449f59da919dc09781a66ad57789a98775b3888d1480f4f3064b4d8a1139da",
      "nodefusion/tests/test_callstack.py": "f81c2f42b453d26287f1cbab835cff47a2722d8c62b486529fbbcfc20c94c872",
      "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": "7d066f949905b4df866f0ebfa3ead6cc3b78c7d8416d8b0a5660332dd2f6ef47",
      "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": "ec42c43dca4a41d6456915b698cd688097fda34438a57057faa74bf10236ee86",
      "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": "f831e3504531cdd9f8f588428e7a7e86fa420bdee27cbf74522fac05bb27d6fa",
      "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": "a9a2a0b654cc803871d3702c25d2cfae95f8b1d3d8a881f00579fb3a0ef2fd02",
      "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": "b84db1f0c55683e9ccf8eaafdcef09dd37bb67a5fa555814d4d750ff97f844df",
      "nodefusion/tests/test_recording_tail.py": "833b8e33c6d111b49790beea1ba7ab81b23bd7ea907a2155f981967bcb61a614",
      "nodefusion/tests/test_regenerate_artifact.py": "4b2046cdcc98219c4181ca174f4ca02b6e3b5cfbfdd7bb6506c85112007e21f3",
      "nodefusion/tests/test_resolve.py": "7e26f572cfaa0576e626a7458a23fd8f911a3d766ecad3df7954ce6f78207230",
      "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": "17ef07a10857516f2fd29186157b945ff67490d2cdac94166cf370e96171e034",
      "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": "c5b167cca227c5620b958329f5461232bc73e22997e5fe58a02859bb3664feef",
      "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"
    },
    "nodefusion_runtime_overrides": [
      {
        "path": "nodefusion/host/analyze.py",
        "sha256": "b1c4a595a54058841630ba7b18818688efd00b8085b03ca91767208ec3b499e8",
        "patch": "diff --git a/nodefusion/host/analyze.py b/nodefusion/host/analyze.py\nindex a6ca1e7..31b6599 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"
      },
      {
        "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": "1a96912593cf39d23f487ba2dd3e8df52c5a9ea87d47cc8eb2c3c5d350e7b918",
        "patch": "diff --git a/nodefusion/manifests/rcore.toml b/nodefusion/manifests/rcore.toml\nindex 3579114..da4c91d 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,7 +208,7 @@ 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+pgtbl = { path = \"memory_set.page_table.root_ppn.__0\", reader = \"ppn\", role = \"address_space_root\" }\n prio  = { path = \"inner.priority\",  reader = \"usize\", role = \"priority\" }\n \n \n@@ -223,7 +218,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 +472,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 +663,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 +835,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 +900,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 +1558,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": "b08a4f8edac1a7fbd40397ed8c21217cf8dfb03ba9fad496142892f59e4bd5f8",
        "patch": "diff --git a/nodefusion/manifests/ucore.toml b/nodefusion/manifests/ucore.toml\nindex 4312842..ce8c88f 100644\n--- a/nodefusion/manifests/ucore.toml\n+++ b/nodefusion/manifests/ucore.toml\n@@ -33,14 +33,23 @@ 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@@ -112,6 +121,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 +320,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 +517,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 +535,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": "f6117f48b073e117dc0ffa6cdf1af4984d173b3a8f16808730e3746b51c2ad33",
        "patch": "diff --git a/nodefusion/host/bundle.py b/nodefusion/host/bundle.py\nindex a31f11f..4a3967a 100644\n--- a/nodefusion/host/bundle.py\n+++ b/nodefusion/host/bundle.py\n@@ -15,6 +15,7 @@ from .analyze import Analysis\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"
      },
      {
        "path": "nodefusion/tests/test_bundle_shape.py",
        "sha256": "34d227f2726d1820160288b225243b51fe3583839ff52ee245a814eb1c27f81d",
        "patch": "diff --git a/nodefusion/tests/test_bundle_shape.py b/nodefusion/tests/test_bundle_shape.py\nindex 40bd9fe..025791a 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@@ -144,7 +145,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 +158,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 +179,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"
      }
    ],
    "source_file_hashes_after": {
      "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": "b1c4a595a54058841630ba7b18818688efd00b8085b03ca91767208ec3b499e8",
      "nodefusion/host/assets/app.css": "84035a9ddf0faf3ae1d4ebdd7049c142fcee11c20851afb16f636e7220c71949",
      "nodefusion/host/assets/app.js": "ef4a9150df38c69cc2f382836b6e7ded63d58413e3b930d79b5db119548cc3f2",
      "nodefusion/host/bundle.py": "f6117f48b073e117dc0ffa6cdf1af4984d173b3a8f16808730e3746b51c2ad33",
      "nodefusion/host/callstack.py": "a091f8123f33797a628ebcaabbeae721fe458b009b69cee6697221971b7f2fc0",
      "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": "1a96912593cf39d23f487ba2dd3e8df52c5a9ea87d47cc8eb2c3c5d350e7b918",
      "nodefusion/manifests/rel4.toml": "ca43c2847a9ca757542ef3ed3e276dc7130c92b25150c73deb3e2a20faf8c37e",
      "nodefusion/manifests/starry.toml": "8a3ce9735d4c948322962b8c532be334034ad608aac28a041bb58876012dcae8",
      "nodefusion/manifests/ucore.toml": "b08a4f8edac1a7fbd40397ed8c21217cf8dfb03ba9fad496142892f59e4bd5f8",
      "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": "05812b00228ba601209ec909213381d47272efdbcac3957914f4590a1d705cfe",
      "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": "34d227f2726d1820160288b225243b51fe3583839ff52ee245a814eb1c27f81d",
      "nodefusion/tests/test_cache_hit_contract.py": "087277fe75bf38d8e83453b3671da4825f7586382fc1fa5300b3dc79272fbee7",
      "nodefusion/tests/test_calibration_failure_reason.py": "02449f59da919dc09781a66ad57789a98775b3888d1480f4f3064b4d8a1139da",
      "nodefusion/tests/test_callstack.py": "f81c2f42b453d26287f1cbab835cff47a2722d8c62b486529fbbcfc20c94c872",
      "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": "7d066f949905b4df866f0ebfa3ead6cc3b78c7d8416d8b0a5660332dd2f6ef47",
      "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": "ec42c43dca4a41d6456915b698cd688097fda34438a57057faa74bf10236ee86",
      "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": "f831e3504531cdd9f8f588428e7a7e86fa420bdee27cbf74522fac05bb27d6fa",
      "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": "a9a2a0b654cc803871d3702c25d2cfae95f8b1d3d8a881f00579fb3a0ef2fd02",
      "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": "b84db1f0c55683e9ccf8eaafdcef09dd37bb67a5fa555814d4d750ff97f844df",
      "nodefusion/tests/test_recording_tail.py": "833b8e33c6d111b49790beea1ba7ab81b23bd7ea907a2155f981967bcb61a614",
      "nodefusion/tests/test_regenerate_artifact.py": "4b2046cdcc98219c4181ca174f4ca02b6e3b5cfbfdd7bb6506c85112007e21f3",
      "nodefusion/tests/test_resolve.py": "7e26f572cfaa0576e626a7458a23fd8f911a3d766ecad3df7954ce6f78207230",
      "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": "17ef07a10857516f2fd29186157b945ff67490d2cdac94166cf370e96171e034",
      "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": "c5b167cca227c5620b958329f5461232bc73e22997e5fe58a02859bb3664feef",
      "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"
    },
    "command": [
      "/home/joseph/nf/venv313/bin/python",
      "-m",
      "scripts.regenerate_artifact",
      "--run",
      "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch4-observed",
      "--out",
      "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch4-observed/rcore-2026A-ch4-observed.html",
      "--replace",
      "--strict"
    ],
    "cwd": "/home/joseph/nf/education-2026A-20260927/tool",
    "driver_sha256": "20d99b893c81cc41ed5056994f6fa8b1d6961c3d070689e6062405cc557eec30",
    "source_archive": {
      "path": "/home/joseph/nf/education-2026A-20260927/ch4-kind-preserving-v5-analysis-source.tar.gz",
      "sha256": "7bddcbef2db1a744d8676caf1159724f419e9b96d62aafdc57a6df6b13468628",
      "bytes": 624038
    },
    "previous_analysis_path": "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch4-observed/analysis-before-kind-preserving-v4",
    "previous_html_sha256": "541e810865ef29c91d2f040da3763f5e06c06559a20d9f08f746034b30357fce",
    "pre_v5_analysis_path": "/home/joseph/nf/education-2026A-20260927/runs/rcore-2026A-ch4-observed/analysis-before-kind-preserving-v5",
    "pre_v5_html_sha256": "22e073505f3423c3a30b11dda56f1aeccb62717306ed3a82c1e62390a70af88e",
    "source_sha256": {
      "trace.nfb": "3a68d90420bcad669d2307c574388f1f50e73673ec8f53a8e6ad4fd97227b4d6",
      "manifest.json": "a71b1faca7a5a4217c5ae1bbfe32c3f102d1c07e8432a420c9c61e9428f4fc71",
      "watchlist.json": "43ac8ed916c13bbf0094b970f0b4cc4dfab6d46c67d25e977ec48ef2f630d726",
      "kernel_layout.json": "0ae4f02243f5c490d813921b05228ad94832df99ad7a3013c8d5d40a04f1e3f2"
    },
    "event_selection": {
      "applied": true,
      "policy": "kind-preserving/systematic-v5",
      "raw": 2124082,
      "retained": 150000,
      "dropped": 1974082,
      "target_limit": 150000,
      "minimum_spare": 25000,
      "always_keep": "all events of kinds whose count fits their per-kind budget",
      "priority_raw": 1325793,
      "spare_raw": 798289,
      "semantic_budget": 125000,
      "minimum_per_kind": 64,
      "semantic_kind_budgets": {
        "firmware.trap": 21,
        "heap.alloc": 1448,
        "heap.free": 1430,
        "heap.init": 1,
        "heap.realloc": 66,
        "interrupt.timer": 86,
        "kernel.panic": 1,
        "pagetable.map": 3100,
        "pagetable.new": 22,
        "pagetable.unmap": 13,
        "phys.alloc": 104,
        "phys.free": 13,
        "proc.create": 21,
        "proc.exit": 15,
        "sbi.call": 100048,
        "sched.enter": 1,
        "sched.switch": 1446,
        "sched.yield": 1444,
        "syscall.dispatch": 2789,
        "syscall.enter": 2789,
        "syscall.exit": 15,
        "syscall.get_time": 1415,
        "syscall.mmap": 13,
        "syscall.munmap": 4,
        "syscall.sbrk": 8,
        "syscall.trace": 24,
        "syscall.write": 69,
        "syscall.yield": 1416,
        "trap.enter": 2818,
        "trap.page_fault": 4,
        "trap.userret": 2817,
        "vm.from_elf": 21,
        "vm.grow": 6,
        "vm.init": 1,
        "vm.kernel_init": 1,
        "vm.map": 73,
        "vm.remove_area": 2,
        "vm.shrink": 1,
        "vm.translate_buffer": 1432,
        "vm.unmap": 2
      },
      "diagnostic_kind_budgets": {
        "func.MapArea::unmap@0": 2,
        "func._ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 480,
        "func._ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 78,
        "func._ZN17compiler_builtins3mem7memmove17h6641c454cd41b91bE": 28,
        "func._ZN22buddy_system_allocator4Heap4init17h47bfef144f322583E": 1,
        "func._ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 485,
        "func._ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 480,
        "func._ZN2os15kernel_log_info17he7eb3005c801817eE": 1,
        "func._ZN2os3sbi8shutdown17h94be2037459f3d1dE": 1,
        "func._ZN2os4sync2up19UPSafeCell$LT$T$GT$16exclusive_access17hd70b6695a4c93434E": 1,
        "func._ZN2os4task18current_user_token17h6fd252ce840f0703E": 897,
        "func._ZN2os7console5print17h259fbd0040a35667E": 2,
        "func._ZN3log10set_logger17h2e922c1b310ebd70E": 1,
        "func._ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 888,
        "func._ZN3log13__private_api8log_impl17h32a5fa02ff889f14E": 473,
        "func._ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 65,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h1c05db3ffb69a1e2E": 888,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hb03337872ca5c760E": 65,
        "func._ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 888,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 888,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4e8d7a453206e77eE": 1,
        "func._ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h83de4ff3c495723bE": 1,
        "func._ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 888,
        "func._ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17hc86b5565edb93905E": 18,
        "func._ZN4core3fmt5Write10write_char17h3dbf66e4bcd45ae0E.llvm.5861110501722348481": 2,
        "func._ZN4core3fmt5write17h49a560cace6c89d2E": 1717,
        "func._ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 889,
        "func._ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 889,
        "func._ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 891,
        "func._ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 65,
        "func._ZN4core9panicking9panic_fmt17h11ec9af140fca503E": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h55d4729ab37ba670E.llvm.11421662704708071368": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h77de66cfa8653b3fE.llvm.11421662704708071368": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h7ca92b6ad2ef04b8E.llvm.11421662704708071368": 1,
        "func._ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17hb67c4766b081d986E.llvm.1089857170425312875": 888,
        "func._ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h5b2cf8a168a60b67E.llvm.5861110501722348481": 5850,
        "func._ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 888,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h3066ea9ee2f5fc1cE": 71,
        "func._ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17hb4417fe4429410b4E": 13,
        "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_recursing17hdea21c2fa1292932E": 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_kv17hecb11ceeaade770aE": 13,
        "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_tracking17h96ac68a250cfaca3E": 13,
        "func._ZN5alloc7raw_vec11finish_grow17ha28be5cc43b0e77fE": 480,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h3ad1ba6de2c5daa4E": 51,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h5e81cd5d71ba5b65E": 46,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hb14695c286ff2662E": 6,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17he435081f56ef5e29E": 477,
        "func._ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 888,
        "func._ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h1849b011e04f63ecE": 1,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 485,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 479,
        "func._ZN89_$LT$xmas_elf..program..ProgramIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h419d2856adccca23E": 65,
        "func._ZN8xmas_elf7ElfFile3new17h20f397223943fbdaE": 21,
        "func._ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 66,
        "func._ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 65,
        "func._ZN99_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha2b340a8329e80b7E": 2,
        "func.change_program_brk": 8,
        "func.deref": 1,
        "func.init_frame_allocator": 1,
        "func.map_one": 982,
        "func.memcpy": 479,
        "func.memmove": 28,
        "func.memset": 78,
        "func.mmap": 10,
        "func.mmap_current_task": 10,
        "func.munmap": 3,
        "func.munmap_current_task": 3,
        "func.remap_test": 1,
        "func.run_first_task": 1,
        "func.run_next_task": 482,
        "func.rust_main": 1
      },
      "minimum_per_diagnostic_kind": 64,
      "semantic_retained": 125000,
      "spare_budget": 25000,
      "stride": null,
      "retained_kinds": {
        "firmware.trap": 21,
        "func.MapArea::unmap@0": 2,
        "func._ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 480,
        "func._ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 78,
        "func._ZN17compiler_builtins3mem7memmove17h6641c454cd41b91bE": 28,
        "func._ZN22buddy_system_allocator4Heap4init17h47bfef144f322583E": 1,
        "func._ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 485,
        "func._ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 480,
        "func._ZN2os15kernel_log_info17he7eb3005c801817eE": 1,
        "func._ZN2os3sbi8shutdown17h94be2037459f3d1dE": 1,
        "func._ZN2os4sync2up19UPSafeCell$LT$T$GT$16exclusive_access17hd70b6695a4c93434E": 1,
        "func._ZN2os4task18current_user_token17h6fd252ce840f0703E": 897,
        "func._ZN2os7console5print17h259fbd0040a35667E": 2,
        "func._ZN3log10set_logger17h2e922c1b310ebd70E": 1,
        "func._ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 888,
        "func._ZN3log13__private_api8log_impl17h32a5fa02ff889f14E": 473,
        "func._ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 65,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h1c05db3ffb69a1e2E": 888,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hb03337872ca5c760E": 65,
        "func._ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 888,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 888,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4e8d7a453206e77eE": 1,
        "func._ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h83de4ff3c495723bE": 1,
        "func._ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 888,
        "func._ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17hc86b5565edb93905E": 18,
        "func._ZN4core3fmt5Write10write_char17h3dbf66e4bcd45ae0E.llvm.5861110501722348481": 2,
        "func._ZN4core3fmt5write17h49a560cace6c89d2E": 1717,
        "func._ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 889,
        "func._ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 889,
        "func._ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 891,
        "func._ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 65,
        "func._ZN4core9panicking9panic_fmt17h11ec9af140fca503E": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h55d4729ab37ba670E.llvm.11421662704708071368": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h77de66cfa8653b3fE.llvm.11421662704708071368": 1,
        "func._ZN4spin4once17Once$LT$T$C$R$GT$18try_call_once_slow17h7ca92b6ad2ef04b8E.llvm.11421662704708071368": 1,
        "func._ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17hb67c4766b081d986E.llvm.1089857170425312875": 888,
        "func._ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h5b2cf8a168a60b67E.llvm.5861110501722348481": 5850,
        "func._ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 888,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h3066ea9ee2f5fc1cE": 71,
        "func._ZN5alloc11collections5btree3map5entry30OccupiedEntry$LT$K$C$V$C$A$GT$9remove_kv17hb4417fe4429410b4E": 13,
        "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_recursing17hdea21c2fa1292932E": 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_kv17hecb11ceeaade770aE": 13,
        "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_tracking17h96ac68a250cfaca3E": 13,
        "func._ZN5alloc7raw_vec11finish_grow17ha28be5cc43b0e77fE": 480,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h3ad1ba6de2c5daa4E": 51,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h5e81cd5d71ba5b65E": 46,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hb14695c286ff2662E": 6,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17he435081f56ef5e29E": 477,
        "func._ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 888,
        "func._ZN84_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..IndexMut$LT$I$GT$$GT$9index_mut17h1849b011e04f63ecE": 1,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 485,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 479,
        "func._ZN89_$LT$xmas_elf..program..ProgramIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h419d2856adccca23E": 65,
        "func._ZN8xmas_elf7ElfFile3new17h20f397223943fbdaE": 21,
        "func._ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 66,
        "func._ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 65,
        "func._ZN99_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha2b340a8329e80b7E": 2,
        "func.change_program_brk": 8,
        "func.deref": 1,
        "func.init_frame_allocator": 1,
        "func.map_one": 982,
        "func.memcpy": 479,
        "func.memmove": 28,
        "func.memset": 78,
        "func.mmap": 10,
        "func.mmap_current_task": 10,
        "func.munmap": 3,
        "func.munmap_current_task": 3,
        "func.remap_test": 1,
        "func.run_first_task": 1,
        "func.run_next_task": 482,
        "func.rust_main": 1,
        "heap.alloc": 1448,
        "heap.free": 1430,
        "heap.init": 1,
        "heap.realloc": 66,
        "interrupt.timer": 86,
        "kernel.panic": 1,
        "pagetable.map": 3100,
        "pagetable.new": 22,
        "pagetable.unmap": 13,
        "phys.alloc": 104,
        "phys.free": 13,
        "proc.create": 21,
        "proc.exit": 15,
        "sbi.call": 100048,
        "sched.enter": 1,
        "sched.switch": 1446,
        "sched.yield": 1444,
        "syscall.dispatch": 2789,
        "syscall.enter": 2789,
        "syscall.exit": 15,
        "syscall.get_time": 1415,
        "syscall.mmap": 13,
        "syscall.munmap": 4,
        "syscall.sbrk": 8,
        "syscall.trace": 24,
        "syscall.write": 69,
        "syscall.yield": 1416,
        "trap.enter": 2818,
        "trap.page_fault": 4,
        "trap.userret": 2817,
        "vm.from_elf": 21,
        "vm.grow": 6,
        "vm.init": 1,
        "vm.kernel_init": 1,
        "vm.map": 73,
        "vm.remove_area": 2,
        "vm.shrink": 1,
        "vm.translate_buffer": 1432,
        "vm.unmap": 2
      },
      "dropped_kinds": {
        "func._ZN17compiler_builtins3mem6memcpy17ha62f30a1264ab51cE": 14306,
        "func._ZN17compiler_builtins3mem6memset17hb3cc3e7988f20252E": 483,
        "func._ZN22buddy_system_allocator4Heap5alloc17hb52723857453e8d6E": 14477,
        "func._ZN22buddy_system_allocator4Heap7dealloc17h2382b66f51d78f86E": 14301,
        "func._ZN2os4task18current_user_token17h6fd252ce840f0703E": 28667,
        "func._ZN3log13__private_api3loc17h74db97cb7d8ca37fE": 28373,
        "func._ZN3log13__private_api8log_impl17h32a5fa02ff889f14E": 14075,
        "func._ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17hb8c43d55b60732c2E": 34,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h1c05db3ffb69a1e2E": 28374,
        "func._ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hb03337872ca5c760E": 34,
        "func._ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17h35020c6a1a0c2e7aE": 28373,
        "func._ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0b957f153e4158c7E": 28373,
        "func._ZN4core3fmt3num3imp7fmt_u6417h5142f3088252957cE": 28375,
        "func._ZN4core3fmt5write17h49a560cace6c89d2E": 56911,
        "func._ZN4core3fmt9Formatter12pad_integral12write_prefix17h155331fd35b09c53E": 28392,
        "func._ZN4core3fmt9Formatter12pad_integral17h8b1ffde32503eca3E": 28392,
        "func._ZN4core3fmt9Formatter3pad17heef45ae07d2799a9E": 28469,
        "func._ZN4core3str8converts9from_utf817hd70ee2e837c58dd3E": 33,
        "func._ZN54_$LT$os..logging..SimpleLogger$u20$as$u20$log..Log$GT$3log17hb67c4766b081d986E.llvm.1089857170425312875": 28373,
        "func._ZN56_$LT$os..console..Stdout$u20$as$u20$core..fmt..Write$GT$9write_str17h5b2cf8a168a60b67E.llvm.5861110501722348481": 199143,
        "func._ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17hb9ea72e8555fec20E": 28374,
        "func._ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h3066ea9ee2f5fc1cE": 245,
        "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_recursing17hdea21c2fa1292932E": 113,
        "func._ZN5alloc7raw_vec11finish_grow17ha28be5cc43b0e77fE": 14323,
        "func._ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17he435081f56ef5e29E": 14223,
        "func._ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17hd9ca19187fb665faE": 28373,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$5alloc17h5940a8cc4f3113a7E": 14477,
        "func._ZN87_$LT$buddy_system_allocator..LockedHeap$u20$as$u20$core..alloc..global..GlobalAlloc$GT$7dealloc17h303cab0338830abbE": 14302,
        "func._ZN89_$LT$xmas_elf..program..ProgramIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h419d2856adccca23E": 61,
        "func._ZN8xmas_elf7program13ProgramHeader8get_type17h5cbcce3512fdef57E": 39,
        "func._ZN8xmas_elf7program20parse_program_header17h91c3887ed5253558E": 40,
        "func.map_one": 31590,
        "func.memcpy": 14307,
        "func.memset": 483,
        "func.run_next_task": 14381,
        "heap.alloc": 13435,
        "heap.free": 13272,
        "heap.realloc": 13,
        "interrupt.timer": 216,
        "pagetable.map": 29494,
        "phys.alloc": 392,
        "sbi.call": 971066,
        "sched.switch": 13417,
        "sched.yield": 13398,
        "syscall.dispatch": 26467,
        "syscall.enter": 26467,
        "syscall.get_time": 13124,
        "syscall.write": 44,
        "syscall.yield": 13124,
        "trap.enter": 26746,
        "trap.userret": 26747,
        "vm.map": 88,
        "vm.translate_buffer": 13283
      }
    },
    "function_entries": {
      "raw": 1022876,
      "retained": 46935
    },
    "function_returns": {
      "raw": 9452059,
      "matched": 416114,
      "nested_entries": 77517
    }
  },
  "original_report_observations": {
    "report_function_entries": {
      "raw": 1022876,
      "retained": 46215
    },
    "report_function_returns": {
      "raw": 9452059,
      "matched": 416114,
      "nested_entries": 77517
    }
  },
  "report_observation_refinement": {
    "command": [
      "/Users/jsph273/.platformio/penv/bin/python",
      "/Users/jsph273/.local/state/nodefusion/education-2026A/package-ch4-sampling.py"
    ],
    "script_sha256": "7a1ee59aa32e67dbc849eed8a0b3552f916edfb6da0aca58b8a7aacae1e80ed3",
    "previous_sidecar_sha256": "678d700a784e45d465c4bac84deb1edca696162afc78c024ce53661c1cf84cc4",
    "fields": [
      "report_function_entries",
      "report_function_returns"
    ],
    "basis": "same raw inputs, revised report event selection"
  }
}
