S130 · SOURCE-BOUND GATE EVIDENCE
K1/MEM1–MEM2: ticket-bound scheduler OOM teardown
Operations --test hedefi → focused test içindeki include_str!/#[path] bağı → kaynak kesiti Bu sayfa yalnız S130 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S130Focused kod testiOperations id exactsource SHA exacttest target exact
operation: k1-mem1-mem2-scheduler-oom-teardown-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 öğesiL5105–L5189
kernel/src/task/scheduler.rs::arm_current_runtime_oom_teardown
/// Move one live S129 authority bundle into the scheduler before its exact
/// Ready target becomes current. The target and one alternate switch target
/// must both exist before publication; no effect occurs in this arm phase.
pub unsafe fn arm_current_runtime_oom_teardown(
monitor: crate::mm::RuntimePressureMonitor,
coordinator: crate::mm::RuntimeOomCoordinator,
ticket: crate::mm::RuntimeOomTeardownTicket,
target_task_id: u64,
) -> Result<(), RuntimeOomTaskExecutionError> {
let s352_irq_guard = crate::arch::aarch64::IrqGuard::new();
#[cfg(feature = "board-rpi5")]
let s259_deferred_carrier_scheduler_read_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s258_runtime_oom_arm_read_access_guard_expansion::acquire_s259_production_scheduler_read_access()
.unwrap_or_else(|error| {
panic!(
"S259 runtime OOM deferred-carrier scheduler read access failed closed: {:?}",
error
)
});
let deferred_carrier_busy = (&*core::ptr::addr_of!(SCHEDULER))
.deferred_current_runtime_oom
.is_some();
#[cfg(feature = "board-rpi5")]
drop(s259_deferred_carrier_scheduler_read_access);
if deferred_carrier_busy {
return Err(RuntimeOomTaskExecutionError::DeferredCarrierBusy);
}
let ticket_preflight = crate::mm::with_boot_runtime_memory(|memory| {
coordinator.preflight_teardown(&ticket, memory)
})
.map_err(|_| RuntimeOomTaskExecutionError::BootMemoryAuthority)?
.map_err(RuntimeOomTaskExecutionError::CoordinatorPreflight)?;
if monitor.instance_epoch() != ticket_preflight.domain.instance_epoch() {
return Err(RuntimeOomTaskExecutionError::DeferredTargetMismatch);
}
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
let s352_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s352_current_runtime_oom_arm_writer_guard_integration::acquire_s352_production_scheduler_writer_access()
.unwrap_or_else(|error| {
panic!(
"S352 current-runtime-OOM arm scheduler writer guard failed closed: {:?}",
error
)
});
let sched = &mut *core::ptr::addr_of_mut!(SCHEDULER);
let binding = match sched.preflight_runtime_oom_task(ticket_preflight) {
Ok(binding) => binding,
Err(error) => {
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s352_writer_access);
drop(s352_irq_guard);
return Err(error);
}
};
if binding.location != RuntimeOomTaskLocation::Ready || binding.task_id != target_task_id {
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s352_writer_access);
drop(s352_irq_guard);
return Err(RuntimeOomTaskExecutionError::DeferredWrongLocation);
}
if !sched
.ready_queue
.iter()
.any(|candidate| candidate.task.id != target_task_id)
{
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s352_writer_access);
drop(s352_irq_guard);
return Err(RuntimeOomTaskExecutionError::DeferredExitUnavailable);
}
sched.deferred_current_runtime_oom = Some(DeferredCurrentRuntimeOom {
monitor,
coordinator,
ticket,
binding,
ipc_lifecycle_closed: false,
ipc_teardown: None,
witness: None,
});
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s352_writer_access);
drop(s352_irq_guard);
Ok(())
}snippet sha256: b6fd99507ad5…file sha256: 838dd474448c…
02 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL91–L99
simulation/tests/runtime_oom_scheduler_executor.rs::qemu_runs_a_real_ready_task_oom_executor_and_requires_its_marker
#[test]
fn qemu_runs_a_real_ready_task_oom_executor_and_requires_its_marker() {
assert!(MAIN.contains("run_qemu_runtime_oom_executor_smoke"));
assert!(MAIN.contains("execute_runtime_oom_teardown"));
assert!(MAIN.contains("[K1-MEM2-S130]"));
assert!(QEMU_SMOKE.contains("K1-MEM2-S130"));
assert!(QEMU_SMOKE.contains("EXECUTOR=PASS"));
}snippet sha256: 1138c9431e9a…file sha256: c0582e10021c…
03 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL26410–L26512
website/src/lib/operations.ts::k1-mem1-mem2-scheduler-oom-teardown-partial
{
id: "k1-mem1-mem2-scheduler-oom-teardown-partial",
date: "2026-08-23",
sequence: 130,
status: "passed",
umbrella_status: "partial",
title: "K1/MEM1–MEM2: ticket-bound scheduler OOM teardown",
summary:
"S130, S129'un lineer teardown ticket'ını gerçek non-current strict RuntimePmm scheduler göreviyle fail-closed eşler. İlk etkiden önce ticket/memory baseline'ı ve exact-one task/domain/frame bağı tekrar doğrulanır; IPC lifecycle close, Ready/Blocked detach, Dead geçişi, ASID quiescence, page-table forest/root sökümü, typed scrub/free ve ASID-last retirement tek IRQ guard altında sıralanır. QEMU'da ayrı bir Ready kurban 5 frame ile spawn edildi, executor domain envanterini 5→0 ve PMM free sayısını 6134→6139 döndürdü; event exact teslim/ACK edildi ve monitor NORMAL seviyede epoch 2'ye rearm oldu. Current-task yolu etkiden önce deferred olarak reddedilir; K1/MEM1/MEM2 PARTIAL kalır.",
evidence: [
"RED kapısı üretim executorü yokken 0/5 oldu; beş scheduler OOM kabul testi missing preflight/task binding/executor/reaper/QEMU marker nedeniyle kapalıydı.",
"GREEN scheduler executor kaynak/host kapısı 5/5; birleşik K1/MEM1–MEM2 focused matrisi 99/99 PASS.",
"Preflight, canlı S129 ticket'ı ile authoritative RuntimeMemory snapshot ve victim-domain quota baseline'ını ilk etkiden önce exact doğrular; araya giren allocation `InventoryChanged` ile mutasyonsuz reddedilir.",
"Scheduler Ready ve Blocked envanterini allocation-free tarar; exact-one domain/frame bağı dışındaki ambiguous/current/retired hedefler fail-closed kalır.",
"QEMU marker: task=2, domain=1330597169, event=1, victim frames 5→0, free 6134→6139, IPC=YES, QUIESCED=YES, TABLES=YES, ASID=YES, ACK=YES, REARM=2, LEVEL=NORMAL, EXECUTOR=PASS.",
"QEMU smoke strict ELF W^X 3/3, runtime MEM0 ledger/reclaim, EL0 return x4096, IPC reply 3/3 ve scheduler SEC5 regresyonlarını da geçti.",
"AArch64 board-qemu, board-rpi4, board-rpi5 ve board-rpi5+smp compile applicability 4/4 PASS.",
"Tam workspace yalnız bağımsız frozen S96 exceptions.S SHA-256 uyuşmazlığında durdu: observed f7b47672…04fd, expected c0eed3e2…cb89. Full-workspace GREEN iddia edilmedi.",
"Kalıcı kapsam ve açık S131 sınırı: `docs/K1-S130-Scheduler-OOM-Teardown-Proof.md`.",
],
commands: [
"cargo test -p aselsan_microkernel_simulation --test runtime_oom_scheduler_executor -- --test-threads=1",
"cargo test -p aselsan_microkernel_simulation --test aarch64_asid_encoding --test ipc_queue_source --test kernel_kmap_source --test memory_accounting --test memory_pressure --test runtime_allocation_token --test runtime_boot_authority --test runtime_boot_authority_fail_closed --test runtime_boot_authority_no_alloc --test runtime_domain_quota --test runtime_elf_reclaim_source --test runtime_memory_reconciliation --test runtime_oom_effect --test runtime_oom_scheduler_executor --test runtime_pressure_authority --test task_id_allocator --test task_lifecycle_source --test task_publication_source --test task_spawn_asid_source -- --test-threads=1",
"cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-qemu",
"cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi4",
"cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5",
"cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5,smp",
"make verify-qemu",
"cargo test --workspace -- --test-threads=1",
],
terminalSessions: [
{
id: "s130-red-missing-scheduler-executor",
title: "S130 RED: scheduler OOM yürütücüsü yok",
commandLines: [
"cargo test -p aselsan_microkernel_simulation --test runtime_oom_scheduler_executor -- --test-threads=1",
],
outputLines: [
"runtime_oom_scheduler_executor: 0/5 PASS",
"missing ticket preflight, exact task binding, executor/reaper and QEMU marker",
],
exitCode: 101,
outputMode: "selected",
},
{
id: "s130-green-and-focused-executor",
title: "Scheduler executor ve birleşik authority/lifecycle kapıları",
commandLines: [
"cargo test -p aselsan_microkernel_simulation --test runtime_oom_scheduler_executor -- --test-threads=1",
"cargo test -p aselsan_microkernel_simulation --test aarch64_asid_encoding --test ipc_queue_source --test kernel_kmap_source --test memory_accounting --test memory_pressure --test runtime_allocation_token --test runtime_boot_authority --test runtime_boot_authority_fail_closed --test runtime_boot_authority_no_alloc --test runtime_domain_quota --test runtime_elf_reclaim_source --test runtime_memory_reconciliation --test runtime_oom_effect --test runtime_oom_scheduler_executor --test runtime_pressure_authority --test task_id_allocator --test task_lifecycle_source --test task_publication_source --test task_spawn_asid_source -- --test-threads=1",
],
outputLines: [
"runtime_oom_scheduler_executor: 5/5 PASS",
"combined focused matrix: 99/99 PASS",
"intervening memory mutation: InventoryChanged without coordinator mutation",
"current task: CurrentTaskRequiresDeferredExit before effects",
],
exitCode: 0,
outputMode: "selected",
},
{
id: "s130-aarch64-and-qemu-runtime",
title: "Dört AArch64 profil ve injected Ready-task QEMU teardown",
commandLines: [
"cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-qemu",
"cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi4",
"cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5",
"cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5,smp",
"make verify-qemu",
],
outputLines: [
"AArch64 compile profiles: 4/4 PASS",
"[K1-MEM2-S130] oom-victim strict spawn PASS id=2 pages=2 domain=1330597169 W^X=YES",
"[K1-MEM2-S130] task=2 domain=1330597169 event=1 expected=5 observed=0 free=6134->6139 IPC=YES QUIESCED=YES TABLES=YES ASID=YES ACK=YES REARM=2 LEVEL=NORMAL EXECUTOR=PASS",
"QEMU smoke PASS: strict ELF W^X 3/3 + S130 OOM executor + runtime regressions",
],
exitCode: 0,
outputMode: "selected",
},
{
id: "s130-workspace-independent-history-red",
title: "Tam workspace: S130 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:
"S130 gerçek QEMU Ready-task teardown kanıtıdır. QEMU kurbanının IPC grafiği boştur; Blocked yolu kaynak/host kanıtlı, current-task yolu ise S131'e ertelenmiştir. Fiziksel veya device işlemi yapılmadı.",
limitations: [
"Current-task OOM teardown henüz deferred context-switch taşıyıcısına bağlı değildir; ilk etkiden önce açıkça reddedilir ve S131 kabulidir.",
"QEMU victim Ready durumunda ve IPC grafiği boştur. Blocked-task lifecycle/IPC kapanışı kaynak/host doğruludur ancak runtime enjeksiyonu değildir.",
"Supervisor olayı sabit in-kernel kuyruktadır; gerçek endpoint/syscall consumer ve recovery politikası bağlı değildir.",
"Yalnız strict RuntimePmm-owned task'larda authoritative frame/domain bağı vardır; legacy producers ve generic SMP coordination açıktır.",
"K1, MEM0, MEM1 ve MEM2 COMPLETE değildir; full workspace bağımsız frozen S96 identity kırmızısı nedeniyle GREEN değildir.",
"S124 archive/promotion STOP kalır. Son fiziksel boot/runtime PASS S92 BOOT8G; fiziksel veya device işlemi yapılmadı.",
],
},snippet sha256: b84a21c763c1…file sha256: 9726dbf00f84…
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test runtime_oom_scheduler_executor -- --test-threads=1proof: docs/K1-S130-Scheduler-OOM-Teardown-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06