ASELSANMicrokernel
S141 · SOURCE-BOUND GATE EVIDENCE

K1/MEM0–MEM2/K2: otomatik OOM supervisor yaşam döngüsü recovery

Operations --test hedefi → focused test içindeki include_str!/#[path] bağı → kaynak kesiti Bu sayfa yalnız S141 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.

S141Focused kod testiOperations id exactsource SHA exacttest target exact

operation: k1-mem0-mem1-mem2-k2-automatic-oom-supervisor-lifecycle-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 dosyaL1–L763
scripts/qemu-smoke.sh::qemu-smoke.sh
#!/bin/sh
set -eu

kernel_elf=${1:?"kernel ELF yolu gerekli"}
qemu_bin=${QEMU:-qemu-system-aarch64}
# The complete S154 matrix retires 32 full tables (1024 entries). Keep the
# host observation window above the measured end-to-end guest workload while
# leaving every in-guest 320 ms deadline/SLA unchanged.
smoke_seconds=${QEMU_SMOKE_SECONDS:-32}

command -v "$qemu_bin" >/dev/null 2>&1 || {
  echo "HATA: $qemu_bin bulunamadı" >&2
  exit 1
}

[ -f "$kernel_elf" ] || {
  echo "HATA: kernel ELF bulunamadı: $kernel_elf" >&2
  exit 1
}

smoke_log=$(mktemp -t aselsanos-qemu-smoke)
smoke_log_dest=${QEMU_SMOKE_LOG_DEST:-}
qemu_pid=

cleanup() {
  if [ -n "$qemu_pid" ] && kill -0 "$qemu_pid" 2>/dev/null; then
    kill -INT "$qemu_pid" 2>/dev/null || true
    wait "$qemu_pid" 2>/dev/null || true
  fi
  if [ -n "$smoke_log_dest" ]; then
    cp "$smoke_log" "$smoke_log_dest"
  fi
  rm -f "$smoke_log"
}
trap cleanup EXIT HUP INT TERM

"$qemu_bin" \
  -M virt \
  -cpu cortex-a72 \
  -smp 2 \
  -m 128M \
  -nographic \
  -kernel "$kernel_elf" \
  >"$smoke_log" 2>&1 &
qemu_pid=$!

sleep "$smoke_seconds"

if kill -0 "$qemu_pid" 2>/dev/null; then
  kill -INT "$qemu_pid"
fi

set +e
wait "$qemu_pid"
qemu_status=$?
set -e
qemu_pid=

if [ "$qemu_status" -ne 0 ]; then
  echo "HATA: QEMU kontrollü çıkış kodu $qemu_status" >&2
  tail -n 120 "$smoke_log" >&2
  exit 1
fi

if grep -aEiq \
  'KERNEL PANIC|stack overflow|UNKNOWN INSTRUCTION|M8-BUG|IPC-DEMO-ELF.*PANIC|ASELSAN/EL0-RETURN FAIL|strict validation/load/spawn rejected|kernel data abort|kernel instruction abort|Data Abort, same EL|Instruction Abort, same EL' \
  "$smoke_log"; then
  echo "HATA: QEMU logunda yasaklı kernel/genel fault marker bulundu" >&2
  grep -aEin \
    'KERNEL PANIC|stack overflow|UNKNOWN INSTRUCTION|M8-BUG|IPC-DEMO-ELF.*PANIC|ASELSAN/EL0-RETURN FAIL|strict validation/load/spawn rejected|kernel data abort|kernel instruction abort|Data Abort, same EL|Instruction Abort, same EL' \
    "$smoke_log" >&2
  exit 1
fi

grep -aFq '[K1-ELF] hello-elf strict spawn PASS' "$smoke_log" || {
  echo "HATA: hello ELF strict loader publication marker'ı bulunamadı" >&2
  tail -n 120 "$smoke_log" >&2
  exit 1
}

grep -aFq '[M8-SUCCESS] ipc-demo-elf strict spawn PASS' "$smoke_log" || {
  echo "HATA: IPC ELF strict loader publication marker'ı bulunamadı" >&2
  tail -n 120 "$smoke_log" >&2
  exit 1
}

strict_wx_count=$(grep -aFc 'strict spawn PASS' "$smoke_log" || true)
# Frozen S146 cumulative boundary: QEMU smoke PASS: strict ELF W^X 26/26.
# Frozen S147 cumulative boundary: QEMU smoke PASS: strict ELF W^X 28/28.
# S148 adds three arbitration waiters, so the executable current gate is 31/31.
[ "$strict_wx_count" -eq 31 ] && [ "$(grep -aFc 'W^X=YES' "$smoke_log" || true)" -eq 31 ] || {
  echo "HATA: otuz bir strict ELF publication ve otuz bir W^X kanıtı bekleniyordu" >&2
  tail -n 140 "$smoke_log" >&2
  exit 1
}

grep -aFq 'Hello from separate EL0 binary (M8)!' "$smoke_log" || {
  echo "HATA: hello ELF marker bulunamadı" >&2
  tail -n 120 "$smoke_log" >&2
  exit 1
}

grep -aFq 'ASELSAN/EL0-RETURN STACK=STABLE SP_EL0=STABLE iterations=4096' "$smoke_log" || {
  echo "HATA: tekrarlı EL0 dönüş/stack marker'ı bulunamadı" >&2
  tail -n 120 "$smoke_log" >&2
  exit 1
}

grep -aFq '[IPC-DEMO-ELF] Merhaba M8! Gercek ELF binary calisiyor.' "$smoke_log" || {
  echo "HATA: IPC ELF marker bulunamadı" >&2
  tail -n 120 "$smoke_log" >&2
  exit 1
}

ipc_reply_count=$(grep -aFc '[K2.1] REPLY result=Ok reply_cap consumed (registry+CNode+store)' "$smoke_log" || true)
[ "$ipc_reply_count" -eq 20 ] || {
  echo "HATA: tam yirmi doğrulanmış blocking CALL/REPLY bekleniyordu, bulunan=$ipc_reply_count" >&2
  tail -n 160 "$smoke_log" >&2
  exit 1
}

if grep -aEq '\[M4\.3-DEBUG\] status=[23], ELR=' "$smoke_log"; then
  echo "HATA: EL0 IPC scalar doğrulama exit status 2/3 üretti" >&2
  tail -n 160 "$smoke_log" >&2
  exit 1
fi

s140_nonzero_exit_count=$(grep -aEc '\[M4\.3-DEBUG\] status=1, ELR=' "$smoke_log" || true)
[ "$s140_nonzero_exit_count" -eq 1 ] || {
  echo "HATA: S140 için tam bir kontrollü non-zero supervisor exit bekleniyordu, bulunan=$s140_nonzero_exit_count" >&2
  tail -n 180 "$smoke_log" >&2
  exit 1
}

