ASELSANMicrokernel
S225 · SOURCE-BOUND GATE EVIDENCE

G8l: production migration-lifecycle S185 TLBI-completion receipt

Operations --test hedefi → test hedefiyle aynı adlı uygulama/model modülü → kaynak kesiti Bu sayfa yalnız S225 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.

S225Focused kod testiOperations id exactsource SHA exacttest target exact

operation: g8l-s225-production-migration-lifecycle-s185-tlbi-completion-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 öğesiL29–L58
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s185_tlbi_completion.rs::publish_runtime_owner_tuple_from_s185_tlbi_completion_receipt

/// Consume one exact S185 TLBI-completion receipt, commit S186 once, and
/// enter S224. Every downstream error is terminal; no replacement or retry is
/// added.
pub fn publish_runtime_owner_tuple_from_s185_tlbi_completion_receipt(
    queue: &mut G8lRuntimeOwnerS197TupleHandoffQueue,
    mut runtime: G8lRuntimeAuthority,
    authority: G8lSchedulerOwnerAuthority,
    tlbi_commit: G8lTargetDispatchTlbiCommitReceipt,
    caller_cpu: usize,
    target_cpu: usize,
    irqs_masked: bool,
) -> Result<(), G8lMigrationLifecycleS185TlbiCompletionError> {
    let mapping_retirement = G8lTargetDispatchMappingRetirementReceipt::commit_tlbi_receipt(
        &mut runtime,
        caller_cpu,
        tlbi_commit,
    )
    .map_err(G8lMigrationLifecycleS185TlbiCompletionError::MappingRetirement)?;
    publish_runtime_owner_tuple_from_s186_mapping_retirement_receipt(
        queue,
        runtime,
        authority,
        mapping_retirement,
        caller_cpu,
        target_cpu,
        irqs_masked,
    )
    .map_err(G8lMigrationLifecycleS185TlbiCompletionError::S186)
}
snippet sha256: ce8532e1fc54file sha256: f511668540b6
02 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL194–L213
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s185_tlbi_completion.rs::s225_keeps_scheduler_gic_hardware_and_physical_boundaries_closed

#[test]
fn s225_keeps_scheduler_gic_hardware_and_physical_boundaries_closed() {
    let source = include_str!("../../kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s185_tlbi_completion.rs");
    for forbidden in [
        "task::scheduler",
        "SCHEDULER",
        "gic::",
        "send_sgi",
        "runtime.context_switch(",
        "write_ttbr0",
        "eret()",
        "power_on",
    ] {
        assert!(
            !source.contains(forbidden),
            "forbidden S225 marker: {forbidden}"
        );
    }
}
snippet sha256: 0a6076ca2dc5file sha256: 01ed0ccd2fe8
03 · Kapı kimlik kaydı

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

