aarch64: virtio-keyboard-pci, interrupt-driven keyboard input (item 4.3.5e)

Punch list §25 item 4.3.5e complete.

Extended virtio_input.c with a GIC-routed interrupt path alongside 4.3.5c's
PLIC one -- same capability walk, feature negotiation, eventq handling
(confirming §27.5.1's prediction that these items would share most of the
driver). aarch64_irq_handler() dispatches to virtio_input_isr() before its
EOIR write, same claim-dispatch-complete ordering riscv64 uses. Verified
with a real QEMU sendkey keypress: exact KEY_A/press match, two real
interrupts serviced, identical result to riscv64. Found (not fixed) an
unrelated pre-existing bug: BYE's cold-reset path faults on aarch64,
discovered incidentally since nobody had exercised it from a monitored
session before. Three-arch acceptance boot clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-08 12:29:27 -04:00
co-authored by Claude Sonnet 5
parent 2a2d7c5e5e
commit a373c9124a
18 changed files with 72523 additions and 78 deletions
+3 -3
View File
@@ -60,7 +60,7 @@ tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_
1,10000,18446744073708981616,0,0,117,4,4,4096,0,0,4895412794951728869,8,65536,0,0,65536,0,0
2,20000,10000,0,0,78,10,7,4096,0,0,0,9,65536,0,0,65536,0,0
3,30000,10000,0,0,101,13,7,4096,0,0,0,11,65536,0,0,65536,0,0
4,40000,10000,0,0,63,19,8,4096,0,0,0,11,65536,0,0,65536,0,0
4,40000,10000,0,0,63,19,8,4096,0,0,0,12,65536,0,0,65536,0,0
5,50000,10000,0,0,92,25,8,4096,2,0,0,14,65536,0,0,65536,0,0
6,60000,10000,0,0,64,27,8,4096,2,0,0,15,65536,0,0,65536,0,0
7,70000,10000,0,0,228,32,8,4096,210,0,0,22,65536,0,0,65536,0,0
@@ -75,10 +75,10 @@ tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_
16,160000,10000,0,0,256,39,14,4096,2459,0,0,87,65536,0,0,65536,0,0
17,170000,10000,0,0,256,39,15,4096,2713,0,0,95,65536,0,0,65536,0,0
18,180000,10000,0,0,256,39,15,4096,2969,0,0,102,65536,0,0,65536,0,0
19,190000,10000,0,0,256,39,16,4096,3224,0,0,112,65536,0,1,65536,0,0
19,190000,10000,0,0,256,39,16,4096,3224,0,0,111,65536,0,1,65536,0,0
20,200000,10000,0,0,256,41,17,4096,3480,0,0,119,65536,0,1,65536,0,0
21,210000,10000,0,0,256,41,17,4096,3736,0,0,126,65536,0,1,65536,0,0
22,220000,10000,0,0,256,41,18,4096,3992,0,0,134,65536,0,1,65536,0,0
22,220000,10000,0,0,256,41,18,4096,3992,0,0,133,65536,0,1,65536,0,0
23,230000,10000,0,0,256,41,19,4096,4096,0,0,141,65536,0,1,65536,0,0
24,240000,10000,0,0,256,41,20,4096,4096,0,0,148,65536,0,1,65536,0,0
25,250000,10000,0,0,256,43,20,2048,2048,0,0,156,65536,0,1,65536,0,0
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
60 1 10000 18446744073708981616 0 0 117 4 4 4096 0 0 4895412794951728869 8 65536 0 0 65536 0 0
61 2 20000 10000 0 0 78 10 7 4096 0 0 0 9 65536 0 0 65536 0 0
62 3 30000 10000 0 0 101 13 7 4096 0 0 0 11 65536 0 0 65536 0 0
63 4 40000 10000 0 0 63 19 8 4096 0 0 0 11 12 65536 0 0 65536 0 0
64 5 50000 10000 0 0 92 25 8 4096 2 0 0 14 65536 0 0 65536 0 0
65 6 60000 10000 0 0 64 27 8 4096 2 0 0 15 65536 0 0 65536 0 0
66 7 70000 10000 0 0 228 32 8 4096 210 0 0 22 65536 0 0 65536 0 0
75 16 160000 10000 0 0 256 39 14 4096 2459 0 0 87 65536 0 0 65536 0 0
76 17 170000 10000 0 0 256 39 15 4096 2713 0 0 95 65536 0 0 65536 0 0
77 18 180000 10000 0 0 256 39 15 4096 2969 0 0 102 65536 0 0 65536 0 0
78 19 190000 10000 0 0 256 39 16 4096 3224 0 0 112 111 65536 0 1 65536 0 0
79 20 200000 10000 0 0 256 41 17 4096 3480 0 0 119 65536 0 1 65536 0 0
80 21 210000 10000 0 0 256 41 17 4096 3736 0 0 126 65536 0 1 65536 0 0
81 22 220000 10000 0 0 256 41 18 4096 3992 0 0 134 133 65536 0 1 65536 0 0
82 23 230000 10000 0 0 256 41 19 4096 4096 0 0 141 65536 0 1 65536 0 0
83 24 240000 10000 0 0 256 41 20 4096 4096 0 0 148 65536 0 1 65536 0 0
84 25 250000 10000 0 0 256 43 20 2048 2048 0 0 156 65536 0 1 65536 0 0