s141_nonzero_exit_count=$(grep -aEc '\[M4\.3-DEBUG\] status=4, ELR=' "$smoke_log" || true)
[ "$s141_nonzero_exit_count" -eq 1 ] || {
  echo "HATA: S141 için tam bir kontrollü task-bound supervisor exit bekleniyordu, bulunan=$s141_nonzero_exit_count" >&2
  tail -n 200 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM0\] ELF_FRAME_LEDGER .*text=1 data=1 stack=3 total=5 UNCLASSIFIED=0 RECONCILED=YES' "$smoke_log" || {
  echo "HATA: sınıflandırılmış RuntimePmm ELF ledger marker'ı bulunamadı" >&2
  tail -n 140 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S130\].*expected=5 observed=0 .*IPC=YES QUIESCED=YES TABLES=YES ASID=YES ACK=YES REARM=[0-9]+ LEVEL=NORMAL EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S130 scheduler OOM teardown/ACK/rearm marker'ı bulunamadı" >&2
  tail -n 180 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S131\].*expected=5 observed=0 .*CURRENT=YES CARRIER=STATIC LATER_STACK=YES IPC=YES QUIESCED=YES TABLES=YES ASID=YES ACK=YES REARM=[0-9]+ LEVEL=NORMAL EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S131 current-task deferred OOM/later-stack completion marker'ı bulunamadı" >&2
  tail -n 200 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S132\].*OWNED_EP=1 DRAINED_CALLS=1 RESPONDER_CALLS=0 CALLER_WAKE=INVALID_CAPABILITY GRAPH=ABSENT CURRENT=YES LATER_STACK=YES IPC=LIVE ACK=YES REARM=[0-9]+ LEVEL=NORMAL EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S132 live endpoint/reply/caller OOM teardown marker'ı bulunamadı" >&2
  tail -n 220 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S133\] syscall graph PASS .*EL0_CALL=YES USER_COPY=YES BLOCKED=YES PARKED=YES' "$smoke_log" || {
  echo "HATA: S133 gerçek EL0 SYS_IPC_CALL blocked-graph marker'ı bulunamadı" >&2
  tail -n 240 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S133] EL0 SYS_IPC_CALL RETURN=INVALID_CAPABILITY' "$smoke_log" || {
  echo "HATA: S133 EL0 caller cancellation return marker'ı bulunamadı" >&2
  tail -n 240 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S271\] S133 EL0 return witness READY caller=[0-9]+ YIELDS=[0-9]+/128 GRAPH_ABSENT=YES BOUNDED=YES FAIL_CLOSED=YES' "$smoke_log" || {
  echo "HATA: S271 bounded S133 EL0 return/absence synchronization marker'ı bulunamadı" >&2
  tail -n 260 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S133\].*OWNED_EP=1 DRAINED_CALLS=1 RESPONDER_CALLS=0 EL0_RETURN=INVALID_CAPABILITY SYSCALL_GRAPH=ABSENT CURRENT=YES LATER_STACK=YES ACK=YES REARM=[0-9]+ LEVEL=NORMAL EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S133 EL0 syscall graph OOM teardown marker'ı bulunamadı" >&2
  tail -n 260 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S134\] delivered graph PASS .*EL0_CALL=YES EL0_RECV=YES USER_COPY=YES CALLER_BLOCKED=YES RESPONDER_READY=YES BOUND=YES ARMED=YES' "$smoke_log" || {
  echo "HATA: S134 gerçek EL0 CALL/RECV responder-bound graph marker'ı bulunamadı" >&2
  tail -n 280 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S134] EL0 SYS_IPC_RECV DELIVERED=YES OOM_TRIGGER=YES' "$smoke_log" || {
  echo "HATA: S134 strict responder SYS_IPC_RECV/user-copy marker'ı bulunamadı" >&2
  tail -n 280 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S134] EL0 CALL RETURN=INVALID_CAPABILITY' "$smoke_log" || {
  echo "HATA: S134 EL0 caller responder-exit cancellation marker'ı bulunamadı" >&2
  tail -n 280 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S134\].*OWNED_EP=0 DRAINED_CALLS=0 RESPONDER_CALLS=1 EL0_CALL_RETURN=INVALID_CAPABILITY EL0_RECV=DELIVERED GRAPH=ABSENT OWNER_EP_CLEANUP=1 CURRENT=YES LATER_STACK=YES ACK=YES REARM=[0-9]+ LEVEL=NORMAL EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S134 responder-bound cancellation/owner cleanup marker'ı bulunamadı" >&2
  tail -n 300 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S135\] caller strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S135 strict caller publication marker'ı bulunamadı" >&2
  tail -n 320 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S135\] responder strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S135 strict responder publication marker'ı bulunamadı" >&2
  tail -n 320 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S135\] delivered graph PASS .*BOTH_STRICT=YES EL0_CALL=YES EL0_RECV=YES USER_COPY=YES CALLER_BLOCKED=YES RESPONDER_READY=YES BOUND=YES ARMED=YES' "$smoke_log" || {
  echo "HATA: S135 iki strict ELF CALL/RECV grafiği bulunamadı" >&2
  tail -n 340 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S135] EL0 SYS_IPC_RECV DELIVERED=YES OOM_TRIGGER=YES' "$smoke_log" || {
  echo "HATA: S135 strict responder user-copy/OOM marker'ı bulunamadı" >&2
  tail -n 340 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S135] STRICT EL0 SYS_IPC_CALL RETURN=INVALID_CAPABILITY' "$smoke_log" || {
  echo "HATA: S135 strict caller cancellation marker'ı bulunamadı" >&2
  tail -n 340 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S136\] supervisor strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S136 strict EL0 supervisor publication marker'ı bulunamadı" >&2
  tail -n 380 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S136] STRICT EL0 STALE ACK REJECTED=YES' "$smoke_log" || {
  echo "HATA: S136 stale ACK kullanıcı marker'ı bulunamadı" >&2
  tail -n 380 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S136] STRICT EL0 EXACT ACK SENT=YES' "$smoke_log" || {
  echo "HATA: S136 exact ACK kullanıcı marker'ı bulunamadı" >&2
  tail -n 380 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S136\].*free=6139->6134->6139 active=5->10->5 .*REAL_ENDPOINT=YES BOUNDED=8 KERNEL_CALL_BLOCKED=YES REAL_RECV_REPLY=YES STALE_ACK_REJECTED=YES EXACT_EL0_ACK=YES REPLY_ONESHOT=2/2 SUPERVISOR_RECLAIM=5 ACK=YES REARM=[0-9]+ LEVEL=NORMAL' "$smoke_log" || {
  echo "HATA: S136 gerçek endpoint/reply, stale/exact ACK ve baseline marker'ı bulunamadı" >&2
  tail -n 400 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S137\] timer-victim strict spawn PASS .*TIMER_DAEMON=YES INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S137 timer-daemon strict victim publication marker'ı bulunamadı" >&2
  tail -n 420 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S137\].*expected=5 observed=0 .*TIMER_DAEMON=YES DISTINCT_TICKS=YES SCANS=2 AUDITED=YES CALLER_COUNTERS=ABSENT SYS_WRITE_HOOK=ABSENT SAFE_SVC_BOUNDARY=YES free=6139->6134->6139 active=5->10->5 .*CURRENT=YES LATER_STACK=YES IPC=YES QUIESCED=YES TABLES=YES ASID=YES TRANSPORT_DELEGATED=S138 EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S137 gerçek timer cadence/audited OOM/baseline marker'ı bulunamadı" >&2
  tail -n 440 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S138\] supervisor strict spawn PASS .*BOUNDED=8 TIMER_TO_EL0=YES INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S138 timer-driven strict EL0 supervisor publication marker'ı bulunamadı" >&2
  tail -n 460 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S138] STRICT EL0 STALE ACK REJECTED=YES' "$smoke_log" || {
  echo "HATA: S138 stale ACK kullanıcı marker'ı bulunamadı" >&2
  tail -n 460 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S138] STRICT EL0 EXACT ACK SENT=YES' "$smoke_log" || {
  echo "HATA: S138 exact ACK kullanıcı marker'ı bulunamadı" >&2
  tail -n 460 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S138\].*TIMER_TO_EL0=YES REAL_ENDPOINT=YES BOUNDED=8 KERNEL_CALL_BLOCKED=YES REAL_EL0_RECV_REPLY=YES STALE_ACK_REJECTED=YES EXACT_EL0_ACK=YES KERNEL_DIRECT_ACK=NO REAL_EL0_ACK=YES REPLY_ONESHOT=2/2 free=6139->6134->6129->6134->6139 active=5->10->15->10->5 VICTIM_RECLAIM=5 SUPERVISOR_RECLAIM=5 OWNER_EP_CLEANUP=1 ACK=YES REARM=[0-9]+ LEVEL=NORMAL EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S138 timer→endpoint→strict EL0 ACK ve çift-reclaim baseline marker'ı bulunamadı" >&2
  tail -n 480 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S139\] supervisor strict spawn PASS .*BOUNDED=8 BATCH=8 INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S139 strict EL0 batch supervisor publication marker'ı bulunamadı" >&2
  tail -n 520 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S139] STRICT EL0 FIFO DRAIN=8/8' "$smoke_log" || {
  echo "HATA: S139 strict EL0 FIFO drain marker'ı bulunamadı" >&2
  tail -n 520 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S139\].*BATCH=8/8 TRANSPORT_OVERFLOW=QUEUE_FULL ENDPOINT_OVERFLOW=QUEUE_FULL FIFO=1\.\.8 REAL_KERNEL_CALLS=8 KERNEL_CALL_BLOCKED=8 REAL_EL0_RECV_REPLY=8/8 REPLY_ONESHOT=8/8 ACK_AT_DEADLINE=ACK_WINS TIMEOUT_AFTER_DEADLINE=TIMEOUT_WINS LATE_ACK=STALE RETRY=1 BROKER_ACK=10 BROKER_TIMEOUT=1 BROKER_DRAINED=YES SUPERVISOR_RECLAIM=5 OWNER_EP_CLEANUP=1 free=6139->6134->6139 active=5->10->5 KERNEL_DIRECT_ACK=NO EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S139 multi-event/backpressure/ACK-timeout race marker'ı bulunamadı" >&2
  tail -n 540 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S140\] pre-ACK supervisor strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S140 ACK-öncesi exit strict EL0 supervisor publication marker'ı bulunamadı" >&2
  tail -n 560 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S140] PRE-ACK SUPERVISOR EXIT=1' "$smoke_log" || {
  echo "HATA: S140 kontrollü ACK-öncesi non-zero exit kullanıcı marker'ı bulunamadı" >&2
  tail -n 560 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K2-LIFECYCLE\] exiting task#[0-9]+ revoked 0 owned endpoint\(s\), cancelled 1 responder reply\(s\), drained 0 call\(s\)' "$smoke_log" || {
  echo "HATA: S140 responder-bound CALL cancellation lifecycle marker'ı bulunamadı" >&2
  tail -n 580 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S140\] replacement supervisor strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S140 taze replacement strict EL0 supervisor publication marker'ı bulunamadı" >&2
  tail -n 580 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S140] RESTARTED EL0 ACK=EXACT' "$smoke_log" || {
  echo "HATA: S140 replacement supervisor exact ACK kullanıcı marker'ı bulunamadı" >&2
  tail -n 580 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S140\].*SESSION=1->2 FRESH_SESSION=YES PRE_ACK_EXIT=INVALID_CAPABILITY RECOVERED_INFLIGHT=1 OLD_LEASE_ACK=STALE RETRY_ACK=EXACT RESTARTED_EL0_ACK=YES REPLY_ONESHOT=1/1 BROKER_DRAINED=YES SESSIONS=2 CRASHES=1 CRASH_RECLAIM=5 RESTART_RECLAIM=5 OWNER_EP_CLEANUP=1 free=6139->6134->6139->6134->6139 active=5->10->5->10->5 KERNEL_DIRECT_ACK=NO EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S140 session recovery/exact retry/çift-reclaim baseline marker'ı bulunamadı" >&2
  tail -n 600 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S141\] pre-ACK lifecycle-bound supervisor strict spawn PASS .*TASK_BOUND=YES INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S141 task-bound ACK-öncesi exit strict EL0 publication marker'ı bulunamadı" >&2
  tail -n 620 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S141] PRE-ACK SUPERVISOR EXIT=4' "$smoke_log" || {
  echo "HATA: S141 kontrollü task-bound exit kullanıcı marker'ı bulunamadı" >&2
  tail -n 620 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-LIFECYCLE\] supervisor task#[0-9]+ AUTOMATIC_RECOVERED_INFLIGHT=1' "$smoke_log" || {
  echo "HATA: S141 production task-exit otomatik broker recovery marker'ı bulunamadı" >&2
  tail -n 640 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S141\] replacement lifecycle-bound supervisor strict spawn PASS .*TASK_BOUND=YES HANDOFF=ENDPOINT_CLOSE INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S141 replacement endpoint-close handoff publication marker'ı bulunamadı" >&2
  tail -n 640 "$smoke_log" >&2
  exit 1
}

