ASELSANMicrokernel
S224 · SOURCE-BOUND GATE EVIDENCE

G8l: production migration-lifecycle S186 mapping-retirement receipt

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

S224Focused kod testiOperations id exactsource SHA exacttest target exact

operation: g8l-s224-production-migration-lifecycle-s186-mapping-retirement-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 öğesiL31–L61
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s186_mapping_retirement.rs::publish_runtime_owner_tuple_from_s186_mapping_retirement_receipt

/// Consume one exact S186 mapping-retirement receipt, commit S187 once, and
/// enter S223. Every downstream error is terminal; no replacement or retry is
/// added.
pub fn publish_runtime_owner_tuple_from_s186_mapping_retirement_receipt(
    queue: &mut G8lRuntimeOwnerS197TupleHandoffQueue,
    mut runtime: G8lRuntimeAuthority,
    authority: G8lSchedulerOwnerAuthority,
    mapping_retirement: G8lTargetDispatchMappingRetirementReceipt,
    caller_cpu: usize,
    target_cpu: usize,
    irqs_masked: bool,
) -> Result<(), G8lMigrationLifecycleS186MappingRetirementError> {
    let context_switch = G8lTargetDispatchContextSwitchReceipt::commit_mapping_retirement(
        &mut runtime,
        caller_cpu,
        target_cpu,
        mapping_retirement,
    )
    .map_err(G8lMigrationLifecycleS186MappingRetirementError::ContextSwitch)?;
    publish_runtime_owner_tuple_from_s187_context_switch_receipt(
        queue,
        runtime,
        authority,
        context_switch,
        target_cpu,
        target_cpu,
        irqs_masked,
    )
    .map_err(G8lMigrationLifecycleS186MappingRetirementError::S187)
}
snippet sha256: 9f1caa36eac9file sha256: 116f6032a257
02 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL230–L249
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s186_mapping_retirement.rs::s224_keeps_scheduler_gic_hardware_and_physical_boundaries_closed

#[test]
fn s224_keeps_scheduler_gic_hardware_and_physical_boundaries_closed() {
    let source = include_str!("../../kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s186_mapping_retirement.rs");
    for forbidden in [
        "task::scheduler",
        "SCHEDULER",
        "gic::",
        "send_sgi",
        "runtime.context_switch(",
        "write_ttbr0",
        "eret()",
        "power_on",
    ] {
        assert!(
            !source.contains(forbidden),
            "forbidden S224 marker: {forbidden}"
        );
    }
}
snippet sha256: 203561a012e7file sha256: 501666c89102
03 · Kapı kimlik kaydı

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

