ASELSANMicrokernel
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: 702a7c052f8dfile 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: 29d41623ac3cfile 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: aa88ed561992file 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=1
proof: 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