grep -aFq '[K1-MEM2-S141] AUTOMATIC RECOVERY EL0 ACK=EXACT' "$smoke_log" || {
  echo "HATA: S141 replacement exact ACK kullanıcı marker'ı bulunamadı" >&2
  tail -n 640 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S141\].*SESSION=1->2 TASK_BOUND=YES AUTOMATIC_LIFECYCLE_RECOVERY=YES RECOVERY_CALLER=TASK_EXIT CONTROLLER_RECOVERY_CALLS=0 PRE_ACK_EXIT=INVALID_CAPABILITY RECOVERED_INFLIGHT=1 OLD_LEASE_ACK=STALE RETRY_ACK=EXACT RESTARTED_EL0_ACK=YES REPLACEMENT_HANDOFF=ENDPOINT_CLOSE NORMAL_EXIT_RECOVERY=NONE REPLY_ONESHOT=1/1 BROKER_DRAINED=YES SESSIONS=2 CRASHES=1 CRASH_RECLAIM=5 RESTART_RECLAIM=5 OWNER_EP_CLEANUP=1 free=6139->6134->6139->6134->6139 active=5->10->5->10->5 KERNEL_DIRECT_ACK=NO EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S141 otomatik lifecycle recovery/exact retry/baseline marker'ı bulunamadı" >&2
  tail -n 680 "$smoke_log" >&2
  exit 1
}

s142_fault_spawn_line=$(grep -aE '\[K1-MEM2-S142\] lower-EL fault lifecycle-bound supervisor strict spawn PASS id=[0-9]+ .*TASK_BOUND=YES FAULT_VA=0x0000000060000000 INITIAL_X0=YES W\^X=YES' "$smoke_log" || true)
[ "$(printf '%s\n' "$s142_fault_spawn_line" | grep -c . || true)" -eq 1 ] || {
  echo "HATA: S142 lower-EL fault strict publication marker'ı tam bir kez bulunmalı" >&2
  tail -n 720 "$smoke_log" >&2
  exit 1
}
s142_fault_task=$(printf '%s\n' "$s142_fault_spawn_line" | sed -E 's/.* id=([0-9]+) .*/\1/')

grep -aFq '[K1-MEM2-S142] PRE-ACK LOWER-EL DATA ABORT FAULT_VA=0x0000000060000000' "$smoke_log" || {
  echo "HATA: S142 gerçek fault öncesi kullanıcı marker'ı bulunamadı" >&2
  tail -n 720 "$smoke_log" >&2
  exit 1
}

s142_attribution_count=$(grep -aFc "[EL0-FAULT-CONTAINMENT] task#$s142_fault_task EC=0x24 FAR_EL1=0x0000000060000000 ACTION=TERMINATE_CURRENT_EL0_TASK" "$smoke_log" || true)
[ "$s142_attribution_count" -eq 1 ] || {
  echo "HATA: S142 EC=0x24/FAR/task attribution tam bir kez bekleniyordu, bulunan=$s142_attribution_count" >&2
  tail -n 740 "$smoke_log" >&2
  exit 1
}

s142_fatal_count=$(grep -aFc '[FATAL] !!! Terminating task #' "$smoke_log" || true)
[ "$s142_fatal_count" -eq 1 ] || {
  echo "HATA: yalnız S142 kullanıcı görevi için tek fatal containment bekleniyordu, bulunan=$s142_fatal_count" >&2
  tail -n 760 "$smoke_log" >&2
  exit 1
}
grep -aFq "[FATAL] !!! Terminating task #$s142_fault_task (oom-fault-strict-el0-supervisor-elf) !!!" "$smoke_log" || {
  echo "HATA: S142 fatal marker'ı faulting supervisor kimliğiyle eşleşmiyor" >&2
  tail -n 760 "$smoke_log" >&2
  exit 1
}
[ "$(grep -aFc 'Reason : data abort from EL0' "$smoke_log" || true)" -eq 1 ] || {
  echo "HATA: S142 lower-EL Data Abort nedeni tekil değil" >&2
  tail -n 760 "$smoke_log" >&2
  exit 1
}

grep -aEq "\[K2-LIFECYCLE\] fatal task#$s142_fault_task revoked 0 owned endpoint\(s\), cancelled 1 responder reply\(s\), drained 0 call\(s\)" "$smoke_log" || {
  echo "HATA: S142 fatal IPC teardown/cancel sırası kanıtlanamadı" >&2
  tail -n 780 "$smoke_log" >&2
  exit 1
}
grep -aFq "[K1-MEM2-LIFECYCLE] supervisor task#$s142_fault_task AUTOMATIC_RECOVERED_INFLIGHT=1" "$smoke_log" || {
  echo "HATA: S142 fatal task-exit otomatik broker recovery marker'ı bulunamadı" >&2
  tail -n 780 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S142\] replacement lifecycle-bound supervisor strict spawn PASS .*TASK_BOUND=YES HANDOFF=ENDPOINT_CLOSE INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S142 replacement endpoint-close handoff publication marker'ı bulunamadı" >&2
  tail -n 800 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K1-MEM2-S142] FAULT RECOVERY EL0 ACK=EXACT' "$smoke_log" || {
  echo "HATA: S142 replacement exact ACK kullanıcı marker'ı bulunamadı" >&2
  tail -n 800 "$smoke_log" >&2
  exit 1
}

