S243 · SOURCE-BOUND GATE EVIDENCE
G8l: S242 authority return + S240 receipt CPU0 deferred join
Operations --test hedefi → test hedefiyle aynı adlı uygulama/model modülü → kaynak kesiti Bu sayfa yalnız S243 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S243Focused kod testiOperations id exactsource SHA exacttest target exact
operation: g8l-s243-production-migration-lifecycle-s242-authority-return-s240-receipt-deferred-consumer-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 öğesiL84–L140
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s242_authority_return_s240_receipt_deferred_consumer.rs::service_s243_deferred_authority_receipt_join
/// Host-testable two-input deferred join.
///
/// Readiness checks happen before either linear input is taken. If only one
/// side is ready, the function is `Idle` and leaves both states untouched. A
/// downstream error after the join is terminal: neither consumed input is
/// reconstructed or retried.
pub fn service_s243_deferred_authority_receipt_join<R, O, P, H, E, Consume>(
s242: &mut G8lS242SenderRuntimeCallsiteState<R, O, P>,
s240: &mut G8lS240SgiDelivery,
output: &mut G8lS243DeferredS187HandoffSlot<H>,
caller_cpu: usize,
consume: Consume,
) -> Result<G8lS243DeferredConsumerOutcome, G8lS243DeferredConsumerError<E, H>>
where
Consume: FnOnce(R, O, G8lS240SgiDeliveryReceipt) -> Result<H, E>,
{
if caller_cpu != S243_SOURCE_CPU0 {
return Err(G8lS243DeferredConsumerError::State(
G8lS243DeferredStateError::WrongCpu,
));
}
if output.pending() {
return Ok(G8lS243DeferredConsumerOutcome::Backpressured);
}
if s242.return_phase() != G8lS242AuthorityReturnPhase::Returned
|| !s242.returned_pending()
|| !s240.receipt_pending()
{
return Ok(G8lS243DeferredConsumerOutcome::Idle);
}
let returned = s242
.take_returned(S242_RETURN_CPU0)
.map_err(G8lS243DeferredConsumerError::S242)?
.ok_or(G8lS243DeferredConsumerError::State(
G8lS243DeferredStateError::MissingAuthorities,
))?;
let receipt = s240
.take_receipt()
.map_err(G8lS243DeferredConsumerError::S240)?;
if receipt.raw_ack() != S240_EXPECTED_RAW_ACK
|| receipt.raw_eoi() != receipt.raw_ack()
|| receipt.command() != S240_EXPECTED_COMMAND
{
return Err(G8lS243DeferredConsumerError::State(
G8lS243DeferredStateError::ReceiptMismatch,
));
}
let (runtime, owner) = returned.into_parts();
let handoff =
consume(runtime, owner, receipt).map_err(G8lS243DeferredConsumerError::Consumer)?;
output
.publish(handoff)
.map_err(G8lS243DeferredConsumerError::OutputOccupied)?;
Ok(G8lS243DeferredConsumerOutcome::Published)
}snippet sha256: 28436194ee41…file sha256: 8c3a3d0bd4e4…
02 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL135–L161
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s242_authority_return_s240_receipt_deferred_consumer.rs::s243_both_inputs_enter_one_consumer_and_publish_one_handoff
#[test]
fn s243_both_inputs_enter_one_consumer_and_publish_one_handoff() {
let mut s242 = returned_authorities();
let mut s240 = delivered_receipt();
let mut output = G8lS243DeferredS187HandoffSlot::new();
let result = service_s243_deferred_authority_receipt_join(
&mut s242,
&mut s240,
&mut output,
S243_SOURCE_CPU0,
|runtime, owner, receipt| {
assert_eq!((runtime, owner), (11, 13));
assert_eq!(receipt.raw_ack(), S240_EXPECTED_RAW_ACK);
assert_eq!(receipt.raw_eoi(), S240_EXPECTED_RAW_ACK);
assert_eq!(receipt.command(), S240_EXPECTED_COMMAND);
Ok::<u64, ()>(23)
},
);
assert!(matches!(
result,
Ok(G8lS243DeferredConsumerOutcome::Published)
));
assert!(!s242.returned_pending());
assert_eq!(s240.phase(), G8lS240SgiDeliveryPhase::Consumed);
assert!(output.pending());
}snippet sha256: 38d6f687eade…file sha256: 31f3dd73a3f7…
03 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL19462–L19512
website/src/lib/operations.ts::g8l-s243-production-migration-lifecycle-s242-authority-return-s240-receipt-deferred-consumer-partial
{
id: "g8l-s243-production-migration-lifecycle-s242-authority-return-s240-receipt-deferred-consumer-partial",
date: "2026-08-25",
sequence: 243,
status: "passed",
umbrella_status: "partial",
title: "G8l: S242 authority return + S240 receipt CPU0 deferred join",
summary:
"S243 15/15 PASS ile S242'nin CPU0 authority-return çiftini ve S240 post-EOI delivery receipt'ini iki-girdi deferred join sınırında birleştirip mevcut S240→S236 tüketimine tek sefer soktu; sonuç non-Copy S187 handoff olarak bounded CPU1 hedefli slota alındı. İki readiness probe non-consuming'dir; yalnız tek girdi hazırsa Idle, output doluysa Backpressured kalır. Upstream S242 request producer ve whole-scheduler exclusion kanıtı olmadığı için güvenli runtime execution, scheduler mutation, ERET veya hardware wake kabulü iddia edilmez.",
evidence: [
"S243 focused host grubu iki bağımsız koşuda 15/15 PASS verdi: canonical test-result satırları 95 B / SHA-256 c123c565490f7adc565c4e0f2d66a6a0308286bdd091b548222390e18384f97b.",
"S238 + S239 + S240 receipt/SGI + S241 + S242 + S243 dependency matrisi 7 grup / 128/128 PASS verdi; canonical result summary 665 B / SHA-256 3031eb67f8cd45d18f9317ad078bf23ab17884d2ce8deb8632ea73ffa5c8e83b ve iki bağımsız koşuda byte-equal.",
"RPi5 AArch64 normal/SMP compile PASS: normal 331470 B / SHA-256 3b86f1d1cf3dc4f9fb51e791110680ad5e2a1096f8a0fd9bfe9f75bab8c946f1, SMP 331412 B / SHA-256 6e10c82e6075c6807213b4156bde9090490790e69a3c3b49d394a64cea3dd8f1; 623 warning başlığı ve derleyicinin bildirdiği 623 kernel warning envanterlendi, zero-warning iddiası yoktur.",
"Exact kaynak sırası: CPU0 gate + output backpressure probe → S242 returned authority pair ve S240 post-EOI receipt non-consuming readiness probe'ları → iki lineer input'un exact take edilmesi → raw ACK/EOI/command doğrulaması → S240 deferred S236 source call → non-Copy S187 handoff publish. CPU1 output take source-wired'dır ancak çalıştırılmaz.",
"Tam workspace'in yedi tarihsel G8h assertion'ı isim isim değiştirilmeden dışlandığında taze audit 205 grup / 1860 PASS / 0 fail / 7 filtered verdi: log 54166 B / SHA-256 580e3f20bb7e8e4de81f52fe3dcdc51f4a2cc6668b41fc73a18b0a610d67fb3a. Filtresiz koşu ilk frozen S96 identity kapısında exit 101 verdi; full-workspace GREEN iddia edilmez.",
"S243 physical/device operations=0; RUNBOOK_EXECUTED_IN_S243=NO. Tarihsel S124 physical BOOT8H PASS ve tam operatör sırası korunur.",
"Canlı marker: S243_15_OF_15_S242_RUNTIME_OWNER_RETURN_S240_POST_EOI_RECEIPT_TWO_INPUT_NONCONSUMING_READINESS_BOTH_READY_EXACT_ONCE_JOIN_CPU0_TIMER_IRQ_AFTER_EOI_S236_SOURCE_CALL_S187_NONCOPY_BOUNDED_OUTPUT_CPU1_EXTRACTOR_SOURCE_WIRED_NOT_INVOKED_SINGLE_INPUT_IDLE_OUTPUT_BACKPRESSURE_NO_UPSTREAM_REQUEST_REQUEST_NOT_OBSERVED_NO_GLOBAL_SCHEDULER_EXCLUSION_PROOF_NO_SAFE_RUNTIME_EXECUTION_CLAIM_NO_HARDWARE_WAKE_OBSERVED_AARCH64_NORMAL_SMP_COMPILED_WORKSPACE_1860_PASS_7_HISTORICAL_G8H_ASSERTIONS_RED_PHYSICAL_QEMU_CPU2_CPU3_HOTPLUG_SOAK_GENERIC_SMP_OPEN_FULL_PHYSICAL_RUNBOOK_VISIBLE_S403_TO_S453_S428_NO_RUNBOOK_EXECUTED_IN_S243_VERIFIED.",
],
commands: [
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s242_authority_return_s240_receipt_deferred_consumer -- --test-threads=1",
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_request --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_descriptor --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_dispatch_receipt --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_sgi_delivery --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_sgi_sender_runtime_callsite --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_sgi_sender_runtime_callsite_request --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s242_authority_return_s240_receipt_deferred_consumer -- --test-threads=1",
"cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5",
"cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5,smp",
],
terminalSessions: [
{
id: "s243-g8l-s242-authority-return-s240-receipt-deferred-join",
title: "G8l S243 S242 authority return + S240 receipt deferred join",
commandLines: [
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s242_authority_return_s240_receipt_deferred_consumer -- --test-threads=1",
],
outputLines: [
"test result: ok; S243 focused 1 group / 15 passed; 0 failed",
"S242 returned authorities + S240 post-EOI receipt → CPU0 two-input deferred join → S240/S236 consume once",
"non-Copy S187 handoff is retained in a bounded CPU1-targeted slot; CPU1 take and ERET remain unobserved",
],
exitCode: 0,
outputMode: "selected",
},
],
terminalSessionsNote:
"S243 terminal özeti CPU0 deferred join ve S187 handoff retention sınırını doğrular; CPU1 delivery, ERET veya fiziksel wake/hardware kanıtı değildir.",
limitations: [
"S243 S242 authority-return ile S240 receipt readiness probe'larını CPU0 timer-IRQ deferred callsite'ında source-wired eder; iki input hazır değilse linear değerler alınmaz.",
"S240 deferred S236 consumer bir kez çağrılır ve S187 handoff CPU1 hedefli bounded slota alınır; CPU1 take, downstream S224/S223, scheduler mutation, ERET/context-switch ve present tuple açık kalır.",
"S236 unsafe sözleşmesinin whole-scheduler exclusion, authority-lifetime ve TTBR0-root precondition'ları S243 tarafından ayrıca kanıtlanmaz; güvenli runtime execution iddia edilmez.",
"Upstream S242 request producer olmadığı için production request veya hardware wake gözlenmemiştir.",
"QEMU RPi5 GICv2 SGI MMIO yolunu doğrulamaz; fiziksel RPi, CPU2/CPU3, hotplug, soak ve Generic SMP açıktır.",
"S243 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S243=NO.",
],
},snippet sha256: 12402e1688b9…file sha256: 9726dbf00f84…
Focused test komutu
cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s242_authority_return_s240_receipt_deferred_consumer -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S243-Migration-Lifecycle-S242-Authority-Return-S240-Receipt-Deferred-Consumer-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06