Punch list §25 item 0.6 complete. Ruling applied (AskUserQuestion, this session): DTB is confirmed unreachable on this system's aarch64 firmware too (qemu-efi-aarch64 2025.11-3ubuntu7, same finding as riscv64's item 0.3), so GICD/GICC base addresses and the timer PPI are named QEMU-virt constants with a recorded caveat, not DTB-discovered as the item originally asked. Nothing here was recalled from memory. Base addresses (GICD 0x08000000, GICC 0x08010000) and the timer PPI (30, non-secure EL1 physical) were read out of QEMU 10.2.1's own internal devicetree via `qemu-system-aarch64 -machine virt,dumpdtb=...`, decoded with this tree's own fdt.c reader rather than a new tool -- correct for this exact QEMU version, not assumed stable across others. Bonus finding from the same dump: PPI 26 for the EL2 hypervisor timer, which item 0.7 will need for its EL2 path. Register offsets within each block (GICD_CTLR, GICC_IAR, etc.) are GICv2 architectural constants, not board-specific, and were cross-checked against Linux's own arm-gic.h driver header rather than recalled either. Acceptance amended before implementing (§25.0 "when an item is genuinely wrong"): the original text required observing a delivered-and-acknowledged timer interrupt, which cannot happen within this item's own scope -- apic_timer_start() (item 0.7) is still the no-op stub, so nothing arms the timer. This is the same defect the earlier review's C2 fix already applied to items 0.2 and 0.5; it was missed here. Acceptance is now: GIC initialises without fault, the IAR/EOIR path is wired into aarch64_irq_handler() and ready, boots with no regression -- item 0.7's tick-advance is what proves delivery, exactly as 0.5 already defers to 0.7. EL-aware (B3, same discipline as items 0.4/0.5): apic_init() selects PPI 30 or 26 from aarch64_current_el(), decided once and cached, not re-derived per interrupt. aarch64_irq_handler() now does real work: reads GICC_IAR (the GICv2 acknowledgement step), dispatches to heartbeat_tick() when the INTID matches the timer PPI, and always completes with GICC_EOIR (INTID 1023 = spurious handled per the GICv2 spec, not as a special case of "unrecognised"). This mirrors exactly how riscv64's item 0.2 built full cause-dispatch logic before its timer was armed in 0.3. Investigated and resolved a real scare during verification: QEMU's `-d int` trace showed 1,728 "Taking exception 5 [IRQ]" events by the time boot reached the prompt, which looked exactly like an interrupt storm (hypothesis: EDK2 firmware leaves CNTP_CTL_EL0 enabled with a stale comparator, and enabling the GIC path exposes it before item 0.7 reprograms the timer). A direct one-shot probe inside aarch64_irq_handler() itself -- ground truth for whether this code path runs at all -- fired zero times across a clean, bounded boot. The trace events were almost certainly from EDK2 firmware's own internal timer usage during its own boot phase, before control passes to this kernel; the earlier conclusion was drawn from the external trace alone without checking that distinction, and the probe (not the trace) is what settled it. Probe code fully reverted; not part of the commit. Verified: builds clean, boots to ok> with no regression, dict_hash 0x3d4e1daf289da94f unchanged from the item 0.1-0.5 baseline, EL banner and IDT-installed lines still print in order, GIC init line confirms PPI 30 selected. Only aarch64-scoped files touched; amd64/riscv64 not rebuilt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
4.0 KiB
4.0 KiB
| 1 | tick_number | elapsed_ns | tick_interval_ns | cache_hits_delta | bucket_hits_delta | word_executions_delta | hot_word_count | avg_word_heat_q48 | window_width | actual_window_size | predicted_label_hits | jitter_bits | apic_ticks | time_trust_q48 | variance_q48 | vm_call_depth_max | hera_heat_q48 | hermes_heat_q48 | artemis_heat_q48 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 1 | 10000 | 10000 | 0 | 0 | 183 | 4 | 45 | 731 | 731 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 3 | 2 | 20000 | 10000 | 0 | 0 | 173 | 5 | 44 | 582 | 582 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 4 | 3 | 30000 | 10000 | 0 | 0 | 184 | 6 | 60 | 582 | 582 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 5 | 4 | 40000 | 10000 | 0 | 0 | 174 | 8 | 71 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 6 | 5 | 50000 | 10000 | 0 | 0 | 150 | 9 | 78 | 582 | 582 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 7 | 6 | 60000 | 10000 | 0 | 0 | 159 | 11 | 73 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 8 | 7 | 70000 | 10000 | 0 | 0 | 188 | 15 | 71 | 685 | 685 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 9 | 8 | 80000 | 10000 | 0 | 0 | 214 | 16 | 83 | 685 | 685 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 10 | 9 | 90000 | 10000 | 0 | 0 | 216 | 19 | 82 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 11 | 10 | 100000 | 10000 | 0 | 0 | 222 | 21 | 84 | 567 | 567 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 12 | 11 | 110000 | 10000 | 0 | 0 | 207 | 23 | 86 | 731 | 731 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 13 | 12 | 120000 | 10000 | 0 | 0 | 189 | 26 | 83 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 14 | 13 | 130000 | 10000 | 0 | 0 | 221 | 28 | 80 | 731 | 731 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 15 | 14 | 140000 | 10000 | 0 | 0 | 204 | 29 | 83 | 685 | 685 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 16 | 15 | 150000 | 10000 | 0 | 0 | 203 | 30 | 82 | 731 | 731 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 17 | 16 | 160000 | 10000 | 0 | 0 | 201 | 32 | 83 | 567 | 567 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 18 | 17 | 170000 | 10000 | 0 | 0 | 190 | 34 | 86 | 731 | 731 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 19 | 18 | 180000 | 10000 | 0 | 0 | 170 | 35 | 73 | 582 | 582 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 20 | 19 | 190000 | 10000 | 0 | 0 | 154 | 28 | 44 | 731 | 731 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 21 | 20 | 200000 | 10000 | 0 | 0 | 154 | 28 | 41 | 567 | 567 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 22 | 21 | 210000 | 10000 | 0 | 0 | 153 | 32 | 39 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 23 | 22 | 220000 | 10000 | 0 | 0 | 167 | 35 | 42 | 582 | 582 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 24 | 23 | 230000 | 10000 | 0 | 0 | 176 | 37 | 41 | 685 | 685 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 25 | 24 | 240000 | 10000 | 0 | 0 | 175 | 37 | 39 | 731 | 731 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 26 | 25 | 250000 | 10000 | 0 | 0 | 196 | 38 | 37 | 731 | 731 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 27 | 26 | 260000 | 10000 | 0 | 0 | 192 | 41 | 37 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 28 | 27 | 270000 | 10000 | 0 | 0 | 158 | 40 | 38 | 685 | 685 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 29 | 28 | 280000 | 10000 | 0 | 0 | 158 | 40 | 35 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 30 | 29 | 290000 | 10000 | 0 | 0 | 164 | 41 | 37 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 31 | 30 | 300000 | 10000 | 0 | 0 | 154 | 43 | 39 | 685 | 685 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 32 | 31 | 310000 | 10000 | 0 | 0 | 172 | 46 | 35 | 582 | 582 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 33 | 32 | 320000 | 10000 | 0 | 0 | 180 | 49 | 34 | 567 | 567 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 34 | 33 | 330000 | 10000 | 0 | 0 | 145 | 51 | 35 | 567 | 567 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 35 | 34 | 340000 | 10000 | 0 | 0 | 203 | 53 | 37 | 582 | 582 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 36 | 35 | 350000 | 10000 | 0 | 0 | 154 | 55 | 39 | 731 | 731 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 37 | 36 | 360000 | 10000 | 0 | 0 | 144 | 57 | 37 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 38 | 37 | 370000 | 10000 | 0 | 0 | 144 | 57 | 35 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 39 | 38 | 380000 | 10000 | 0 | 0 | 132 | 57 | 34 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 40 | 39 | 390000 | 10000 | 0 | 0 | 180 | 57 | 32 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 41 | 40 | 400000 | 10000 | 0 | 0 | 220 | 63 | 29 | 4096 | 0 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 42 | 41 | 410000 | 10000 | 0 | 0 | 215 | 64 | 28 | 4096 | 24 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 43 | 42 | 420000 | 10000 | 0 | 0 | 208 | 68 | 29 | 4096 | 24 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 44 | 43 | 430000 | 10000 | 0 | 0 | 177 | 72 | 27 | 4096 | 24 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 45 | 44 | 440000 | 10000 | 0 | 0 | 199 | 77 | 28 | 4096 | 24 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 46 | 45 | 450000 | 10000 | 0 | 0 | 223 | 82 | 26 | 4096 | 30 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 47 | 46 | 460000 | 10000 | 0 | 0 | 202 | 85 | 24 | 4096 | 67 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 48 | 47 | 470000 | 10000 | 0 | 0 | 218 | 91 | 25 | 4096 | 198 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 49 | 48 | 480000 | 10000 | 0 | 0 | 221 | 92 | 26 | 4096 | 350 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 50 | 49 | 490000 | 10000 | 0 | 0 | 225 | 97 | 26 | 4096 | 528 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 51 | 50 | 500000 | 10000 | 0 | 0 | 214 | 100 | 27 | 4096 | 694 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 52 | 51 | 510000 | 10000 | 0 | 0 | 227 | 102 | 28 | 4096 | 883 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 53 | 52 | 520000 | 10000 | 0 | 0 | 208 | 102 | 29 | 4096 | 1043 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 54 | 53 | 530000 | 10000 | 0 | 0 | 207 | 102 | 30 | 4096 | 1202 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 55 | 54 | 540000 | 10000 | 0 | 0 | 200 | 102 | 31 | 4096 | 1319 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 56 | 55 | 550000 | 10000 | 0 | 0 | 205 | 103 | 32 | 4096 | 1464 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 57 | 56 | 560000 | 10000 | 0 | 0 | 211 | 103 | 32 | 4096 | 1620 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 58 | 57 | 570000 | 10000 | 0 | 0 | 193 | 110 | 33 | 4096 | 1712 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |
| 59 | 58 | 580000 | 10000 | 0 | 0 | 190 | 5 | 67 | 4096 | 1775 | 0 | 0 | 0 | 65536 | 0 | 0 | 65536 | 0 | 0 |