s142_kernel_fault_count=$(grep -aEic 'kernel data abort|kernel instruction abort|Data Abort, same EL|Instruction Abort, same EL' "$smoke_log" || true)
[ "$s142_kernel_fault_count" -eq 0 ] || {
  echo "HATA: S142 kabulü sırasında kernel-origin fault gözlendi, bulunan=$s142_kernel_fault_count" >&2
  tail -n 820 "$smoke_log" >&2
  exit 1
}
grep -aEq '\[K1-MEM2-S142\].*SESSION=3->4 TASK_BOUND=YES LOWER_EL_SYNC_VECTOR=YES FAULT=EL0_DATA_ABORT_EC24 FAULT_VA=0x0000000060000000 AUTOMATIC_LIFECYCLE_RECOVERY=YES RECOVERY_CALLER=FATAL_TASK_EXIT CONTROLLER_RECOVERY_CALLS=0 PRE_ACK_FAULT=INVALID_CAPABILITY FAULT_IPC_CANCEL=1 RECOVERED_INFLIGHT_DELTA=1 OLD_LEASE_ACK=STALE RETRY_ACK=EXACT RESTARTED_EL0_ACK=YES REPLACEMENT_HANDOFF=ENDPOINT_CLOSE NORMAL_EXIT_RECOVERY=NONE REPLY_ONESHOT=1/1 BROKER_DRAINED=YES SESSIONS=4 CRASHES=2 ACKNOWLEDGED=2 FAULT_RECLAIM=5 RESTART_RECLAIM=5 OWNER_EP_CLEANUP=1 free=6139->6134->6139->6134->6139 active=5->10->5->10->5 KERNEL_FAULTS=0 KERNEL_DIRECT_ACK=NO EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S142 lower-EL fault/recovery/exact retry/baseline marker'ı bulunamadı" >&2
  tail -n 840 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S143\] reply-bridge supervisor strict spawn PASS .*TASK_BOUND=YES BRIDGE_ARMED=YES INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S143 reply-bridge strict EL0 publication marker'ı bulunamadı" >&2
  tail -n 860 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K1-MEM2-S143] REPLY BRIDGE EL0 ACK=EXACT' "$smoke_log" || {
  echo "HATA: S143 ordinary SYS_IPC_REPLY exact ACK kullanıcı marker'ı bulunamadı" >&2
  tail -n 860 "$smoke_log" >&2
  exit 1
}
s143_bridge_commit_count=$(grep -aFc 'REPLY_DERIVED_BROKER_COMMIT=YES SESSION_CLOSE=AUTOMATIC' "$smoke_log" || true)
[ "$s143_bridge_commit_count" -eq 1 ] || {
  echo "HATA: S143 reply-derived broker commit exact bir kez bekleniyordu, bulunan=$s143_bridge_commit_count" >&2
  tail -n 880 "$smoke_log" >&2
  exit 1
}
if grep -aEq '\[K1-MEM2-REPLY-BRIDGE\] (PREFLIGHT_REJECTED|CALL_ALIAS_REJECTED)' "$smoke_log"; then
  echo "HATA: S143 kabul yolunda reply-bridge rejection gözlendi" >&2
  grep -aE '\[K1-MEM2-REPLY-BRIDGE\] (PREFLIGHT_REJECTED|CALL_ALIAS_REJECTED)' "$smoke_log" >&2
  exit 1
fi
grep -aEq '\[K1-MEM2-S143\].*SESSION=5 TASK_BOUND=YES USER_REPLY=ORDINARY_SYS_IPC_REPLY BRIDGE_PREFLIGHT=EXACT REPLY_DERIVED_ACK=YES SESSION_CLOSE=AUTOMATIC BRIDGE_ACK_CALLS=1 BRIDGE_SESSION_CLOSE_CALLS=1 CONTROLLER_BROKER_ACK_CALLS=0 CONTROLLER_SESSION_CLOSE_CALLS=0 SYNTHETIC_ACK=NO REPLY_ONESHOT=1/1 NORMAL_EXIT_RECOVERY=NONE BROKER_DRAINED=YES SESSIONS=5 CRASHES=2 ACKNOWLEDGED=3 BRIDGE_ARMED=1 BRIDGE_COMMITTED=1 BRIDGE_CANCELLED=0 RECLAIM=5 OWNER_EP_CLEANUP=1 free=6139->6134->6139 active=5->10->5 KERNEL_FAULTS=0 EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S143 ordinary reply-derived broker ACK/session-close/baseline marker'ı bulunamadı" >&2
  tail -n 900 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K2-S144\] responder strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S144 strict timeout responder publication marker'ı bulunamadı" >&2
  tail -n 940 "$smoke_log" >&2
  exit 1
}
grep -aEq '\[K2-S144\] caller strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S144 strict timeout caller publication marker'ı bulunamadı" >&2
  tail -n 940 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K2-S144] STRICT EL0 RECV=DELIVERED' "$smoke_log" || {
  echo "HATA: S144 ordinary RECV teslim marker'ı bulunamadı" >&2
  tail -n 960 "$smoke_log" >&2
  exit 1
}
s144_timeout_count=$(grep -aFc '[K2-S144-DEADLINE]' "$smoke_log" || true)
[ "$s144_timeout_count" -eq 1 ] || {
  echo "HATA: S144 exact bir timer timeout bekleniyordu, bulunan=$s144_timeout_count" >&2
  tail -n 980 "$smoke_log" >&2
  exit 1
}
grep -aEq '\[K2-S144-DEADLINE\].*TIMEOUT=EXACT REPLY_RETIRED=YES WAKE=TIMED_OUT' "$smoke_log" || {
  echo "HATA: S144 timer/reply-retire/exact wake marker'ı bulunamadı" >&2
  tail -n 980 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K2-S144] STRICT EL0 CALL RETURN=TIMED_OUT' "$smoke_log" || {
  echo "HATA: S144 caller TimedOut dönüş marker'ı bulunamadı" >&2
  tail -n 980 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K2-S144] STRICT EL0 LATE REPLY=INVALID_CAPABILITY' "$smoke_log" || {
  echo "HATA: S144 late ordinary REPLY reddi bulunamadı" >&2
  tail -n 980 "$smoke_log" >&2
  exit 1
}
if grep -aFq '[K2-S144] STRICT EL0 CALL RETURN=UNEXPECTED' "$smoke_log" || \
   grep -aFq '[K2-S144] STRICT EL0 RESPONDER=UNEXPECTED' "$smoke_log"; then
  echo "HATA: S144 strict EL0 peer beklenmeyen dönüş üretti" >&2
  grep -aF '[K2-S144]' "$smoke_log" >&2
  exit 1
fi
grep -aEq '\[K2-S144\].*ABI=SYS_IPC_CALL_TIMEOUT X6_RELATIVE_TICKS=3 TIMER_ARBITRATION=SERIALIZED TIMEOUT_AT_DEADLINE=YES WAIT_EPOCH=1 REGISTERED=1 TIMED_OUT=1 REPLIED=0 PEER_CLOSED=0 CANCELLED=0 REPLY_RETIRED=YES LATE_REPLY_AUTHORITY_ABSENT=YES CALLER_WAKE=TIMED_OUT EXACT_ONCE=YES BOTH_STRICT=YES RECLAIM=10 OWNER_EP_CLEANUP=1 free=6139->6129->6139 active=5->15->5 KERNEL_FAULTS=0 EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S144 deadline arbitration/late-reply/baseline final marker'ı bulunamadı" >&2
  tail -n 1000 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K2-S145\] receiver strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S145 strict timed receiver publication marker'ı bulunamadı" >&2
  tail -n 1020 "$smoke_log" >&2
  exit 1
}
grep -aEq '\[K2-S145\] caller strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S145 strict late caller publication marker'ı bulunamadı" >&2
  tail -n 1020 "$smoke_log" >&2
  exit 1
}
s145_timeout_count=$(grep -aFc '[K2-S145-DEADLINE]' "$smoke_log" || true)
[ "$s145_timeout_count" -eq 1 ] || {
  echo "HATA: S145 exact bir RECV timer timeout bekleniyordu, bulunan=$s145_timeout_count" >&2
  tail -n 1040 "$smoke_log" >&2
  exit 1
}
grep -aEq '\[K2-S145-DEADLINE\].*TIMEOUT=EXACT WAKE=TIMED_OUT STALE_WAITER_REMOVED=YES' "$smoke_log" || {
  echo "HATA: S145 exact RECV timeout/wake/stale waiter marker'ı bulunamadı" >&2
  tail -n 1040 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K2-S145] STRICT EL0 RECV RETURN=TIMED_OUT' "$smoke_log" || {
  echo "HATA: S145 receiver TimedOut dönüş marker'ı bulunamadı" >&2
  tail -n 1060 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K2-S145] STRICT EL0 LATE CALL=FRESH_RECV' "$smoke_log" || {
  echo "HATA: S145 late CALL taze RECV teslim marker'ı bulunamadı" >&2
  tail -n 1060 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K2-S145] STRICT EL0 LATE CALL REPLY=OK' "$smoke_log" || {
  echo "HATA: S145 late ordinary CALL/REPLY başarı marker'ı bulunamadı" >&2
  tail -n 1060 "$smoke_log" >&2
  exit 1
}
if grep -aFq '[K2-S145] STRICT EL0 RECEIVER=UNEXPECTED' "$smoke_log" || \
   grep -aFq '[K2-S145] STRICT EL0 LATE CALL=UNEXPECTED' "$smoke_log"; then
  echo "HATA: S145 strict EL0 peer beklenmeyen dönüş üretti" >&2
  grep -aF '[K2-S145]' "$smoke_log" >&2
  exit 1
