S226 · SOURCE-BOUND GATE EVIDENCE
G8l: production migration-lifecycle S184 scheduler-execution boundary
Operations --test hedefi → test hedefiyle aynı adlı uygulama/model modülü → kaynak kesiti Bu sayfa yalnız S226 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S226Focused kod testiOperations id exactsource SHA exacttest target exact
operation: g8l-s226-production-migration-lifecycle-s184-scheduler-execution-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 öğesiL67–L99
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s184_scheduler_execution.rs::prepare_production_s187_handoff_from_production_s184_scheduler_execution
/// CPU0 source half of the S184 -> S185 -> S186 -> S187 path.
/// The returned S187 handoff is still not proof of cross-CPU delivery.
#[cfg(all(target_arch = "aarch64", target_os = "none"))]
pub unsafe fn prepare_production_s187_handoff_from_production_s184_scheduler_execution(
runtime: G8lRuntimeAuthority,
authority: G8lSchedulerOwnerAuthority,
scheduler_execution: G8lTargetDispatchSchedulerExecution,
) -> Result<
crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s186_mapping_retirement::G8lProductionMigrationLifecycleS187Handoff,
G8lProductionMigrationLifecycleS184SchedulerExecutionError,
>{
let caller_cpu = crate::percpu::try_current_cpu_id()
.ok_or(G8lProductionMigrationLifecycleS184SchedulerExecutionError::WrongSourceCpu)?;
if caller_cpu != CPU0 {
return Err(G8lProductionMigrationLifecycleS184SchedulerExecutionError::WrongSourceCpu);
}
let mut runtime = runtime;
let tlbi_commit = G8lTargetDispatchTlbiCommitReceipt::commit_scheduler_execution(
&mut runtime,
caller_cpu,
scheduler_execution,
)
.map_err(G8lProductionMigrationLifecycleS184SchedulerExecutionError::TlbiCommit)?;
unsafe {
crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s185_tlbi_completion::prepare_production_s187_handoff_from_production_s185_tlbi_completion_receipt(
runtime,
authority,
tlbi_commit,
)
}
.map_err(G8lProductionMigrationLifecycleS184SchedulerExecutionError::S185)
}snippet sha256: 014e05dd80db…file sha256: 19b8be08635d…
02 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL111–L130
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s184_scheduler_execution.rs::s226_keeps_scheduler_gic_eret_and_physical_boundaries_closed
#[test]
fn s226_keeps_scheduler_gic_eret_and_physical_boundaries_closed() {
let source = include_str!("../../kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s184_scheduler_execution.rs");
for forbidden in [
"task::scheduler",
"SCHEDULER",
"gic::",
"send_sgi",
"runtime.context_switch(",
"write_ttbr0",
"eret()",
"power_on",
] {
assert!(
!source.contains(forbidden),
"forbidden S226 marker: {forbidden}"
);
}
}snippet sha256: 679a55e33d74…file sha256: 2465c6ca4fb5…
03 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL20331–L20382
website/src/lib/operations.ts::g8l-s226-production-migration-lifecycle-s184-scheduler-execution-partial
{
id: "g8l-s226-production-migration-lifecycle-s184-scheduler-execution-partial",
date: "2026-08-25",
sequence: 226,
status: "passed",
umbrella_status: "partial",
title:
"G8l: production migration-lifecycle S184 scheduler-execution boundary",
summary:
"S226 13/13 PASS ile live CPU0'ın exact non-Copy S184 scheduler-execution boundary'sini by-value tüketmesi, S185 TLBI-completion constructor'ını çağırması ve S225/S224 CPU0 producer yolu üzerinden non-Copy S187 handoff döndürmesi source/ABI olarak sabitlendi. Ayrı CPU1 consumer ile S223/S222 downstream invoke edilmedi; exact production scheduler mutation, cross-CPU delivery, GIC/SGI, ERET ve runtime bağlı değildir.",
evidence: [
"S226 focused grubu iki bağımsız koşuda 13/13 PASS: by-value S184 ABI, S185 constructor reuse, S185→S186→S187 order, target CPU0 gate, error surface ve scheduler/GIC/ERET/hardware sınırları doğrulandı.",
"Focused koşular byte-eşit kaldı: 128 B / SHA-256 02983f1a7d644519bfddb0884a6cd0ce69f40c4b845eb54b71ecdc6e19a8ff09.",
"S206 callsite/readback + S207–S226 dependency matrix frozen S225 prefix'i üzerine 23 grup / 277/277 PASS ve 2920 B / SHA-256 2badcdf7db84c159afa0da2ab2bf0c331925116307c40b911fc8bdb8fe46eca4 verdi; ilk 2792 B exact S225 dependency prefix'idir.",
"S155–S226 explicit sequence-ordered matrix frozen S225 prefix'i üzerine 75 grup / 760/760 PASS ve 9331 B / SHA-256 8d5e993f16361ba968d8ee3b4982672e7c1bc7c57daf46093b85370f386d88bf verdi; exact S225 9203 B prefix'i korundu.",
"RPi5 AArch64 compile PASS: 590 warning envanterlendi; 294428 B / SHA-256 862176e826899b735b352ce038f22ad906f60e472d12a295c14404abf09a684c. `smp`: 590 warning, 294370 B / SHA-256 d693dbb1a766e62a14d36f1f61cffff7c7d9463cbe531f6d1840aaec4ad510a8. Zero-warning iddiası yoktur.",
"Kalıcı kapsam: `docs/M8.1-RPi5-G8l-S226-Migration-Lifecycle-S184-Scheduler-Execution-Proof.md`.",
"S226 exact S184 execution boundary'sini by-value tüketir, mevcut S185 TLBI commit constructor'ını bir kez çağırır ve S225 adapter'ına devreder. Target-only producer live CPU0'ı tüketimden önce doğrular, observed caller_cpu'yu aktarır ve yalnız non-Copy S187 handoff döndürür; ayrı CPU1 consumer, S223/S222 downstream, gerçek scheduler mutation, cross-CPU delivery, boot ve migration runtime invoke edilmedi.",
"S226 fiziksel/device operasyonu yapmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S226=NO.",
"Görünür tarihsel fiziksel sıra: Gücü kapat → SD kartı Pi'den çıkar → SD kartı Mac'e tak → Yetkili write/verify/read-back işlemini tamamla → SD kartı Mac'ten güvenli çıkar → SD kartı güçsüz Pi'ye tak → UART capture pre-arm ve exact identity kapısını doğrula → Güç ver. Bu sıra yalnız S124'te tamamlandı; S226'da uygulanmadı.",
"Canlı marker: S226_13_OF_13_MIGRATION_LIFECYCLE_S184_SCHEDULER_EXECUTION_LIVE_CPU0_GATE_S184_NONCOPY_BY_VALUE_OBSERVED_CALLER_CPU_FORWARDED_NO_LITERAL_CPU0_IMPERSONATION_EXACT_S185_TLBI_COMMIT_S225_S224_CPU0_PRODUCER_S187_NONCOPY_HANDOFF_RETURNED_CPU1_CONSUMER_NOT_INVOKED_S223_S222_DOWNSTREAM_NOT_RUNTIME_INVOKED_CROSS_CPU_DELIVERY_NOT_WIRED_NO_REPLACEMENT_NO_RETRY_AARCH64_COMPILED_PRESENT_REQUEST_NOT_OBSERVED_LEGACY_SCHEDULER_ACCESSES_UNCOVERED_WHOLE_SCHEDULER_GIC_HARDWARE_QEMU_PHYSICAL_CPU2_CPU3_HOTPLUG_SOAK_GENERIC_SMP_OPEN_FULL_PHYSICAL_RUNBOOK_VISIBLE_S386_TO_S436_S411_NO_RUNBOOK_EXECUTED_IN_S226_VERIFIED; deployment-specific route/hash evidence is recorded in the project-status manifest.",
],
commands: [
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s184_scheduler_execution -- --test-threads=1",
"cargo check --quiet --manifest-path kernel/Cargo.toml --target aarch64-unknown-none --no-default-features --features board-rpi5",
"cargo check --quiet --manifest-path kernel/Cargo.toml --target aarch64-unknown-none --no-default-features --features board-rpi5,smp",
],
terminalSessions: [
{
id: "s226-g8l-production-migration-lifecycle-s184-scheduler-execution",
title: "G8l S226 migration-lifecycle S184 scheduler-execution boundary",
commandLines: [
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s184_scheduler_execution -- --test-threads=1",
],
outputLines: [
"test result: ok; 13 passed; 0 failed",
"production ABI: live CPU0 consumes non-Copy S184 by value; existing S185 constructor and S225/S224 CPU0 producer reused",
"non-Copy S187 handoff returned; separate CPU1 consumer and S223/S222 downstream are not invoked",
"scheduler mutation, cross-CPU delivery, GIC/SGI, ERET, exact production runtime and physical operation are not invoked",
],
exitCode: 0,
outputMode: "selected",
},
],
terminalSessionsNote:
"Terminal özeti S226 exact S184→S185 source/ABI sınırını ve target CPU0 fail-closed kapısını gösterir; exact production scheduler runtime, QEMU veya fiziksel cihaz çalıştırması değildir.",
limitations: [
"S226 S184→S185→S187 CPU0 production boundary'sini source/ABI ve AArch64 compile olarak bağlar; ayrı CPU1 consumer, S223/S222 downstream ve exact production scheduler execution/runtime iddia edilmez.",
"Production scheduler mutation, whole-scheduler exclusion, GIC/SGI delivery, ERET/context-switch assembly, QEMU present-tuple yolu, fiziksel RPi, CPU2/CPU3, hotplug, soak ve Generic SMP açıktır.",
"S226 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S226=NO.",
],
},snippet sha256: 5942edbdbca0…file sha256: 9726dbf00f84…
Focused test komutu
cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s184_scheduler_execution -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S226-Migration-Lifecycle-S184-Scheduler-Execution-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9