S149 · SOURCE-BOUND GATE EVIDENCE
K2: IPC deadline saturation, bounded drain ve slot recovery
Operations --test hedefi → focused test içindeki include_str!/#[path] bağı → kaynak kesiti Bu sayfa yalnız S149 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S149Focused kod testiOperations id exactsource SHA exacttest target exact
operation: k2-ipc-deadline-saturation-recovery-partial
uygulama/model · focused test · Operations · 3 exact excerpt
sequence-bound=true · implementation-bound=true
01 · Testin bağlı olduğu uygulama/model kodu
Kapının yürüttüğü gerçek kaynak
tam Rust öğesiL256–L275
kernel/src/ipc.rs::IPC_CALL_DEADLINE_CAPACITY
#[cfg(feature = "board-qemu")]
pub(crate) fn qemu_s150_deadline_sla_snapshot() -> QemuS150DeadlineSlaSnapshot {
let _irq_guard = crate::arch::aarch64::IrqGuard::new();
let fixture = QEMU_S150_DEADLINE_SLA.lock();
let deadline = fixture.registry.snapshot();
QemuS150DeadlineSlaSnapshot {
armed: fixture.armed,
complete: fixture.complete,
start_tick: fixture.start_tick,
services: fixture.services,
active: deadline.active,
registered: deadline.registered,
timed_out: deadline.timed_out,
first_service_tick: fixture.first_service_tick,
first_service_count: fixture.first_service_count,
last_service_tick: fixture.last_service_tick,
last_service_count: fixture.last_service_count,
}
}snippet sha256: 5a8eab315b26…file sha256: 4c1e27d8c6c4…
02 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL188–L201
simulation/tests/ipc_deadline_saturation_runtime.rs::qemu_acceptance_requires_32_full_33rd_reject_one_by_one_drain_and_reuse
#[test]
fn qemu_acceptance_requires_32_full_33rd_reject_one_by_one_drain_and_reuse() {
assert!(MAIN.contains("run_qemu_s149_ipc_deadline_saturation_recovery"));
assert!(MAIN.contains("CAPACITY=32 ACTIVE_PEAK=32"));
assert!(MAIN.contains("OVERFLOW_33=TABLE_FULL SNAPSHOT_UNCHANGED=YES"));
assert!(MAIN.contains("SERVICE_BUDGET_PER_IRQ=1 DRAIN_TURNS=33"));
assert!(MAIN.contains("ORDER=OLDEST_LATENESS_THEN_WAIT_KEY"));
assert!(MAIN.contains("REUSE_EPOCH=33 STALE_RETRY=REJECTED"));
assert!(MAIN.contains("ABI=UNCHANGED_V1_3"));
assert!(SMOKE.contains("K2-S149"));
assert!(ABI.contains("pub const ABI_MINOR: u16 = 3"));
assert!(!ABI.contains("S149"));
}snippet sha256: a33287560292…file sha256: ff2fe2d9644d…
03 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL24167–L24283
website/src/lib/operations.ts::k2-ipc-deadline-saturation-recovery-partial
{
id: "k2-ipc-deadline-saturation-recovery-partial",
date: "2026-08-24",
sequence: 149,
status: "passed",
umbrella_status: "partial",
title: "K2: IPC deadline saturation, bounded drain ve slot recovery",
summary:
"S149 dar kabulü, ortak allocation-free CALL/RECV/notification deadline registry'sini exact capacity=32 sınırında fail-closed yaptı. 11 CALL + 11 RECV + 10 notification ile dolu tabloda 33. admission TableFull/QueueFull döndürdü ve snapshot'ı değiştirmedi; timer IRQ başına servis bütçesi 1 kayıt, seçim kuralı en büyük modular lateness sonra exact WaitKey oldu. Bir retirement tek slot açtı, fresh epoch=33 kabul edildi ve eski snapshot reddedildi. ABI v1.3 değişmedi. Gerçek wall-clock/tick-rate SLA, uzun saturation soak ve Generic SMP cross-CPU arbitration açık olduğundan dar operasyon PASS, K2/K1/MEM0–MEM2 umbrella durumu PARTIAL'dır.",
evidence: [
"S149 fail-closed kaynak bring-up'ı 5/9 RED'den allocation-free shared registry tamamlandığında 9/9 PASS'e döndü.",
"Exact mixed saturation CALL11/RECV11/NOTIFICATION10, ACTIVE_PEAK=32; OVERFLOW_33=TABLE_FULL ve syscall yüzeyinde QueueFull. Overflow öncesi/sonrası snapshot byte-anlamında değişmedi.",
"SERVICE_BUDGET_PER_IRQ=1 ve yeni admission yokken full expired tablo için MAX_DRAIN_IRQS=32; deterministik sıra OLDEST_LATENESS_THEN_WAIT_KEY.",
"Bir kayıt emekliye ayrılınca yalnız bir slot açıldı; REUSE_EPOCH=33 kabul edildi, eski snapshot STALE/REJECTED kaldı. REGISTERED=33, TIMED_OUT=33, ACTIVE_FINAL=0 ve GLOBAL_ACTIVE=0→0.",
"ABI UNCHANGED_V1_3: yeni syscall veya error yok; CALL, RECV ve notification syscall failure mapping'lerinin üçü de registry TableFull sonucunu QueueFull olarak yüzeye çıkarır.",
"S129–S149 exact focused envanteri 38 binary / 233/233 PASS; ortak ABI/IPC kapısı 10 binary / 95/95 PASS.",
"QEMU marker'ı capacity=32, mixed saturation, non-mutating overflow, single-record drain, fresh epoch ve stale retry reddini doğruladı; strict ELF W^X 31/31, başarılı IPC reply 20/20, KERNEL_FAULTS=0 ve EXECUTOR=PASS.",
"Manuel 8 saniyelik QEMU log'u 503256 B / SHA-256 0c0c5108a4a2889055f14031f00a3e50de7dfbbfc02807532117ed0894601cc0 olarak ölçüldü.",
"AArch64 board-qemu, board-rpi4, board-rpi5 ve board-rpi5+smp applicability 4/4 PASS.",
"Tam workspace exact yedi tarihsel frozen G8h identity/closure assertion'ında kırmızıdır. Yalnız bu yedi assertion dışlandığında kalan 110 result group / 706/706 PASS; assertion'lar gevşetilmedi ve full GREEN iddia edilmez.",
"S124 fiziksel kanıtı yeniden uzlaştırıldı: immutable raw 20270 B / SHA-256 ee97d070741d5f7acd8ea7985d00ea54086e2fbaea54e1cc94619dd640bb4158, BOOT8H occurrence=1, leading NUL=3, strict validators 12/12, milestones 60/60, ARCHIVE/PROMOTION=PASS.",
"Fiziksel runbook S124'te tarihsel olarak tamamlandı: Gücü kapat → SD kartı Pi'den çıkar → SD kartı Mac'e tak → yetkili write/verify/read-back → SD kartı Mac'ten güvenli çıkar → SD kartı güçsüz Pi'ye tak → UART capture pre-arm ve exact identity → Güç ver. Güç geçişleri kullanıcı bildirimi; UART/raw/kart kapanışları host gözlemidir.",
"S149'da bu sıra tekrar edilmedi: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S149=NO. Güncel son fiziksel boot/runtime PASS S124 BOOT8H; son standalone storage/media PASS S119 ve S124 aday kart/package salt-okunur re-auth PASS.",
"Güncel PASS-dışı denetimi S149 dahil 148 kaydı yeniden sayar: 21 Kısmi + 7 Başarısız + 7 Gözlem = 35 literal PASS-dışı tarihsel kayıt; 46 Passed + 58 Verified + 9 Fixed = 113 kapalı/yeşil kayıt. S111–S112 ve S125–S149 toplam 27 dar PASS kaydı umbrella_status=partial taşır; gerçek ileri çalışma 16 ana kabul bloğudur.",
"Web doğrulaması: 249/249 içerik testi, ESLint ve TypeScript --noEmit PASS; Next.js statik üretim 23/23 route / 191 dosya PASS.",
"Planlama tahmini S149 + (16 × 8–10 sıra) + 40–60 risk sırası = S317–369; risk-paylı merkez ≈S343. Bu tarihsel projeksiyon S150'yi kendiliğinden yetkilendirmedi; S150 ayrı runtime ve kanıt kaydıyla oluşturuldu.",
"Kalıcı kapsam: `docs/K2-S149-IPC-Deadline-Saturation-Recovery-Proof.md` ve `evidence/rpi5/g8h/sequence-124-physical-pass/README.md`.",
],
commands: [
"cargo test -p aselsan_microkernel_simulation --test ipc_deadline_saturation_runtime -- --test-threads=1",
"cargo test -p aselsan_microkernel_simulation [38 exact focused test binary] -- --test-threads=1",
"cargo test -p aselsan_microkernel_simulation [10 exact ABI/IPC test binary] -- --test-threads=1",
"cargo check -p aselsan_kernel --target aarch64-unknown-none [board-qemu, board-rpi4, board-rpi5, board-rpi5+smp]",
"make verify-qemu",
"cargo test --workspace --no-fail-fast",
"cargo test --workspace -- --test-threads=1 [seven exact historical --skip filters]",
"python3 scripts/render-project-status.py --check",
"cd website && npm test && npm run lint && npx tsc --noEmit && npm run build",
],
terminalSessions: [
{
id: "s149-red-before-shared-deadline-registry",
title: "Shared deadline saturation kapısı: fail-closed bring-up",
commandLines: [
"cargo test -p aselsan_microkernel_simulation --test ipc_deadline_saturation_runtime -- --test-threads=1",
],
outputLines: [
"initial source/runtime contract: 5/9 PASS · shared capacity/service/recovery seams absent",
"no partial saturation PASS accepted",
"final allocation-free shared registry contract: 9/9 PASS",
],
exitCode: 101,
outputMode: "selected",
},
{
id: "s149-green-focused-aarch64-qemu",
title: "Capacity-32 overflow, bounded drain, epoch reuse ve QEMU",
commandLines: [
"cargo test -p aselsan_microkernel_simulation [38 exact focused test binary] -- --test-threads=1",
"cargo test -p aselsan_microkernel_simulation [10 exact ABI/IPC test binary] -- --test-threads=1",
"cargo check -p aselsan_kernel --target aarch64-unknown-none [4 profiles]",
"make verify-qemu",
],
outputLines: [
"ipc_deadline_saturation_runtime: 9/9 PASS",
"combined exact focused inventory: 233/233 PASS · 38 binaries",
"focused ABI/IPC: 95/95 PASS · 10 binaries · AArch64 compile profiles: 4/4 PASS",
"[K2-S149] ABI=UNCHANGED_V1_3 CAPACITY=32 ACTIVE_PEAK=32 MIXED=CALL11_RECV11_NOTIFICATION10 OVERFLOW_33=TABLE_FULL SNAPSHOT_UNCHANGED=YES SERVICE_BUDGET_PER_IRQ=1 DRAIN_TURNS=33 MAX_DRAIN_IRQS=32 ORDER=OLDEST_LATENESS_THEN_WAIT_KEY FIRST_RETIRED_TASK=1000 REUSE_EPOCH=33 STALE_RETRY=REJECTED REGISTERED=33 TIMED_OUT=33 ACTIVE_FINAL=0 GLOBAL_ACTIVE=0->0 ALLOCATION_FREE=YES CPU0_ONLY=YES KERNEL_FAULTS=0 EXECUTOR=PASS",
"QEMU smoke PASS: strict ELF W^X 31/31 · IPC reply 20/20 · S149 PASS",
],
exitCode: 0,
outputMode: "selected",
},
{
id: "s149-workspace-independent-history-red",
title: "Tam workspace: exact yedi tarihsel G8h assertion kırmızısı",
commandLines: [
"cargo test --workspace --no-fail-fast",
"cargo test --workspace -- --test-threads=1 [seven exact historical --skip filters]",
],
outputLines: [
"full workspace: FAIL-CLOSED · exactly 7 historical frozen G8h identity/closure assertions",
"excluding only those seven exact assertion names: 110 result groups · 706/706 PASS",
"historical assertions were not relaxed · full-workspace GREEN is not claimed",
],
exitCode: 101,
outputMode: "selected",
},
{
id: "s149-s124-physical-evidence-reconciliation",
title: "S124 immutable physical evidence: read-only reconciliation",
commandLines: [
"shasum -a 256 -c evidence/rpi5/g8h/sequence-124-physical-pass/EVIDENCE_SHA256SUMS",
"shasum -a 256 -c evidence/rpi5/g8h/sequence-124-physical-pass/package/SHA256SUMS",
"scripts/verify-rpi5-g8h-physical-raw.sh <archived-raw> 20270 ee97d070741d5f7acd8ea7985d00ea54086e2fbaea54e1cc94619dd640bb4158 <archive-device> <archive-inode>",
],
outputLines: [
"EVIDENCE_SHA256SUMS: all archived files OK",
"candidate package manifest: 3/3 PASS",
"G8h physical raw PASS: validators=12 milestones=60 exact_bytes=20270",
"PHYSICAL_BOOT8H=PASS · ARCHIVE=PASS · PROMOTION=PASS",
"S149 new physical/device operations=0",
],
exitCode: 0,
outputMode: "selected",
},
],
terminalSessionsNote:
"S149 dar deadline saturation/recovery kabulünü PASS eder; üst K2/K1/MEM0–MEM2 kapsamı, wall-clock SLA ve Generic SMP açık olduğu için umbrella PARTIAL kalır. S124 fiziksel kanıtı yalnız read-only uzlaştırıldı; S149'da runbook tekrar edilmedi.",
limitations: [
"Gerçek wall-clock latency, tick-rate SLA, production workload boyutlandırması ve uzun saturation soak imzalanmadı.",
"Generic SMP cross-CPU timer/signal/revoke/wake/IPI/TLB/reaper arbitration matrisi kapanmadı.",
"Capability transferi, shared-memory loan, cross-subsystem rollback ve ortak frame/cap/endpoint/ASID reconciliation açıktır.",
"Full workspace exact yedi tarihsel frozen G8h identity/closure assertion'ı nedeniyle GREEN değildir; yalnız bu yedi dışlandığında 706/706 PASS'tir.",
"S149 fiziksel işlem yapmadı. S124 dar fiziksel PASS'in power-on/off geçişleri kullanıcı bildirimi, host closure kanıtı bağımsızdır.",
],
},snippet sha256: 71ad718bbdf3…file sha256: 9726dbf00f84…
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test ipc_deadline_saturation_runtime -- --test-threads=1proof: docs/K2-S149-IPC-Deadline-Saturation-Recovery-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06