S240 · SOURCE-BOUND GATE EVIDENCE
G8l: CPU1→CPU0 SGI2 notification delivery ve exact IRQ/EOI receipt
Operations --test hedefi → simulation public mod g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_descriptor bağı → kaynak kesiti Bu sayfa yalnız S240 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S240Focused kod testiOperations id exactsource SHA exacttest target exact
operation: g8l-s240-production-migration-lifecycle-s179-execution-caller-notification-sgi2-delivery-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 öğesiL102–L132
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_descriptor.rs::consume_s179_execution_caller_notification_delivery_descriptor_on_cpu0
/// Convert the S238 request into one CPU0 descriptor and consume it.
///
/// No GIC register, SGI/IPI, wake, scheduler, or ERET operation is performed.
#[cfg(all(target_arch = "aarch64", target_os = "none"))]
pub unsafe fn consume_s179_execution_caller_notification_delivery_descriptor_on_cpu0(
request: G8lS179ExecutionCallerNotificationDeliveryRequest,
) -> Result<
G8lS179ExecutionCallerNotificationDeliveryDescriptor,
G8lProductionS179ExecutionCallerNotificationDeliveryDescriptorError,
> {
use crate::g8l_runtime_contract::CPU0;
if crate::percpu::try_current_cpu_id() != Some(CPU0) {
return Err(
G8lS179ExecutionCallerNotificationDeliveryDescriptorPrepareError::WrongTargetCpu,
);
}
let mut descriptor =
G8lS179ExecutionCallerNotificationDeliveryDescriptor::from_consumed_request(
request,
S179_TYPED_DELIVERY_TARGET_CPU0,
S179_TYPED_DELIVERY_CHANNEL,
)?;
descriptor.consume().map_err(|error| match error {
G8lS179ExecutionCallerNotificationDeliveryDescriptorConsumeError::AlreadyConsumed => {
G8lS179ExecutionCallerNotificationDeliveryDescriptorPrepareError::RequestNotConsumed
}
})?;
Ok(descriptor)
}snippet sha256: 712895d8680d…file sha256: cdf9899a2ec7…
02 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL196–L207
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_dispatch_receipt.rs::s239_descriptor_is_consumed_before_s240_receipt
#[test]
fn s239_descriptor_is_consumed_before_s240_receipt() {
let source = include_str!("../../kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_descriptor.rs");
let start = source
.find(
"pub unsafe fn consume_s179_execution_caller_notification_delivery_descriptor_on_cpu0",
)
.unwrap();
let body = &source[start..];
assert!(body.find("descriptor.consume()").unwrap() < body.find("Ok(descriptor)").unwrap());
}snippet sha256: 0c7e82ab22d0…file sha256: 5b313fe34fe6…
03 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL19612–L19662
website/src/lib/operations.ts::g8l-s240-production-migration-lifecycle-s179-execution-caller-notification-sgi2-delivery-partial
{
id: "g8l-s240-production-migration-lifecycle-s179-execution-caller-notification-sgi2-delivery-partial",
date: "2026-08-25",
sequence: 240,
status: "passed",
umbrella_status: "partial",
title: "G8l: CPU1→CPU0 SGI2 notification delivery ve exact IRQ/EOI receipt",
summary:
"S240 41/41 PASS ile S239/internal dispatch zincirini production source-wired CPU1→CPU0 SGI2 yoluna bağladı: CPU0 receiver boot'ta IRQ açılmadan hazırlanır; CPU1 sender S237 publish/arm sonrasında exact SGIR 0x00010002 yazar; CPU0 interceptor raw IAR 0x402'yi doğrulayıp aynı değeri EOI'ye bir kez taşır ve deferred S236 giriş makbuzunu yayımlar. Sender'ı çağıran production runtime callsite henüz yoktur; request, CPU0 wake, hardware delivery, scheduler mutation ve ERET gözlenmedi.",
evidence: [
"S240 dispatch-receipt + SGI2 focused matrisi iki bağımsız byte-equal koşuda 2 grup / 41/41 PASS verdi: 189 B / SHA-256 078577c66615dae0a4b036e5bab97f151a56fc2e53a850a460505c5b38bb98a1.",
"S238 request + S239 descriptor + S240 internal dispatch receipt + S240 SGI2 delivery matrisi iki bağımsız koşuda 4 grup / 74/74 PASS verdi: 379 B / SHA-256 00991b2ae5bd0c39ea8cbd76ad8b1393592fd6fd8f915e02c4c65763ef531096.",
"RPi5 AArch64 normal ve SMP compile iki canonical-byte-equal koşuda PASS: ikisi de 657 warning; normal 323585 B / SHA-256 e4dab250aa07e86ef16294d966a7c20f8b809972f18db3ae2d3cd2bc14fbd849, SMP 323527 B / SHA-256 5125d3851aaa19beb1c9b55539c9ccd9a91d74e03ac91f15e3d0644a13c1213b. Zero-warning iddiası yoktur.",
"Taze full-workspace: 155 tam yeşil grup / 1551 test + kırmızı grupta 8 PASS; yalnız frozen S96 exceptions.S identity assertion kırmızıdır (observed f7b476…04fd, expected c0eed3…cb89). Tam-workspace GREEN iddia edilmez.",
"Exact kaynak sırası: CPU0 receiver pre-IRQ → CPU1 S237 publish/arm → SGI2 SGIR 0x00010002 → CPU0 raw IAR 0x402 → S238/S239/internal dispatch consume → raw-IAR EOI once → linear receipt → caller-authority deferred S236. Retry/reset/replacement yoktur.",
"Kalıcı kapsam: docs/M8.1-RPi5-G8l-S240-Migration-Lifecycle-S179-Execution-Caller-Notification-Delivery-Dispatch-Receipt-Proof.md.",
"S240 fiziksel/device operasyonu yapmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S240=NO.",
"Canlı marker: S240_41_OF_41_CPU1_TO_CPU0_SGI2_SOURCE_WIRED_INTID2_TARGET_LIST_0X01_SGIR_0X00010002_RAW_IAR_0X402_EXACT_EOI_ONCE_S238_S239_INTERNAL_DISPATCH_RECEIPT_CONSUMED_NONCOPY_NONCLONE_DEFERRED_S236_WIRED_SENDER_RUNTIME_CALLSITE_NOT_WIRED_REQUEST_WAKE_HARDWARE_NOT_OBSERVED_AARCH64_NORMAL_SMP_COMPILED_FULL_WORKSPACE_ONLY_FROZEN_S96_RED_PHYSICAL_QEMU_CPU2_CPU3_HOTPLUG_SOAK_GENERIC_SMP_OPEN_FULL_PHYSICAL_RUNBOOK_VISIBLE_S400_TO_S450_S425_NO_RUNBOOK_EXECUTED_IN_S240_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_s179_execution_caller_notification_delivery_dispatch_receipt -- --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_sgi_delivery -- --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: "s240-g8l-production-migration-lifecycle-s179-execution-caller-notification-sgi2-delivery",
title: "G8l S240 CPU1→CPU0 SGI2 ve exact IRQ/EOI receipt",
commandLines: [
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_dispatch_receipt -- --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_sgi_delivery -- --test-threads=1",
],
outputLines: [
"test result: ok; S240 focused 2 groups / 41 passed; 0 failed",
"CPU1→CPU0 SGI2: INTID=2 TARGET_LIST=0x01 SGIR=0x00010002 RAW_IAR=0x402 RAW_EOI=0x402",
"receiver + sender function + IRQ interceptor + deferred S236 source-wired; sender runtime callsite and hardware observation remain open",
],
exitCode: 0,
outputMode: "selected",
},
],
terminalSessionsNote:
"Terminal özeti S240'ın real RPi5 GICv2 SGI2 kaynak yolunu derlediğini ve fail-closed modelini doğruladığını gösterir; production sender callsite veya donanımda gözlenmiş interrupt/wake kanıtı değildir.",
limitations: [
"CPU0 receiver boot callsite'ı, CPU1 sender fonksiyonunun real SGIR write'ı ve CPU0 IRQ interceptor'ı bağlıdır; sender'ı çağıran runtime callsite yoktur ve request/wake/hardware delivery gözlenmemiştir.",
"Runtime ve scheduler-owner authority IRQ'dan taşınmaz; deferred S236 girişi bağlı fakat runtime'da çağrılmamıştır. Scheduler mutation, ERET/context-switch ve present tuple açıktır.",
"QEMU RPi5 GICv2 SGI MMIO yolunu doğrulamaz; fiziksel RPi, CPU2/CPU3, hotplug, soak ve Generic SMP açıktır.",
"S240 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S240=NO.",
],
},snippet sha256: 0a9369578267…file sha256: 9726dbf00f84…
Focused test komutu
cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_dispatch_receipt -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S240-Migration-Lifecycle-S179-Execution-Caller-Notification-Delivery-Dispatch-Receipt-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06