fi
grep -aEq '\[K2-S145\].*ABI=SYS_IPC_RECV_TIMEOUT X6_RELATIVE_TICKS=3 TIMER_ARBITRATION=SERIALIZED TIMEOUT_AT_DEADLINE=YES WAIT_EPOCH=2 REGISTERED=2 TIMED_OUT=1 DELIVERED=1 REPLIED=0 PEER_CLOSED=0 CANCELLED=0 STALE_WAITER_ABSENT=YES FRESH_RECV_DELIVERED=YES LATE_CALL_REPLY=OK EXACT_ONCE=YES BOTH_STRICT=YES RECLAIM=10 OWNER_EP_CLEANUP=1 free=6139->6129->6139 active=5->15->5 KERNEL_FAULTS=0 EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S145 RECV deadline/late delivery/baseline final marker'ı bulunamadı" >&2
  tail -n 1080 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K2-S146\] waiter strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S146 strict timed notification waiter publication marker'ı bulunamadı" >&2
  tail -n 1100 "$smoke_log" >&2
  exit 1
}
grep -aEq '\[K2-S146\] signaler strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S146 strict notification signaler publication marker'ı bulunamadı" >&2
  tail -n 1100 "$smoke_log" >&2
  exit 1
}
s146_timeout_count=$(grep -aFc '[K2-S146-DEADLINE]' "$smoke_log" || true)
[ "$s146_timeout_count" -eq 1 ] || {
  echo "HATA: S146 exact bir notification timer timeout bekleniyordu, bulunan=$s146_timeout_count" >&2
  tail -n 1120 "$smoke_log" >&2
  exit 1
}
grep -aEq '\[K2-S146-DEADLINE\].*TIMEOUT=EXACT WAKE=TIMED_OUT STALE_WAITER_REMOVED=YES' "$smoke_log" || {
  echo "HATA: S146 exact notification timeout/wake/stale waiter marker'ı bulunamadı" >&2
  tail -n 1120 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K2-S146] STRICT EL0 NOTIFY RETURN=TIMED_OUT' "$smoke_log" || {
  echo "HATA: S146 waiter TimedOut dönüş marker'ı bulunamadı" >&2
  tail -n 1140 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K2-S146] STRICT EL0 NOTIFY NONMATCHING=COALESCED' "$smoke_log" || {
  echo "HATA: S146 non-matching coalescing marker'ı bulunamadı" >&2
  tail -n 1140 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K2-S146] STRICT EL0 NOTIFY MATCHING=SIGNALED' "$smoke_log" || {
  echo "HATA: S146 matching signal marker'ı bulunamadı" >&2
  tail -n 1140 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K2-S146] STRICT EL0 NOTIFY WAKE=MATCHED' "$smoke_log" || {
  echo "HATA: S146 exact matching wake marker'ı bulunamadı" >&2
  tail -n 1140 "$smoke_log" >&2
  exit 1
}
grep -aFq '[K2-S146] STRICT EL0 NOTIFY IMMEDIATE=COALESCED' "$smoke_log" || {
  echo "HATA: S146 immediate coalesced-bit consumption marker'ı bulunamadı" >&2
  tail -n 1140 "$smoke_log" >&2
  exit 1
}
if grep -aFq '[K2-S146] STRICT EL0 NOTIFY WAITER=UNEXPECTED' "$smoke_log" || \
   grep -aFq '[K2-S146] STRICT EL0 NOTIFY SIGNALER=UNEXPECTED' "$smoke_log"; then
  echo "HATA: S146 strict EL0 peer beklenmeyen dönüş üretti" >&2
  grep -aF '[K2-S146]' "$smoke_log" >&2
  exit 1
fi
grep -aEq '\[K2-S146\].*ABI=SYS_NOTIFICATION_WAIT_TIMEOUT\+SYS_NOTIFICATION_SIGNAL X1_MASK_BITS=YES X6_RELATIVE_TICKS=3 TIMER_ARBITRATION=SERIALIZED TIMEOUT_AT_DEADLINE=YES WAIT_EPOCH=2 REGISTERED=2 TIMED_OUT=1 DELIVERED=1 REPLIED=0 PEER_CLOSED=0 CANCELLED=0 STALE_WAITER_ABSENT=YES NONMATCHING_COALESCED=YES MATCHING_WAKE=YES IMMEDIATE_COALESCED=YES IMMEDIATE_NOTIFICATION_DEADLINE=UNARMED EXACT_ONCE=YES BOTH_STRICT=YES RECLAIM=10 NOTIFICATION_CLEANUP=1 free=6139->6129->6139 active=5->15->5 KERNEL_FAULTS=0 EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S146 notification deadline/coalescing/wake/baseline final marker'ı bulunamadı" >&2
  tail -n 1160 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K2-S147\] grant-revoke waiter strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S147 admitted-grant revoke waiter publication marker'ı bulunamadı" >&2
  tail -n 1180 "$smoke_log" >&2
  exit 1
}
grep -aEq '\[K2-S147\] owner-close waiter strict spawn PASS .*INITIAL_X0=YES W\^X=YES' "$smoke_log" || {
  echo "HATA: S147 owner-lifecycle waiter publication marker'ı bulunamadı" >&2
  tail -n 1180 "$smoke_log" >&2
  exit 1
}
s147_invalid_wake_count=$(grep -aFc '[K2-S147] STRICT EL0 NOTIFY WAKE=INVALID_CAPABILITY' "$smoke_log" || true)
[ "$s147_invalid_wake_count" -eq 2 ] || {
  echo "HATA: S147 için exact iki InvalidCapability wake bekleniyordu, bulunan=$s147_invalid_wake_count" >&2
  tail -n 1200 "$smoke_log" >&2
  exit 1
}
s147_stale_wait_count=$(grep -aFc '[K2-S147] STRICT EL0 NOTIFY STALE_WAIT=REJECTED' "$smoke_log" || true)
[ "$s147_stale_wait_count" -eq 2 ] || {
  echo "HATA: S147 için exact iki stale WAIT reddi bekleniyordu, bulunan=$s147_stale_wait_count" >&2
  tail -n 1200 "$smoke_log" >&2
  exit 1
}
if grep -aFq '[K2-S147] STRICT EL0 NOTIFY LIFECYCLE=UNEXPECTED' "$smoke_log"; then
  echo "HATA: S147 strict EL0 lifecycle waiter beklenmeyen dönüş üretti" >&2
  grep -aF '[K2-S147]' "$smoke_log" >&2
  exit 1
fi
grep -aEq '\[K2-S147\].*ABI=UNCHANGED_V1_3 GRANT_REVOKE=EXACT OWNER_LIFECYCLE=EXACT REGISTERED=2 CANCELLED=1 PEER_CLOSED=1 TIMED_OUT=0 DELIVERED=0 REPLIED=0 REVOKED_WAKE=INVALID_CAPABILITY OWNER_CLOSE_WAKE=INVALID_CAPABILITY STALE_WAIT=REJECTED STALE_SIGNAL=REJECTED NONMATCHING_AFTER_REVOKE=COALESCED EXACT_ONCE=YES BOTH_STRICT=YES RECLAIM=10 OWNED_NOTIFICATION_CLEANUP=2 DERIVED_GRANT_CLEANUP=1 free=6139->6129->6139 active=5->15->5 KERNEL_FAULTS=0 EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S147 notification revoke/owner-lifecycle/exact baseline marker'ı bulunamadı" >&2
  tail -n 1220 "$smoke_log" >&2
  exit 1
}