tam Operations kaydıL20435–L20487
website/src/lib/operations.ts::g8l-s224-production-migration-lifecycle-s186-mapping-retirement-partial
  {
    id: "g8l-s224-production-migration-lifecycle-s186-mapping-retirement-partial",
    date: "2026-08-25",
    sequence: 224,
    status: "passed",
    umbrella_status: "partial",
    title:
      "G8l: production migration-lifecycle S186 mapping-retirement receipt",
    summary:
      "S224 13/13 PASS ile exact non-Copy S186 MappingRetired→ReadyPublished receipt'in CPU0 producer'da by-value tüketilip S187 ReadyPublished→ContextSwitched handoff'una çevrilmesi ve ayrı CPU1 consumer'dan S223/S222 downstream'e geçmesi source/ABI olarak sabitlendi. Bounded host receipt fail-closed reddedildi; gerçek cross-CPU delivery ve exact production runtime invoke edilmedi.",
    evidence: [
      "S224 focused grubu iki bağımsız koşuda 13/13 PASS: bounded S186 receipt'in exact S187 sınırını geçemediği ve queue'nun boş kaldığı; by-value ABI, S187 constructor revalidation sırası, live CPU0 producer gate, non-Copy S187 handoff, ayrı live CPU1 consumer gate, S223 delegation ve explicit IRQ prerequisite forwarding doğrulandı.",
      "Focused koşular byte-eşit kaldı: 128 B / SHA-256 02983f1a7d644519bfddb0884a6cd0ce69f40c4b845eb54b71ecdc6e19a8ff09.",
      "S206 callsite/readback + S207–S224 dependency matrix frozen S223 prefix'i üzerine 21 grup / 251/251 PASS ve 2664 B / SHA-256 44a75fbde781becc3957ca9e677931de75e8520903878f02f88b341f4e1ce293 verdi; ilk 2536 B exact S223 dependency prefix'idir.",
      "S155–S224 explicit sequence-ordered matrix frozen S223 prefix'i üzerine 73 grup / 734/734 PASS ve 9075 B / SHA-256 904fcf19f86c724630c22c1f4fad99984e70076226f09d49a72d2a4942bea159 verdi; exact S223 8947 B prefix'i korundu.",
      "RPi5 AArch64 compile PASS: 582 warning envanterlendi; 291364 B / SHA-256 4ef38de376b851127e292b9900cd7643b796e886bf34915aed2b8f2865649821. `smp`: 582 warning, 291306 B / SHA-256 199e205958ab16ab92bda3bc8b6ec1e144f88f2e75dfbcd4971dd60b9a922a13. Zero-warning iddiası yoktur.",
      "Kalıcı kapsam: `docs/M8.1-RPi5-G8l-S224-Migration-Lifecycle-S186-Mapping-Retirement-Proof.md`.",
      "S224 target yolu CPU0 producer ve CPU1 consumer olarak ayrıldı: CPU0 S186'yı exact S187 constructor ile tüketip non-Copy handoff üretir; handoff yalnız ayrı CPU1 kimlik kontrolünden sonra S223'e devredilir. CPU1 doğrulayıp literal CPU0 adına mutasyon yapan eski tek-parça wrapper kaldırıldı. Gerçek mailbox/context-switch delivery henüz bağlı değildir.",
      "S224 fiziksel/device operasyonu yapmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S224=NO.",
      "S186→S187 CPU0 producer ve S187→S223 CPU1 consumer AArch64-compiled'dır; aradaki gerçek cross-CPU delivery, boot veya migration runtime callsite'ı invoke edilmedi. Present request, S207 invocation veya scheduler mutation gözlemi iddia edilmez.",
      "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ı; S224'te uygulanmadı.",
      "Canlı marker: S224_13_OF_13_MIGRATION_LIFECYCLE_S186_MAPPING_RETIREMENT_CPU0_PRODUCER_EXACT_S186_NONCOPY_BY_VALUE_S187_NONCOPY_HANDOFF_CPU1_CONSUMER_GATE_S223_S222_S221_S220_S219_S218_S217_S216_S215_S214_S213_S212_DOWNSTREAM_BOUNDED_S186_REJECTED_QUEUE_UNCHANGED_CROSS_CPU_DELIVERY_NOT_WIRED_AARCH64_COMPILED_NOT_RUNTIME_INVOKED_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_S384_TO_S434_S409_NO_RUNBOOK_EXECUTED_IN_S224_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_s186_mapping_retirement -- --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: "s224-g8l-production-migration-lifecycle-s186-mapping-retirement",
        title: "G8l S224 migration-lifecycle S186 mapping-retirement receipt",
        commandLines: [
          "cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s186_mapping_retirement -- --test-threads=1",
        ],
        outputLines: [
          "test result: ok; 13 passed; 0 failed",
          "bounded host S186 receipt: preceding S185 TLBI consumption absent; S187 mutation and queue mutation: absent",
          "production ABI: live CPU0 consumes non-Copy S186; non-Copy S187 handoff; live CPU1 enters S223/S222",
          "cross-CPU handoff delivery and exact production runtime are not invoked",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
    ],
    terminalSessionsNote:
      "Terminal özeti S224 exact S186→S187 source/ABI sınırını, CPU0/CPU1 split handoff'u ve bounded-negative fail-closed davranışı gösterir; gerçek cross-CPU delivery, exact production migration runtime, QEMU veya fiziksel cihaz çalıştırması değildir.",
    limitations: [
      "S224 CPU0 producer/CPU1 consumer kaynakları AArch64-compiled'dır; non-Copy handoff'u iki CPU arasında taşıyan gerçek scheduler mailbox/context-switch delivery bağlı değildir. Exact S186→S187→S223 runtime yürütümü iddia edilmez.",
      "Whole-scheduler exclusion, legacy scheduler erişimleri, GIC/SGI capture, QEMU present-tuple yolu, fiziksel RPi ve Generic SMP açıktır.",
      "S224 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S224=NO.",
    ],
  },
snippet sha256: 89a525b686dafile sha256: 9726dbf00f84
Focused test komutu
cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s186_mapping_retirement -- --test-threads=1
proof: docs/M8.1-RPi5-G8l-S224-Migration-Lifecycle-S186-Mapping-Retirement-Proof.md
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9