ASELSANMicrokernel
S205 · SOURCE-BOUND GATE EVIDENCE

G8l: real scheduler current-task owner commit adapter

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

S205Focused kod testiOperations id exactsource SHA exacttest target exact

operation: g8l-s205-production-current-task-owner-commit-partial

uygulama/model · focused test · Operations · 3 exact excerpt

sequence-bound=true · implementation-bound=false
01 · Testin bağlı olduğu uygulama/model kodu

Kapının yürüttüğü gerçek kaynak

tam Rust öğesiL12–L105
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_guarded_ack_release_receipt.rs::G8lProductionSchedulerMutationGuardedAckReleaseReceiptError
use crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_exclusion::G8lSchedulerMutationExclusionReleaseReceipt;
use crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_guarded_ack_release::G8lProductionSchedulerMutationGuardedAckRelease;

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum G8lProductionSchedulerMutationGuardedAckReleaseReceiptError {
    InvalidReleaseReceipt,
    RuntimeInputMismatch,
}

#[derive(Debug, PartialEq, Eq)]
pub struct G8lProductionSchedulerMutationGuardedAckReleaseReceipt {
    receipt: G8lSchedulerMutationExclusionReleaseReceipt,
    exact_s204_release_consumed: bool,
}

impl G8lProductionSchedulerMutationGuardedAckReleaseReceipt {
    /// Consume the S204 release boundary and publish its exact audit receipt.
    pub fn from_release(
        runtime: &G8lRuntimeAuthority,
        authority: &G8lSchedulerOwnerAuthority,
        release: G8lProductionSchedulerMutationGuardedAckRelease,
    ) -> Result<Self, G8lProductionSchedulerMutationGuardedAckReleaseReceiptError> {
        if !release.exact_s203_bridge_consumed() || !release.exact_s198_token_released() {
            return Err(
                G8lProductionSchedulerMutationGuardedAckReleaseReceiptError::InvalidReleaseReceipt,
            );
        }
        if runtime.phase() != RuntimePhase::Running1
            || release.runtime_instance_id() != runtime.instance_id()
            || authority.owner_cpu() != CPU1
            || authority.task_id() != runtime.migration_input().task_id
            || authority.epoch() == 0
            || runtime.migration_input().owner_cpu != CPU1
        {
            return Err(
                G8lProductionSchedulerMutationGuardedAckReleaseReceiptError::RuntimeInputMismatch,
            );
        }
        let receipt = release.into_receipt();
        if receipt.token == 0
            || receipt.caller_cpu != CPU1
            || receipt.task_id != authority.task_id()
            || receipt.owner_epoch != authority.epoch()
        {
            return Err(
                G8lProductionSchedulerMutationGuardedAckReleaseReceiptError::InvalidReleaseReceipt,
            );
        }
        Ok(Self {
            receipt,
            exact_s204_release_consumed: true,
        })
    }

    pub const fn token(&self) -> u64 {
        self.receipt.token
    }

    pub const fn task_id(&self) -> u64 {
        self.receipt.task_id
    }

    pub const fn caller_cpu(&self) -> usize {
        self.receipt.caller_cpu
    }

    pub const fn owner_epoch(&self) -> u64 {
        self.receipt.owner_epoch
    }

    pub const fn exact_s204_release_consumed(&self) -> bool {
        self.exact_s204_release_consumed
    }

    pub const fn into_receipt(self) -> G8lSchedulerMutationExclusionReleaseReceipt {
        self.receipt
    }

    pub const fn release_receipt_acknowledged(&self) -> bool {
        true
    }

    pub const fn production_scheduler_mutated(&self) -> bool {
        false
    }

    pub const fn all_scheduler_accesses_covered(&self) -> bool {
        false
    }

    pub const fn hardware_execution_proven(&self) -> bool {
        false
    }
}
snippet sha256: 4c9fe6255c36file sha256: b428f1ea49e3
02 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL158–L171
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_guarded_ack_release_receipt.rs::acknowledgement_revalidates_running1_cpu1_task_and_epoch

#[test]
fn acknowledgement_revalidates_running1_cpu1_task_and_epoch() {
    let (runtime, authority, _, release) = release_boundary();
    assert_eq!(runtime.phase(), RuntimePhase::Running1);
    assert_eq!(authority.owner_cpu(), CPU1);
    assert_eq!(authority.task_id(), TASK);
    assert_eq!(authority.epoch(), OWNER_EPOCH + 1);
    let acknowledgement = G8lProductionSchedulerMutationGuardedAckReleaseReceipt::from_release(
        &runtime, &authority, release,
    )
    .unwrap();
    assert_eq!(acknowledgement.owner_epoch(), authority.epoch());
}
snippet sha256: 29e1441128eefile sha256: 3c1998176457
03 · Kapı kimlik kaydı

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