for winner in signal revoke timeout; do
  grep -aEq "\\[K2-S148\\] ${winner} waiter strict spawn PASS .*INITIAL_X0=YES W\\^X=YES" "$smoke_log" || {
    echo "HATA: S148 ${winner} strict waiter publication marker'ı bulunamadı" >&2
    tail -n 1260 "$smoke_log" >&2
    exit 1
  }
done
for wake in DELIVERED INVALID_CAPABILITY TIMED_OUT; do
  wake_count=$(grep -aFc "[K2-S148] STRICT EL0 RACE WAKE=${wake}" "$smoke_log" || true)
  [ "$wake_count" -eq 1 ] || {
    echo "HATA: S148 ${wake} için exact bir strict wake bekleniyordu, bulunan=$wake_count" >&2
    tail -n 1280 "$smoke_log" >&2
    exit 1
  }
done
if grep -aFq '[K2-S148] STRICT EL0 RACE WAKE=UNEXPECTED' "$smoke_log"; then
  echo "HATA: S148 strict EL0 race waiter beklenmeyen dönüş üretti" >&2
  grep -aF '[K2-S148]' "$smoke_log" >&2
  exit 1
fi
grep -aEq '\[K2-S148\].*ABI=UNCHANGED_V1_3 ARBITER=IPC_TRANSACTION_LOCK MATRIX=ALL_6_PERMUTATIONS_HOST AT_EXACT_DEADLINE=3 SIGNAL_FIRST=DELIVERED REVOKE_FIRST=CANCELLED TIMEOUT_FIRST=TIMED_OUT REGISTERED=3 DELIVERED=1 CANCELLED=1 TIMED_OUT=1 PEER_CLOSED=0 REPLIED=0 WAKE_TOTAL=3 LOSER_RETRY=STALE EXACT_ONCE=YES ALL_STRICT=YES RECLAIM=15 NOTIFICATION_CLEANUP=3 free=6139->6124->6139 active=5->20->5 KERNEL_FAULTS=0 EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S148 signal/revoke/timeout exact-once yarış matrisi marker'ı bulunamadı" >&2
  tail -n 1300 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[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' "$smoke_log" || {
  echo "HATA: S149 deadline saturation/recovery/service-budget marker'ı bulunamadı" >&2
  tail -n 1320 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K2-S150\] ABI=UNCHANGED_V1_3 CLOCK=CNTVCT_EL0 CNTFRQ=[1-9][0-9]* TICK_HZ=100 PERIOD_COUNTS=[1-9][0-9]* QUANTUM_NS_CEIL=10000000 CAPACITY=32 SERVICE_BUDGET_PER_IRQ=1 DISTINCT_SERVICE_IRQS=32 FIRST_TICK=[0-9]+ LAST_TICK=[0-9]+ TICK_SPAN=31 COUNTER_SPAN=[1-9][0-9]* MEASURED_NS_CEIL=[1-9][0-9]* FULL_TABLE_SLA_NS=320000000 SLA=PASS REGISTERED=32 TIMED_OUT=32 ACTIVE_FINAL=0 GLOBAL_ACTIVE=0->0 ALLOCATION_FREE=YES CPU0_ONLY=YES PHYSICAL_DEVICE_OPS=0 KERNEL_FAULTS=0 EXECUTOR=PASS' "$smoke_log" || {
  echo "QEMU smoke failed: missing S150 counter-calibrated 32-IRQ latency SLA marker" >&2
  grep -aF '[K2-S150]' "$smoke_log" >&2 || true
  exit 1
}

grep -aEq '\[K2-S151\] ABI=UNCHANGED_V1_3 CLOCK=CNTVCT_EL0 CNTFRQ=[1-9][0-9]* TICK_HZ=100 CAPACITY=32 SERVICE_BUDGET_PER_IRQ=1 ROUNDS=4 FULL_TABLES=4 RETIRED=128 MAX_MEASURED_NS_CEIL=[1-9][0-9]* FULL_TABLE_SLA_NS=320000000 SLA=PASS ACTIVE_FINAL=0 GLOBAL_ACTIVE=0->0 ALLOCATION_FREE=YES CPU0_ONLY=YES PHYSICAL_DEVICE_OPS=0 KERNEL_FAULTS=0 EXECUTOR=PASS' "$smoke_log" || {
  echo "QEMU smoke failed: missing S151 bounded deadline workload replay marker" >&2
  grep -aF '[K2-S151]' "$smoke_log" >&2 || true
  exit 1
}

grep -aEq '\[K2-S152\] ABI=UNCHANGED_V1_3 CLOCK=CNTVCT_EL0 CNTFRQ=[1-9][0-9]* TICK_HZ=100 CAPACITY=32 SERVICE_BUDGET_PER_IRQ=1 ROUNDS=8 FULL_TABLES=8 RETIRED=256 MAX_MEASURED_NS_CEIL=[1-9][0-9]* FULL_TABLE_SLA_NS=320000000 SLA=PASS ACTIVE_FINAL=0 GLOBAL_ACTIVE=0->0 ALLOCATION_FREE=YES CPU0_ONLY=YES PHYSICAL_DEVICE_OPS=0 KERNEL_FAULTS=0 EXECUTOR=PASS' "$smoke_log" || {
  echo "QEMU smoke failed: missing S152 extended bounded deadline replay marker" >&2
  grep -aF '[K2-S152]' "$smoke_log" >&2 || true
  exit 1
}

grep -aEq '\[K2-S153\] ABI=UNCHANGED_V1_3 CLOCK=CNTVCT_EL0 CNTFRQ=[1-9][0-9]* TICK_HZ=100 CAPACITY=32 SERVICE_BUDGET_PER_IRQ=1 ROUNDS=16 FULL_TABLES=16 RETIRED=512 MAX_MEASURED_NS_CEIL=[1-9][0-9]* FULL_TABLE_SLA_NS=320000000 SLA=PASS ACTIVE_FINAL=0 GLOBAL_ACTIVE=0->0 ALLOCATION_FREE=YES CPU0_ONLY=YES PHYSICAL_DEVICE_OPS=0 KERNEL_FAULTS=0 EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S153 extended bounded sixteen-round deadline replay marker'ı bulunamadı" >&2
  grep -aF '[K2-S153]' "$smoke_log" >&2 || true
  tail -n 1500 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K2-S154\] ABI=UNCHANGED_V1_3 CLOCK=CNTVCT_EL0 CNTFRQ=[1-9][0-9]* TICK_HZ=100 CAPACITY=32 SERVICE_BUDGET_PER_IRQ=1 ROUNDS=32 FULL_TABLES=32 RETIRED=1024 MAX_MEASURED_NS_CEIL=[1-9][0-9]* FULL_TABLE_SLA_NS=320000000 SLA=PASS ACTIVE_FINAL=0 GLOBAL_ACTIVE=0->0 ALLOCATION_FREE=YES CPU0_ONLY=YES PHYSICAL_DEVICE_OPS=0 KERNEL_FAULTS=0 EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S154 bounded thirty-two-round deadline replay marker'ı bulunamadı" >&2
  grep -aF '[K2-S154]' "$smoke_log" >&2 || true
  tail -n 1800 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-MEM2-S135\].*free=6129->6134->6139 .*OWNED_EP=0 DRAINED_CALLS=0 RESPONDER_CALLS=1 STRICT_CALLER_RECLAIM=5 CALLER_DOMAIN_FRAMES=0 RESPONDER_DOMAIN_FRAMES=0 ACTIVE_ALLOCATIONS=15->5 GLOBAL_BASELINE=PASS EL0_CALL_RETURN=INVALID_CAPABILITY EL0_RECV=DELIVERED BOTH_STRICT=YES GRAPH=ABSENT OWNER_EP_CLEANUP=1 CURRENT=YES LATER_STACK=YES ACK=YES REARM=[0-9]+ LEVEL=NORMAL EXECUTOR=PASS' "$smoke_log" || {
  echo "HATA: S135 strict peer teardown ve exact çift-domain baseline marker'ı bulunamadı" >&2
  tail -n 360 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[K1-RUNTIME-ELF-RECLAIM\].*frames=5 free=6144->6144 active_allocations=0->0 BASELINE=PASS' "$smoke_log" || {
  echo "HATA: RuntimePmm ELF reclaim baseline marker'ı bulunamadı" >&2
  tail -n 160 "$smoke_log" >&2
  exit 1
}