tam Operations kaydıL20383–L20434
website/src/lib/operations.ts::g8l-s225-production-migration-lifecycle-s185-tlbi-completion-partial
  {
    id: "g8l-s225-production-migration-lifecycle-s185-tlbi-completion-partial",
    date: "2026-08-25",
    sequence: 225,
    status: "passed",
    umbrella_status: "partial",
    title: "G8l: production migration-lifecycle S185 TLBI-completion receipt",
    summary:
      "S225 13/13 PASS ile live CPU0'ın exact non-Copy S185 TLBI-completion receipt'ini by-value tüketmesi, S186 mapping-retirement commit'ini yapması ve S224 CPU0 producer üzerinden non-Copy S187 handoff döndürmesi source/ABI olarak sabitlendi. Ayrı CPU1 consumer invoke edilmedi. Bounded host receipt, önceki S184 scheduler execution tüketilmediği için S186 ve queue mutasyonundan önce fail-closed reddedildi; exact production runtime ve gerçek cross-CPU delivery bağlı değildir.",
    evidence: [
      "S225 focused grubu iki bağımsız koşuda 13/13 PASS: bounded S185 TLBI receipt'in S186 sınırını geçemediği ve queue'nun boş kaldığı; non-Copy by-value tüketim, S185→S186 commit sırası, S224 handoff reuse, CPU0 gate ve explicit downstream prerequisite forwarding doğrulandı.",
      "Focused koşular byte-eşit kaldı: 128 B / SHA-256 02983f1a7d644519bfddb0884a6cd0ce69f40c4b845eb54b71ecdc6e19a8ff09.",
      "S206 callsite/readback + S207–S225 dependency matrix frozen S224 prefix'i üzerine 22 grup / 264/264 PASS ve 2792 B / SHA-256 7a92b0af9ca5de9004d8678e3aa8a44485a7dc073b2ba49fa830f66ce2d33d69 verdi; ilk 2664 B exact S224 dependency prefix'idir.",
      "S155–S225 explicit sequence-ordered matrix frozen S224 prefix'i üzerine 74 grup / 747/747 PASS ve 9203 B / SHA-256 c98a3e55582c06ec029459b97a4137cd5481624d33d269e7b12528cc4eda876d verdi; exact S224 9075 B prefix'i korundu.",
      "RPi5 AArch64 compile PASS: 586 warning envanterlendi; 292888 B / SHA-256 26f51665a71f2beb44a5df0c93d67965cd7029cecb3db329c3e23c06a4a36bab. `smp`: 586 warning, 292830 B / SHA-256 a7d59f6fb316637096a8878cd010a14cde59f301e8b01ddb023e8b59d6f209d0. Zero-warning iddiası yoktur.",
      "Kalıcı kapsam: `docs/M8.1-RPi5-G8l-S225-Migration-Lifecycle-S185-TLBI-Completion-Proof.md`.",
      "S225 host adapter exact S185 TLBI receipt'i by-value tüketir, S186 mapping-retirement commit'ini bir kez yapar ve S224 source sınırına devreder. Target adapter live CPU0'ı S185 tüketiminden önce doğrular, literal CPU0 adına mutasyon yapmaz ve yalnız non-Copy S187 handoff döndürür; ayrı CPU1 consumer, gerçek cross-CPU delivery, boot ve migration runtime callsite'ı invoke edilmedi.",
      "S225 bounded host receipt'i önceki S184 scheduler execution tüketilmediği için fail-closed reddedildi; S186, S187 ve queue mutation gözlenmedi. Replacement/retry yoktur.",
      "S225 fiziksel/device operasyonu yapmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S225=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ı; S225'te uygulanmadı.",
      "Canlı marker: S225_13_OF_13_MIGRATION_LIFECYCLE_S185_TLBI_COMPLETION_LIVE_CPU0_GATE_S185_NONCOPY_BY_VALUE_NO_LITERAL_CPU0_IMPERSONATION_EXACT_S186_MAPPING_RETIREMENT_S224_CPU0_PRODUCER_S187_NONCOPY_HANDOFF_RETURNED_CPU1_CONSUMER_NOT_INVOKED_CROSS_CPU_DELIVERY_NOT_WIRED_S223_S222_S221_S220_S219_S218_S217_S216_S215_S214_S213_S212_DOWNSTREAM_NOT_RUNTIME_INVOKED_BOUNDED_S185_REJECTED_S186_S187_QUEUE_UNCHANGED_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_S385_TO_S435_S410_NO_RUNBOOK_EXECUTED_IN_S225_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_s185_tlbi_completion -- --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: "s225-g8l-production-migration-lifecycle-s185-tlbi-completion",
        title: "G8l S225 migration-lifecycle S185 TLBI-completion receipt",
        commandLines: [
          "cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s185_tlbi_completion -- --test-threads=1",
        ],
        outputLines: [
          "test result: ok; 13 passed; 0 failed",
          "bounded host S185 TLBI receipt: preceding S184 scheduler execution absent; S186 and queue mutation: absent",
          "production ABI: live CPU0 consumes non-Copy S185 by value; exact S186 commit; S224 CPU0 producer returns non-Copy S187 handoff",
          "CPU1 consumer, exact production migration runtime, cross-CPU delivery, and physical operation are not invoked",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
    ],
    terminalSessionsNote:
      "Terminal özeti S225 exact S185→S186 source/ABI sınırını ve bounded-negative fail-closed davranışı gösterir; exact production migration runtime, QEMU veya fiziksel cihaz çalıştırması değildir.",
    limitations: [
      "S225 exact S185 receipt'i source/ABI olarak live CPU0'da by-value tüketir ve non-Copy S187 handoff'a kadar ilerler; ayrı CPU1 consumer ve aradaki gerçek delivery invoke edilmediği için bounded-negative reddi dışında exact S185→CPU1 runtime yürütümü iddia edilmez.",
      "Whole-scheduler exclusion, legacy scheduler erişimleri, GIC/SGI capture, QEMU present-tuple yolu, fiziksel RPi, CPU2/CPU3, hotplug, soak ve Generic SMP açıktır.",
      "S225 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S225=NO.",
    ],
  },
snippet sha256: d727a466f194file sha256: 9726dbf00f84
Focused test komutu
cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s185_tlbi_completion -- --test-threads=1
proof: docs/M8.1-RPi5-G8l-S225-Migration-Lifecycle-S185-TLBI-Completion-Proof.md
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06