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: 4c9fe6255c36…file 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: 29e1441128ee…file 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: 54a6052d4e7e…file sha256: 9726dbf00f84…
Focused test komutu
cargo test --quiet --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_guarded_ack_release_receipt -- --test-threads=1proof: 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: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9