tam Operations kaydıL21415–L21469
website/src/lib/operations.ts::g8l-s205-production-current-task-owner-commit-partial
  {
    id: "g8l-s205-production-current-task-owner-commit-partial",
    date: "2026-08-25",
    sequence: 205,
    status: "passed",
    umbrella_status: "partial",
    title: "G8l: real scheduler current-task owner commit adapter",
    summary:
      "S205 iki odaklı grupta 25/25 PASS ile S204 release acknowledgement'ını gerçek production Scheduler current-task owner slot'una bağladı. Exact S198 guard ve yerel IRQ maskesi canlıyken Running1 EL0 task, ASID, root, runtime instance, CPU1 owner ve epoch doğrulanıp tek-seferlik owner receipt scheduler-owned state'e commit ediliyor; release/ack hatasında commit IRQ restore'dan önce exact rollback ediliyor. Adapter wired ve AArch64-compiled; production invocation henüz yapılmadı.",
    evidence: [
      "S205 odaklı grupları 25/25 PASS: release-receipt acknowledgement 10/10 ve real Scheduler current-task owner commit 15/15.",
      "Gerçek task::scheduler::SCHEDULER import edilir; scheduler-owned current-task slot'u exact Running1 EL0 task, nonzero ASID, root, runtime instance, CPU1 owner ve epoch kimliğini commit eder.",
      "Missing/non-running/non-EL0 task, task/ASID/root mismatch, foreign runtime/authority ve replay yolları slot'u değiştirmeden fail-closed kalır.",
      "Commit sonrasında typed release veya release acknowledgement reddedilirse exact receipt yerel IRQ'lar hâlâ maskeliyken rollback edilir; IRQ state en son restore edilir.",
      "Odaklı iki grup iki bağımsız koşuda byte-eşit kaldı: 255 B / SHA-256 7bd3daf26f2c4929ce883ed532d0bdb9c44686633729e31e6c689c4cd52393d3.",
      "S155–S205 explicit sequence-ordered matrix iki bağımsız koşuda 52 grup / 483/483 PASS ve 6411 B / SHA-256 ab6a7e7068c1b926a420b288c81d99a83de21b765fc6bf6b47408f633a974207 verdi.",
      "RPi5 AArch64 compile PASS: 526 warning envanterlendi, hata yok; 247961 B / SHA-256 c17e1936788dbc16ac513a2e9411846e8f3e2e2a9f5ac5222c70019f099d7d08. Zero-warning iddiası yoktur.",
      "RPi5 AArch64 smp compile PASS: 526 warning envanterlendi, hata yok; 247903 B / SHA-256 8374ac31baf38266660d4f7b4c734369731b543361cbf21452287aa77ef0b1b6. Zero-warning iddiası yoktur.",
      "Kalıcı kapsam: `docs/M8.1-RPi5-G8l-S205-Production-Current-Task-Owner-Commit-Proof.md`.",
      "S205 fiziksel/device operasyonu yapmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S205=NO.",
      "Görünür 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 tarihsel S124'te tamamlandı; S205'te uygulanmadı.",
      "Canlı marker: S205_25_OF_25_G8L_PRODUCTION_CURRENT_TASK_OWNER_COMMIT_SOURCE_REAL_SCHEDULER_CURRENT_TASK_OWNER_SLOT_EXACT_S203_GUARD_S204_RELEASE_ACK_RUNNING1_EL0_TASK_ASID_ROOT_RUNTIME_CPU1_EPOCH_REVALIDATED_REPLAY_FOREIGN_MISMATCH_NON_MUTATING_RELEASE_ERROR_EXACT_ROLLBACK_BEFORE_IRQ_RESTORE_PRODUCTION_ADAPTER_WIRED_NOT_INVOKED_LEGACY_SCHEDULER_ACCESSES_UNCOVERED_WHOLE_SCHEDULER_GIC_HARDWARE_QEMU_PHYSICAL_CPU2_CPU3_HOTPLUG_SOAK_GENERIC_SMP_OPEN_FULL_PHYSICAL_RUNBOOK_VISIBLE_S365_TO_S415_S390_NO_RUNBOOK_EXECUTED_IN_S205_VERIFIED; deployment-specific route/hash evidence is recorded in the project-status manifest.",
    ],
    commands: [
      "cargo test --quiet --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_guarded_ack_release_receipt -- --test-threads=1",
      "cargo test --quiet --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_current_task -- --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: "s205-g8l-production-current-task-owner-commit",
        title: "G8l S205 real scheduler current-task owner commit",
        commandLines: [
          "cargo test --quiet --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_guarded_ack_release_receipt -- --test-threads=1",
          "cargo test --quiet --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_current_task -- --test-threads=1",
        ],
        outputLines: [
          "release acknowledgement: 10 passed; current-task owner commit: 15 passed",
          "test result: ok; 25 passed; 0 failed",
          "real Scheduler current-task owner slot commit and replay/foreign/mismatch fail-closed paths verified",
          "release error rollback precedes IRQ restore; production invocation/global exclusion/GIC/hardware: not claimed",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
    ],
    terminalSessionsNote:
      "Terminal özeti iki S205 kaynak grubunun real Scheduler current-task owner commit kabulünü gösterir; QEMU veya fiziksel cihaz çalıştırması değildir.",
    limitations: [
      "S205 gerçek Scheduler current-task owner slot'unu host modelde mutate eder ve production adapter'ı bağlar; adapter'ın canlı production invocation'ı henüz yapılmadı.",
      "Legacy static mut SCHEDULER erişimleri aynı S198 primitive'i paylaşmadığından whole-scheduler global exclusion, GIC/SGI ve CPU1 ERET assembly kapsam dışıdır.",
      "S205 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S205=NO.",
    ],
  },
snippet sha256: 54a6052d4e7efile sha256: 9726dbf00f84
Focused test komutu
cargo test --quiet --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_guarded_ack_release_receipt -- --test-threads=1
proof: docs/M8.1-RPi5-G8l-S205-Production-Current-Task-Owner-Commit-Proof.md
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06