grep -aEq '\[SEC +5\]' "$smoke_log" || {
  echo "HATA: scheduler SEC 5 ilerleme marker'ı bulunamadı" >&2
  tail -n 120 "$smoke_log" >&2
  exit 1
}

echo "QEMU smoke PASS: strict ELF W^X 31/31 + S130 Ready-task OOM + S131 current-task later-stack OOM + S132 live IPC graph fixture + S133 EL0 SYS_IPC_CALL cancellation + S271 bounded S133 EL0 return-witness synchronization + S134 strict EL0 SYS_IPC_RECV responder cancellation + S135 two strict ELF peer teardown/baseline + S136 strict EL0 supervisor endpoint/reply ACK transport + S137 timer-daemon audited OOM trigger + S138 timer-driven strict EL0 supervisor ACK transport + S139 bounded multi-event backpressure/ACK-timeout race + S140 pre-ACK supervisor exit/session recovery/exact retry + S141 task-bound automatic lifecycle recovery/exact retry + S142 actual lower-EL Data Abort/fatal lifecycle recovery/exact retry + S143 ordinary reply-derived broker ACK/session-close + S144 general CALL deadline/timer cancellation/late-reply rejection + S145 RECV deadline/stale-waiter rejection/fresh delivery + S146 notification deadline/coalescing/matching wake/immediate consumption + S147 admitted-grant revoke/owner-lifecycle exact cancellation + S148 serialized signal/revoke/timeout exact-once arbitration + S149 deadline capacity-32 fail-closed saturation/one-slot recovery/bounded deterministic drain + S150 CNTVCT-calibrated 32-distinct-IRQ 320ms SLA + S151 bounded four-round deadline workload replay + S152 extended bounded eight-round deadline replay + S153 extended bounded sixteen-round deadline replay + S154 bounded thirty-two-round deadline replay + runtime MEM0 ledger/reclaim baseline + EL0 return x4096 + IPC reply 20/20 + scheduler SEC 5"
snippet sha256: b767e2d58519file sha256: b767e2d58519
02 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL145–L170
simulation/tests/runtime_oom_lifecycle_recovery.rs::s141_qemu_uses_task_exit_recovery_without_a_controller_recovery_call

#[test]
fn s141_qemu_uses_task_exit_recovery_without_a_controller_recovery_call() {
    let main = source("kernel/src/main.rs");
    let crashed = source("userspace/oom_lifecycle_crash_supervisor/src/main.rs");
    let replacement = source("userspace/oom_lifecycle_recovery_supervisor/src/main.rs");
    let smoke = source("scripts/qemu-smoke.sh");
    let run = function_window(
        &main,
        "unsafe fn run_qemu_s141_automatic_lifecycle_recovery(",
        18_000,
    );

    assert!(run.contains("begin_supervisor_session_for_task"));
    assert!(!run.contains("recover_supervisor_session"));
    assert!(!run.contains("recover_supervisor_task_exit"));
    assert!(run.contains("AUTOMATIC_LIFECYCLE_RECOVERY=YES"));
    assert!(run.contains("CONTROLLER_RECOVERY_CALLS=0"));
    assert!(crashed.contains("[K1-MEM2-S141] PRE-ACK SUPERVISOR EXIT=4"));
    assert!(replacement.contains("[K1-MEM2-S141] AUTOMATIC RECOVERY EL0 ACK=EXACT"));
    assert!(replacement.contains("ENDPOINT_CLOSE_HANDOFF"));
    assert!(smoke.contains("AUTOMATIC_LIFECYCLE_RECOVERY=YES"));
    assert!(smoke.contains("CONTROLLER_RECOVERY_CALLS=0"));
    assert!(smoke.contains("W^X 26/26"));
    assert!(smoke.contains("IPC reply 20/20"));
}
snippet sha256: 4eff822c209afile sha256: f10bd83ed362
03 · Kapı kimlik kaydı

Operations sıra, kimlik ve başlık bağı

