S260 · SOURCE-BOUND GATE EVIDENCE
G8l: task-lifecycle notification-grant scan read-access guard genişletmesi
Operations --test hedefi → test hedefiyle aynı adlı uygulama/model modülü → kaynak kesiti Bu sayfa yalnız S260 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S260Focused kod testiOperations id exactsource SHA exacttest target exact
operation: g8l-s260-task-lifecycle-notification-grant-scan-read-access-guard-expansion-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 öğesiL57–L121
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s259_task_lifecycle_notification_grant_read_access_guard_expansion.rs::preflight_s260_whole_scheduler_read_coverage
pub fn preflight_s260_whole_scheduler_read_coverage(
caller_cpu: usize,
request: Option<G8lS245WholeSchedulerExclusionAdmissionRequestView>,
) -> Result<
G8lS260WholeSchedulerReadCoveragePreflightOutcome,
G8lS260WholeSchedulerReadCoveragePreflightError,
> {
match preflight_s259_whole_scheduler_read_coverage(caller_cpu, request)
.map_err(G8lS260WholeSchedulerReadCoveragePreflightError::S259)?
{
G8lS259WholeSchedulerReadCoveragePreflightOutcome::Idle => {
return Ok(G8lS260WholeSchedulerReadCoveragePreflightOutcome::Idle);
}
G8lS259WholeSchedulerReadCoveragePreflightOutcome::AwaitingCoverage {
guarded_sites,
unrouted_sites,
..
} if guarded_sites == S259_WHOLE_SCHEDULER_GUARDED_SITES
&& unrouted_sites
== S246_DIRECT_SCHEDULER_ACCESS_SITES - S259_WHOLE_SCHEDULER_GUARDED_SITES => {}
G8lS259WholeSchedulerReadCoveragePreflightOutcome::AwaitingCoverage {
guarded_sites,
unrouted_sites,
..
} => {
return Err(
G8lS260WholeSchedulerReadCoveragePreflightError::PriorCoverageDrift {
guarded_sites,
unrouted_sites,
},
);
}
}
let outcome = preflight_s246_whole_scheduler_exclusion_provider(
caller_cpu,
request,
G8lS246WholeSchedulerCoverageAudit::new(
S246_SOURCE_AUDIT_UNITS,
S246_DIRECT_SCHEDULER_ACCESS_SITES,
S260_WHOLE_SCHEDULER_GUARDED_SITES,
),
)
.map_err(G8lS260WholeSchedulerReadCoveragePreflightError::S246)?;
match outcome {
G8lS246WholeSchedulerProviderPreflightOutcome::Idle => {
Ok(G8lS260WholeSchedulerReadCoveragePreflightOutcome::Idle)
}
G8lS246WholeSchedulerProviderPreflightOutcome::AwaitingCoverage {
request_id,
guarded_sites,
unrouted_sites,
} => Ok(
G8lS260WholeSchedulerReadCoveragePreflightOutcome::AwaitingCoverage {
request_id,
guarded_sites,
unrouted_sites,
},
),
G8lS246WholeSchedulerProviderPreflightOutcome::CoverageCompleteAwaitingProvider {
..
} => Err(G8lS260WholeSchedulerReadCoveragePreflightError::UnexpectedCoverageComplete),
}
}snippet sha256: 702a7c052f8d…file sha256: b77e1de93cda…
02 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL47–L53
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s259_task_lifecycle_notification_grant_read_access_guard_expansion.rs::s260_coverage_adds_exactly_one_read_and_keeps_84_open
#[test]
fn s260_coverage_adds_exactly_one_read_and_keeps_84_open() {
assert_eq!(S260_ADDITIONAL_WHOLE_SCHEDULER_READ_SITES, 1);
assert_eq!(S260_WHOLE_SCHEDULER_GUARDED_SITES, 27);
assert_eq!(S260_WHOLE_SCHEDULER_UNROUTED_SITES, 84);
}snippet sha256: 29d41623ac3c…file sha256: aeed8eee9b12…
03 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL18537–L18595
website/src/lib/operations.ts::g8l-s260-task-lifecycle-notification-grant-scan-read-access-guard-expansion-partial
{
id: "g8l-s260-task-lifecycle-notification-grant-scan-read-access-guard-expansion-partial",
date: "2026-08-25",
sequence: 260,
status: "passed",
umbrella_status: "partial",
title:
"G8l: task-lifecycle notification-grant scan read-access guard genişletmesi",
summary:
"S260 12/12 PASS ile S259 production reader gate'ini teardown_task_ipc_lifecycle içindeki türetilmiş notification grant taramasına taşıdı. Tarama owned Option<(CapId, Capability)> Copy sonucu üretir; reader mevcut local-IRQ ve IPC transaction sınırı içinde alınır, deadline/notification mutasyonu, mutable scheduler erişimi, exact CNode revoke veya sonraki loop iterasyonundan önce explicit düşer. Coverage 26/111'den 27/111'e ilerledi; 84 site unrouted kalır. Context-switch old-ASID ve &'static CNode döndüren erişimler kasıtlı olarak kapsanmadı; production exclusive wrapper yoktur.",
evidence: [
"S260 focused host grubu final kernel kaynağı üzerinde iki bağımsız koşuda 12/12 PASS verdi: canonical test-result 95 B / SHA-256 389476e79dd3130b13a71544c10d6a520cb4a9f947518e73638607c39ef8081c.",
"Exact source coverage: S259 guarded=26/111 başlangıcı yeniden doğrulandı; task-lifecycle derived notification grant scan tek common reader membership altına alındı. Yeni toplam guarded=27/111, unrouted=84; additional immutable=1, mutating-while-reader-live=0.",
"Route Option<(CapId, Capability)> owned Copy sonucudur. Mevcut task-lifecycle IrqGuard ve IPC_TRANSACTION_LOCK korunur; S260 reader deadline/notification state mutasyonu, mutable scheduler alias, exact CNode revoke ve sonraki loop iterasyonundan önce düşer. Scheduler referansı kaçmaz.",
"S238'den S260'a exact sıra-düzenli dependency matrisi 24 grup / 329/329 PASS verdi. Ham summary iki bağımsız koşuda byte-equal 2280 B / SHA-256 23e786d378acd06b3711be89735d894245178a23cce1a19d69594c62884e849f; süre-normalize summary 2400 B / SHA-256 270b0aa945c46eb06f41890a2efac2c6617e7668c380d081469e68d80df13b3e oldu. S240 receipt ve SGI gruplarının ikisi de dahildir.",
"RPi5 AArch64 normal/SMP profilleri ikişer koşuda byte-equal PASS verdi. Normal: 358843 B / 697 warning başlığı / SHA-256 c90f0f24721f92d348cfe86547ef09df4344571b23e45c5d988c8989c641c4ec. SMP: 358785 B / 697 warning başlığı / SHA-256 dd0b7b23e8dad3109bfebcf1cfe403219fd97db2c4877ca194c0f01ed2a17f96. Zero-warning iddiası yoktur.",
"Exact production sırası: CPU1 timer IRQ → GIC EOI → S246 request preflight → S247 → S248 → S249 → S250 → S251 → S252 → S253 → S254 → S255 → S256 → S257 → S258 → S259 → S260 27/111 coverage preflight → S242 service → scheduler dispatch. Exact S245 request yalnız non-consuming metadata view ile incelenir, alınmaz ve pending kalır.",
"Context-switch old-ASID okuması canlı mutable scheduler alias'ları nedeniyle, current_task_cnode ise &'static referans kaçırdığı için S260'a alınmadı. Bu erişimler 84 unrouted site içinde ayrı kabul tasarımını bekler.",
"Manifest-aware birleşik workspace audit'i iki bağımsız koşuda 222 grup / 2079/2079 PASS, 0 fail ve exact 7 tarihsel G8h assertion filtered verdi. Süre-normalize test-result özeti byte-equal 22082 B / SHA-256 45c9ba18e69b1baf089a5913dcddc751b240ca7b370984e19753027f9d8ff874'tür. Filtresiz koşu 51687 B / SHA-256 628d898443cac8467fe8f0129d7e07cf908b099aab029b7a3a82212ca8478c57 ile exit 101 verdi; ilk hata frozen S96 exceptions.S actual f7b476…04fd / expected c0eed3…cb89 uyuşmazlığıdır. Beklentiler gevşetilmedi ve full-workspace GREEN iddia edilmez.",
"S260 physical/device operations=0; RUNBOOK_EXECUTED_IN_S260=NO. Tarihsel S124 physical BOOT8H PASS ve tam operatör sırası görünür biçimde korunur.",
"Canlı marker: S260_12_OF_12_TASK_LIFECYCLE_NOTIFICATION_GRANT_SCAN_READ_ACCESS_GUARD_EXPANSION_ONE_ADDITIONAL_COPY_RETURNING_IMMUTABLE_LOCAL_IRQ_AND_IPC_TRANSACTION_GUARDED_SCHEDULER_ACCESS_OPTION_CAPID_CAPABILITY_READER_DROPPED_BEFORE_DEADLINE_NOTIFICATION_MUTATION_MUTABLE_SCHEDULER_EXACT_CNODE_REVOKE_OR_NEXT_LOOP_TOTAL_27_OF_111_GUARDED_84_UNROUTED_NO_SCHEDULER_REFERENCE_ESCAPE_CONTEXT_SWITCH_OLD_ASID_AND_REFERENCE_RETURNING_CURRENT_TASK_CNODE_NOT_ROUTED_NO_CONTEXT_SWITCH_CAPABLE_OR_MUTATING_SITE_GUARDED_WHILE_READER_LIVE_RPI5_RUNTIME_NOT_INVOKED_PRODUCTION_EXCLUSIVE_WRAPPER_ABSENT_S245_REQUEST_INSPECTED_NONCONSUMING_NOT_TAKEN_REMAINS_PENDING_AWAITING_COVERAGE_NO_PROVIDER_AUTHORITY_NO_EXCLUSION_PROOF_NO_S244_ADMISSION_NO_S243_S236_INVOCATION_NO_SGI_NO_SAFE_RUNTIME_EXECUTION_CLAIM_AARCH64_NORMAL_SMP_COMPILED_WORKSPACE_2079_PASS_7_HISTORICAL_G8H_ASSERTIONS_RED_PHYSICAL_QEMU_CPU2_CPU3_HOTPLUG_SOAK_GENERIC_SMP_OPEN_FULL_PHYSICAL_RUNBOOK_VISIBLE_S420_TO_S470_S445_NO_RUNBOOK_EXECUTED_IN_S260_VERIFIED.",
],
commands: [
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s259_task_lifecycle_notification_grant_read_access_guard_expansion -- --test-threads=1",
"cargo check --quiet -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5",
"cargo check --quiet -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5,smp",
"cargo test --workspace --quiet -- --test-threads=1 --skip wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope --skip s97_runtime_and_layout_identities_are_unchanged --skip clean_bridge_literal_include_closure_is_manifest_complete --skip clean_image_make_recipe_inputs_are_exact_and_manifested --skip s99_and_s98_are_narrowly_historically_versioned --skip s97_s98_inputs_and_make_history_are_narrowly_versioned --skip historical_s90_and_s100_inputs_remain_exact",
],
terminalSessions: [
{
id: "s260-g8l-task-lifecycle-notification-grant-scan-read-access-guard-expansion",
title:
"G8l S260 task-lifecycle notification-grant scan read-access guard genişletmesi",
commandLines: [
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s259_task_lifecycle_notification_grant_read_access_guard_expansion -- --test-threads=1",
],
outputLines: [
"test result: ok; S260 focused 1 group / 12 passed; 0 failed",
"source coverage: 7 units / 111 direct SCHEDULER sites / previous=26 / additional=1 / guarded=27 / unrouted=84",
"new route: task-lifecycle derived notification grant scan / Option<(CapId, Capability)> owned Copy / local IRQ + IPC transaction",
"reader drop precedes deadline/notification mutation, mutable scheduler, exact CNode revoke and next loop iteration",
"old-ASID context-switch and &'static CNode reads remain unrouted; production exclusive wrapper absent; S245 request remains pending",
],
exitCode: 0,
outputMode: "selected",
},
],
terminalSessionsNote:
"S260 terminal özeti tek owned notification-grant Copy sonucunu ve reader'ın sonraki lifecycle mutasyon/revoke sınırından önce düşmesini doğrular; 84 unrouted site nedeniyle whole-scheduler exclusion provider authority/proof/admission değildir.",
limitations: [
"S260 yalnız 1 ek copy-returning immutable scheduler erişimiyle toplam 27/111 coverage'tır; 84 scheduler erişimi unrouted kalır.",
"Reader deadline/notification mutation, mutable scheduler, exact CNode revoke ve sonraki loop iterasyonundan önce explicit düşer; scheduler referansı guard dışına çıkmaz.",
"Context-switch old-ASID okuması ile &'static CNode döndüren erişim kasıtlı olarak S260 dışında bırakıldı.",
"RPi5 task-lifecycle notification-grant yolu source-routed ve AArch64-compiled'dır; ayrı runtime invocation, QEMU veya fiziksel RPi kanıtı değildir.",
"Production exclusive acquisition wrapper'ı coverage tamamlanmadan yayımlanmadı; provider authority, exclusion proof, lease veya S244 admission yoktur.",
"Exact S245 request yalnız read-only view ile incelenir, alınmaz ve pending kalır; S243/S236 production girişi veya SGI yoktur.",
"S260 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S260=NO.",
],
},snippet sha256: aa88ed561992…file sha256: 9726dbf00f84…
Focused test komutu
cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s259_task_lifecycle_notification_grant_read_access_guard_expansion -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S260-Task-Lifecycle-Notification-Grant-Scan-Read-Access-Guard-Expansion-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06