ASELSANMicrokernel
S160 · SOURCE-BOUND GATE EVIDENCE

G8j: EL1 shared-root/ASID0 migration round-trip modeli

Operations --test hedefi → test hedefiyle aynı adlı uygulama/model modülü → kaynak kesiti Bu sayfa yalnız S160 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.

S160Focused kod testiOperations id exactsource SHA exacttest target exact

operation: g8j-el1-asid0-round-trip-model-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 öğesiL1–L54
simulation/src/g8j_round_trip.rs::SHARED_ROOT_ID
//! G8j bounded CPU0→CPU1→CPU0 migration round-trip model.
//!
//! S160 keeps the S159 admission boundary unchanged: static EL1, shared root,
//! ASID 0 and one task.  It adds a second, separately ticketed return leg and
//! never claims production scheduler, assembly, QEMU, or physical runtime.

pub const CPU0: usize = 0;
pub const CPU1: usize = 1;
pub const SHARED_ROOT_ID: u64 = 1;

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum RoundTripState {
    Running0,
    MigratingForward,
    Ready1,
    Running1,
    MigratingBack,
    Ready0,
}

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct RoundTripTask {
    pub id: u64,
    pub is_static: bool,
    pub el0: bool,
    pub asid: u16,
    pub root_id: u64,
    pub owner_cpu: usize,
    pub stack_owner_cpu: usize,
    pub stack_generation: u64,
}

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct RoundTripTicket {
    pub task_id: u64,
    pub generation: u64,
    pub stack_generation: u64,
    pub source_cpu: usize,
    pub target_cpu: usize,
}

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum RoundTripError {
    InvalidCpu,
    ForeignMutation,
    WrongTask,
    DuplicateExecution,
    InvalidState,
    StaleRequest,
    TaskLost,
    InvalidDescriptor,
    StackGenerationNotMonotonic,
    StackOwnershipAmbiguous,
}
snippet sha256: f140f176fb50file sha256: 76b21504d95f
02 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL261–L279
simulation/tests/g8j_round_trip.rs::final_round_trip_has_one_owner_and_monotonic_ticket_generations

#[test]
fn final_round_trip_has_one_owner_and_monotonic_ticket_generations() {
    let mut model = G8jRoundTripModel::new();
    model.start_running0(task(13)).unwrap();
    let forward = model.begin_forward(CPU0, 13).unwrap();
    model.publish_forward(CPU0, forward).unwrap();
    model.start_running1(CPU1, forward).unwrap();
    let reverse = model.begin_reverse(CPU1, 13).unwrap();
    assert_eq!(reverse.generation, forward.generation + 1);
    model.publish_reverse(CPU1, reverse).unwrap();
    model.finish_running0(CPU0, reverse).unwrap();
    let final_task = model.task().unwrap();
    assert_eq!(final_task.id, 13);
    assert_eq!(final_task.owner_cpu, CPU0);
    assert_eq!(final_task.stack_owner_cpu, CPU0);
    assert_eq!(final_task.stack_generation, 3);
    assert_eq!(model.active_ticket(), None);
}
snippet sha256: 65269c5bf815file sha256: 0c62cfc5f852
03 · Kapı kimlik kaydı

Operations sıra, kimlik ve başlık bağı

tam Operations kaydıL23568–L23608
website/src/lib/operations.ts::g8j-el1-asid0-round-trip-model-partial
  {
    id: "g8j-el1-asid0-round-trip-model-partial",
    date: "2026-08-24",
    sequence: 160,
    status: "passed",
    umbrella_status: "partial",
    title: "G8j: EL1 shared-root/ASID0 migration round-trip modeli",
    summary:
      "S160, S159'un explicit static/EL1/shared-root id=1/ASID0 admission sınırını koruyarak CPU0→CPU1→CPU0 round-trip'i 8/8 bounded host/model seviyesinde kapattı: RUNNING0→MIGRATING_FORWARD→READY1→RUNNING1→MIGRATING_BACK→READY0→RUNNING0, iki ayrı ticket generation, exact task/IRQ-stack owner dönüşü 0→1→0, stack generation 1→2→3 ve task loss/çift execution yokluğu. Her bacak stack rotation'ı ticket öncesi preflight ediyor; owner/stack/generation publish tek transaction. MAX-1→MAX sonrası reverse başlangıcı mutasyonsuz reddedildi. Production migration, ASID/TLB shootdown, EL0/nonzero-ASID, QEMU ve fiziksel runtime açık kaldı.",
    evidence: [
      "g8j_round_trip: 8/8 PASS; explicit static/EL1/shared-root id=1/ASID0 descriptor, dynamic/private-root reddi ve iki bacak exact state chain doğrulandı.",
      "Forward CPU0→CPU1 ve reverse CPU1→CPU0 owner transferleri exact; stack generation 1→2→3, ticket generation 1→2 ve her RUNNING commit'inde retirement geçti.",
      "Per-leg stack-rotation preflight ve hesapla-sonra-commit owner/stack/generation publication doğrulandı; u64::MAX reverse sınırı state/task/ticket/counter değiştirmedi.",
      "Task round-trip sonunda CPU0'da tek owner olarak kaldı; task loss ve concurrent execution oluşmadı.",
      "Foreign mutation, iki bacak stale/replay ticket, forward/reverse wrong task, forged stack generation, invalid CPU/descriptor ve EL0/nonzero-ASID sınırları mutasyonsuz reddedildi.",
      "Kalıcı kapsam: `docs/M8.1-RPi5-G8j-S160-EL1-ASID0-Round-Trip-Model-Proof.md`.",
      "S160 fiziksel/device operasyonu yapmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S160=NO.",
    ],
    commands: [
      "cargo test -p aselsan_microkernel_simulation --test g8j_round_trip -- --test-threads=1",
    ],
    terminalSessions: [
      {
        id: "s160-g8j-el1-asid0-round-trip-model",
        title: "G8j EL1/ASID0 migration round-trip host model kapısı",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation --test g8j_round_trip -- --test-threads=1",
        ],
        outputLines: ["running 8 tests", "test result: ok. 8 passed; 0 failed"],
        exitCode: 0,
        outputMode: "selected",
      },
    ],
    terminalSessionsNote:
      "S160 yalnız bounded source/model round-trip sözleşmesidir; production scheduler migration, context-switch assembly, ASID/TLB shootdown, EL0/nonzero-ASID, QEMU, fiziksel RPi ve generic SMP runtime sonucu değildir.",
    limitations: [
      "Production migration/context-switch wiring ve ASID/TLB shootdown bağlanmadı; bu kapı source/model sınırındadır.",
      "EL0/nonzero-ASID migration, CPU2/CPU3, hotplug, long soak ve generic SMP arbitration sonraki kapılardır.",
      "QEMU ve fiziksel/device operations kapsam dışıdır; RUNBOOK_EXECUTED_IN_S160=NO.",
    ],
  },
snippet sha256: 919b340a4984file sha256: 9726dbf00f84
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8j_round_trip -- --test-threads=1
proof: docs/M8.1-RPi5-G8j-S160-EL1-ASID0-Round-Trip-Model-Proof.md
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06