tam Operations kaydıL25166–L25304
website/src/lib/operations.ts::k1-mem0-mem1-mem2-k2-automatic-oom-supervisor-lifecycle-recovery-partial
  {
    id: "k1-mem0-mem1-mem2-k2-automatic-oom-supervisor-lifecycle-recovery-partial",
    date: "2026-08-24",
    sequence: 141,
    status: "passed",
    umbrella_status: "partial",
    title: "K1/MEM0–MEM2/K2: otomatik OOM supervisor yaşam döngüsü recovery",
    summary:
      "S141, S140'ın exact supervisor session authority'sini non-zero task kimliğine bağlar. Normal task_exit ve fatal task termination yolları, başarılı IPC teardown sonrasında ve Dead commit'inden önce aynı production broker recovery hook'unu çağırır. Strict RuntimePmm EL0 supervisor gerçek kernel CALL'u ordinary SYS_IPC_RECV ile aldıktan sonra kontrollü SYS_EXIT(4) yapar; responder-bound reply iptal edilir, caller InvalidCapability ile uyanır ve lifecycle tek in-flight lease'i controller recovery çağrısı olmadan Pending'e döndürür. Eski lease StaleLease olur. Fresh task-bound replacement ordinary SYS_IPC_REPLY ile exact cevap verir; controller ACK/session-close commit'inden sonra ENDPOINT_CLOSE handoff ile normal çıkar ve ikinci recovery NONE kalır. Bu injected lower-EL fault değildir; fatal yol source-wired fakat runtime'da çalıştırılmamıştır ve broker ACK commit'i hâlâ controller-driven'dır. K1/MEM0–MEM2/K2 PARTIAL kalır.",
    evidence: [
      "Task-bound API yokken `runtime_oom_lifecycle_recovery` compile aşamasında 0/7 RED, exit 101 verdi. Generic binding sonrasında eksik production lifecycle/image kapıları 5/7, smoke sözleşmesi eksikken 6/7 kaldı; final 7/7 PASS.",
      "Exact task binding tek broker kilidi altında atomiktir. Unrelated task exit, duplicate exit ve manual-unbound session exit mutasyonsuz None; task id=0 mutasyondan önce ZeroSupervisorTask olur.",
      "Normal `task_exit` ve fatal termination aynı recovery hook'unu IPC teardown sonrasında, Dead/ASID commit'inden önce çağırır. Recovery hatası task'i başarılı ölüme taşımadan fail-closed quarantine eder.",
      "İlk QEMU handoff'u tek SYS_YIELD kullandı; replacement controller ACK'inden önce çıktı, lifecycle ikinci recovery yaptı ve controller StaleLease panic'i aldı. PASS verilmedi. Replacement ikinci RECV'de bloklanıp ACK/session-close sonrası endpoint close ile uyandırılacak biçimde düzeltildi.",
      "S129–S141 exact envanteri 30 binary / 161 testtir; 161/161 PASS. AArch64 board-qemu, board-rpi4, board-rpi5 ve board-rpi5+smp applicability 4/4 PASS.",
      "QEMU controller/crashed/replacement=32/46/47; domains=1330597182/1330597183, endpoint=39. PRE-ACK SUPERVISOR EXIT=4, cancelled responder replies=1 ve AUTOMATIC_RECOVERED_INFLIGHT=1; controller recovery calls=0.",
      "SESSION=1→2, TASK_BOUND=YES, RECOVERY_CALLER=TASK_EXIT, OLD_LEASE_ACK=STALE, RETRY_ACK=EXACT, RESTARTED_EL0_ACK=YES, REPLACEMENT_HANDOFF=ENDPOINT_CLOSE, NORMAL_EXIT_RECOVERY=NONE, REPLY_ONESHOT=1/1 ve BROKER_DRAINED=YES.",
      "İki strict supervisor quota'sı ayrı ayrı 5→0; free 6139→6134→6139→6134→6139, active 5→10→5→10→5, CRASH_RECLAIM/RESTART_RECLAIM=5/5, OWNER_EP_CLEANUP=1, KERNEL_DIRECT_ACK=NO ve EXECUTOR=PASS.",
      "QEMU strict ELF W^X 17/17, IPC reply 17/17, final RuntimePmm 6144→6144 / active 0→0 ve scheduler SEC5 birlikte PASS. Genel FATAL/DATA ABORT ve status=2/3 yasakları korunur.",
      "S141 kontrollü SYS_EXIT(4) kullanır: lower-EL fault injected=false, fatal hook runtime exercised=false. Automatic olan ölüm sonrası broker recovery'dir; ordinary EL0 reply'ın broker ACK/session-close commit'i controller tarafından yapılır.",
      "Tam workspace yalnız bağımsız frozen S96 exceptions.S SHA-256 uyuşmazlığında durdu: observed f7b47672…04fd, expected c0eed3e2…cb89; full GREEN iddia edilmedi.",
      "Fiziksel operatör runbook'u görünürdür: Gücü kapat → SD kartı Pi'den çıkar → SD kartı Mac'e tak → yetkili image/yazma ve read-back doğrulaması → SD kartı Mac'ten güvenli çıkar → SD kartı güçsüz Pi'ye tak → UART capture pre-arm/identity → Güç ver.",
      "Runbook S141'de uygulanmadı: physical/device operations=0, S124 archive/promotion STOP, son fiziksel boot/runtime PASS S92 BOOT8G ve son storage/media PASS S119.",
      "Güncel planlama tahmini S141 bazında R2 bitiş aralığı S325–381, risk-paylı merkez ≈S358'dir; taahhüt, yeni bir S142 işlemi veya fiziksel PASS değildir.",
      "Web kapıları 237/237 içerik testi, ESLint, TypeScript --noEmit ve statik 23/23 route / 191 file PASS verdi.",
      "İlk S141 production yayını 9a5b496d.aselsan-microkernel.pages.dev kimliğiyle tamamlandı; özel alan adı cache-bust ile byte-exact doğrulandı: operations 4840617 B / e621726d…fbeb, timeline 529402 B / db3384f5…24f5, yol-haritasi 529550 B / 7713b7c6…fd29. Üç route S141 runtime, açık fiziksel runbook ve S325–381 / ≈S358 marker'larını 17/17 taşıdı; immutable deployment alt alan adına current host'tan direct connect timeout oldu ve buna dayanılarak PASS üretilmedi.",
      "Kalıcı kapsam: `docs/K1-S141-Automatic-OOM-Supervisor-Lifecycle-Recovery-Proof.md`.",
    ],
    commands: [
      "cargo test -p aselsan_microkernel_simulation --test runtime_oom_lifecycle_recovery -- --test-threads=1",
      "cargo test -p aselsan_microkernel_simulation [30 exact focused 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 -- --test-threads=1",
      "python3 scripts/render-project-status.py --check",
      "cd website && npm test && npm run lint && npx tsc --noEmit && npm run build",
    ],
    terminalSessions: [
      {
        id: "s141-red-before-task-bound-authority",
        title:
          "Task-bound lifecycle recovery kaynak kapısı: implementation öncesi RED",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation --test runtime_oom_lifecycle_recovery -- --test-threads=1",
        ],
        outputLines: [
          "runtime_oom_lifecycle_recovery: 0/7 before implementation",
          "compile error: task-bound supervisor session authority missing",
        ],
        exitCode: 101,
        outputMode: "selected",
      },
      {
        id: "s141-partial-source-gates",
        title:
          "Production lifecycle, strict images ve smoke eksikleri fail-closed kaldı",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation --test runtime_oom_lifecycle_recovery -- --test-threads=1",
        ],
        outputLines: [
          "generic task-bound broker authority: 5/7",
          "lifecycle + strict images present, smoke contract absent: 6/7",
          "no partial PASS accepted",
        ],
        exitCode: 101,
        outputMode: "selected",
      },
      {
        id: "s141-fail-closed-nondeterministic-yield-handoff",
        title: "İlk QEMU runtime: replacement ACK commit öncesi çıktı",
        commandLines: ["make verify-qemu"],
        outputLines: [
          "first supervisor lifecycle recovery: AUTOMATIC_RECOVERED_INFLIGHT=1",
          "single SYS_YIELD did not hand control to the lower-priority controller",
          "replacement exited before broker ACK; second recovery made controller lease StaleLease",
          "kernel panic · PASS not emitted",
        ],
        exitCode: 1,
        outputMode: "selected",
      },
      {
        id: "s141-fail-closed-strict-count",
        title: "Düzeltilmiş runtime: tarihsel strict image sayacı reddetti",
        commandLines: ["make verify-qemu"],
        outputLines: [
          "observed strict spawn/W^X: 17/17 · historical expected: 15/15",
          "S141 runtime marker present; smoke remains FAIL-CLOSED",
        ],
        exitCode: 1,
        outputMode: "selected",
      },
      {
        id: "s141-green-focused-aarch64-qemu",
        title: "Automatic lifecycle recovery, AArch64 ve QEMU",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation [30 exact focused test binary] -- --test-threads=1",
          "cargo check -p aselsan_kernel --target aarch64-unknown-none [4 profiles]",
          "make verify-qemu",
        ],
        outputLines: [
          "runtime_oom_lifecycle_recovery: 7/7 PASS",
          "combined exact focused inventory: 161/161 PASS · 30 binaries",
          "AArch64 compile profiles: 4/4 PASS",
          "[K1-MEM2-S141] PRE-ACK SUPERVISOR EXIT=4",
          "[K1-MEM2-LIFECYCLE] supervisor task#46 AUTOMATIC_RECOVERED_INFLIGHT=1",
          "[K1-MEM2-S141] AUTOMATIC RECOVERY EL0 ACK=EXACT",
          "[K1-MEM2-S141] SESSION=1->2 TASK_BOUND=YES AUTOMATIC_LIFECYCLE_RECOVERY=YES RECOVERY_CALLER=TASK_EXIT CONTROLLER_RECOVERY_CALLS=0 OLD_LEASE_ACK=STALE RETRY_ACK=EXACT REPLACEMENT_HANDOFF=ENDPOINT_CLOSE NORMAL_EXIT_RECOVERY=NONE BROKER_DRAINED=YES free=6139->6134->6139->6134->6139 active=5->10->5->10->5 EXECUTOR=PASS",
          "QEMU smoke PASS: strict ELF W^X 17/17 · IPC reply 17/17 · S141 PASS",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
      {
        id: "s141-workspace-independent-history-red",
        title: "Tam workspace: S141 dışı frozen S96 identity kırmızısı",
        commandLines: ["cargo test --workspace -- --test-threads=1"],
        outputLines: [
          "rpi5_g8h_integration_source::wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope: FAILED",
          "S96 exceptions.S SHA-256: observed f7b47672...04fd, frozen expected c0eed3e2...cb89",
          "full-workspace GREEN is not claimed",
        ],
        exitCode: 101,
        outputMode: "selected",
      },
    ],
    terminalSessionsNote:
      "S141 exact task-bound production lifecycle hook'uyla tek in-flight event'i controller recovery çağrısı olmadan kurtarır ve fresh strict EL0 retry'ı endpoint-close handoff ile kapatır. Controlled SYS_EXIT(4), gerçek injected lower-EL fault değildir; broker ACK commit'i controller-driven kalır. Fiziksel runbook görünürdür ve uygulanmadı.",
    limitations: [
      "ACK öncesi ölüm kontrollü SYS_EXIT(4)'tür; injected lower-EL synchronous fault değildir.",
      "Fatal termination aynı production hook'una source-wired'dır fakat S141 runtime'ında fault enjekte edilmedi.",
      "Ölüm sonrası broker recovery otomatikleşti; ordinary EL0 reply'ın broker ACK ve session-close commit'i controller-driven kalır.",
      "Tek source event ve tek in-flight lease recovery kanıtlandı; sekiz independent concurrent victim/session recovery matrisi değildir.",
      "Deadline/race broker ve QEMU acceptance düzeyindedir; genel IPC syscall blocking/timer cancellation yoluna bağlı değildir.",
      "Product pressure eşikleri ölçülmüş veya imzalanmış değildir.",
      "CPU0-only scheduler kanıtıdır; cross-CPU stop, migration-safe runqueue, TLB shootdown ve SMP reaper açıktır.",
      "Capability transfer, shared-memory loan ve bütün legacy/kernel kaynak üreticilerinin ortak reconciliation'ı açıktır.",
      "K1, MEM0, MEM1, MEM2 ve K2 COMPLETE değildir; S124 fiziksel archive/promotion STOP kalır.",
    ],
  },
snippet sha256: 2406648f5a58file sha256: 9726dbf00f84
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test runtime_oom_lifecycle_recovery -- --test-threads=1
proof: docs/K1-S141-Automatic-OOM-Supervisor-Lifecycle-Recovery-Proof.md
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9