S386 · SOURCE-BOUND GATE EVIDENCE
S386 · QEMU S143 reply-derived ACK production writer guard integration
tam production Rust öğesi + exact acquire→release odağı → S247 guard modülü → Operations-bound focused test Bu sayfa yalnız S386 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S386Production writer guardOperations id exactsource SHA exacttest target exact
operation: g8l-s386-qemu-s143-reply-derived-ack-writer-guard-integration-partial
production · S247 guard · focused test · Operations · 4 exact excerpt
sequence-bound=true · implementation-bound=true
01 · Test edilen uygulama/model kodu
Kapının yürüttüğü gerçek kaynak
tam Rust öğesiL11022–L11273kapı odağı L11168–L11185
kernel/src/main.rs::run_qemu_s143_reply_derived_broker_commit
Tam kapsayıcı Rust öğesi gösterilir; vurgulu blok yalnız S386 exact production writer üyeliği sınırıdır. Komşu kod, guard kapsamı iddiası değildir.
/// S143 runtime acceptance: one strict EL0 supervisor receives a production
/// CALL and answers through the ordinary SYS_IPC_REPLY ABI. The exact task,
/// one-shot reply capability, label and immutable event projection are
/// preflighted before IPC mutation. Once the scheduler commits the reply, the
/// production bridge atomically acknowledges the broker lease and closes the
/// task-bound session. The controller has neither an ACK call nor a session
/// close call; endpoint-close handoff remains deterministic for normal exit.
#[cfg(feature = "board-qemu")]
unsafe fn run_qemu_s143_reply_derived_broker_commit(
source_event: crate::mm::RuntimeOomEvent,
baseline_free_frames: u64,
baseline_active_allocations: usize,
) {
use crate::elf::load_and_spawn_user_elf_from_boot_runtime_with_arg;
use crate::elf_plan::{AddressRange, ElfLoadPolicy};
use crate::mm::RuntimeOomTransportEvent;
use crate::ui::capability::{CapabilityRights, IpcMessage};
use crate::userspace_binaries::OOM_REPLY_BRIDGE_SUPERVISOR_BINARY;
const S143_EVENT_LABEL: u64 = 0x5331_3433;
const S143_EXACT_ACK_LABEL: u64 = 0x4143_4b43;
const S143_TIMEOUT_TICKS: u64 = 1 << 20;
assert_eq!(source_event.id, 1);
assert_eq!(source_event.oom_epoch, 1);
let controller_task = crate::task::current_task_id().expect("S143 controller task");
let supervisor_domain = crate::mm::with_boot_runtime_memory(|memory| {
memory.register_domain(QEMU_REPLY_BRIDGE_OOM_SUPERVISOR_RUNTIME_DOMAIN_ID)
})
.expect("S143 RuntimeMemory authority")
.expect("S143 supervisor domain registration");
let endpoint_authority =
crate::ui::capability::mint_endpoint(controller_task, S143_EVENT_LABEL)
.expect("S143 controller endpoint authority");
let no_forbidden_ranges: [AddressRange; 0] = [];
let publication_guard = crate::arch::aarch64::IrqGuard::new();
let supervisor = load_and_spawn_user_elf_from_boot_runtime_with_arg(
"oom-reply-bridge-strict-el0-supervisor-elf",
OOM_REPLY_BRIDGE_SUPERVISOR_BINARY,
ElfLoadPolicy::new(
AddressRange::new(0x03c0_0000, 0x03c1_0000),
&no_forbidden_ranges,
16,
),
0x80c7_1000,
4,
0,
8,
supervisor_domain,
endpoint_authority.id,
)
.expect("S143 strict reply-bridge supervisor spawn");
crate::ui::capability::grant_task_endpoint_to_task(
endpoint_authority,
controller_task,
supervisor.task_id,
CapabilityRights::ENDPOINT_RECV,
)
.expect("S143 supervisor RECV grant");
let event =
RuntimeOomTransportEvent::try_new(3, source_event.id, source_event.oom_epoch, 0x5c03)
.expect("S143 immutable event projection");
let (session, lease) = crate::mm::with_runtime_oom_supervisor_transport(|broker| {
let initial = broker.snapshot();
assert_eq!(
initial.instance_id,
crate::mm::RUNTIME_OOM_PRODUCTION_TRANSPORT_INSTANCE_ID
);
assert_eq!(initial.queued, 0);
assert_eq!(initial.pending, 0);
assert_eq!(initial.in_flight, 0);
assert_eq!(initial.acknowledged, 2);
assert_eq!(initial.supervisor_sessions_started, 4);
assert_eq!(initial.supervisor_crashes, 2);
assert_eq!(initial.recovered_inflight, 2);
assert_eq!(initial.active_supervisor_session, None);
assert_eq!(initial.active_supervisor_task_id, None);
broker.enqueue(event).expect("S143 event enqueue");
let session = broker
.begin_supervisor_session_for_task(supervisor.task_id)
.expect("S143 task-bound supervisor session");
let lease = broker
.claim_next_for_session(
session,
crate::arch::aarch64::exceptions::TICKS.load(Ordering::Acquire),
S143_TIMEOUT_TICKS,
)
.expect("S143 task-bound reply-derived lease");
(session, lease)
});
let message = IpcMessage {
label: S143_EVENT_LABEL,
badge: controller_task,
data: [
lease.event().sequence_id(),
lease.event().source_event_id(),
lease.event().oom_epoch(),
lease.event().fingerprint(),
],
};
let exact_reply =
crate::ui::capability::mint_reply_endpoint_for_call(controller_task, endpoint_authority.id)
.expect("S143 exact reply mint");
let bridge_before = crate::mm::runtime_oom_reply_bridge_snapshot();
assert!(!bridge_before.armed);
assert_eq!(bridge_before.armed_count, 0);
assert_eq!(bridge_before.committed_count, 0);
assert_eq!(bridge_before.cancelled_count, 0);
crate::mm::arm_runtime_oom_supervisor_reply(
supervisor.task_id,
exact_reply.id,
S143_EXACT_ACK_LABEL,
message.data,
session,
lease,
)
.expect("S143 exact ordinary reply bridge arm");
let bridge_armed = crate::mm::runtime_oom_reply_bridge_snapshot();
assert!(bridge_armed.armed);
assert_eq!(
bridge_armed.active_supervisor_task_id,
Some(supervisor.task_id)
);
assert_eq!(bridge_armed.active_reply_cap_id, Some(exact_reply.id));
assert_eq!(bridge_armed.armed_count, 1);
drop(publication_guard);
let spawned = crate::mm::with_boot_runtime_memory(|memory| memory.audited_snapshot())
.expect("S143 supervisor-spawn RuntimeMemory authority")
.expect("S143 supervisor-spawn RuntimeMemory audit");
assert_eq!(spawned.pmm.free_frames, baseline_free_frames - 5);
assert_eq!(spawned.active_allocations, baseline_active_allocations + 5);
kprintln!(
"[K1-MEM2-S143] reply-bridge supervisor strict spawn PASS id={} pages={} domain={} endpoint={} reply={} owner={} TASK_BOUND=YES BRIDGE_ARMED=YES INITIAL_X0=YES W^X=YES",
supervisor.task_id,
supervisor.page_count,
supervisor_domain.id(),
endpoint_authority.id,
exact_reply.id,
controller_task,
);
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
let s386_irq_guard = crate::arch::aarch64::IrqGuard::new();
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
let s386_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s386_qemu_s143_reply_derived_ack_writer_guard_integration::acquire_s386_production_scheduler_writer_access()
.unwrap_or_else(|error| {
panic!(
"S386 QEMU S143 reply-derived ACK scheduler writer guard failed closed: {:?}",
error
)
});
let exact_ack = (&mut *core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER))
.ipc_kernel_call_and_wait(
endpoint_authority.id,
endpoint_authority.generation,
exact_reply.id,
message,
)
.expect("S143 ordinary strict EL0 reply-derived ACK");
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s386_writer_access);
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s386_irq_guard);
assert_eq!(exact_ack.label, S143_EXACT_ACK_LABEL);
assert_eq!(exact_ack.badge, supervisor.task_id);
assert_eq!(exact_ack.data, message.data);
let bridge_committed = crate::mm::runtime_oom_reply_bridge_snapshot();
assert!(!bridge_committed.armed);
assert_eq!(bridge_committed.armed_count, 1);
assert_eq!(bridge_committed.committed_count, 1);
assert_eq!(bridge_committed.cancelled_count, 0);
let committed_broker =
crate::mm::with_runtime_oom_supervisor_transport(|broker| broker.snapshot());
assert_eq!(committed_broker.queued, 0);
assert_eq!(committed_broker.pending, 0);
assert_eq!(committed_broker.in_flight, 0);
assert_eq!(committed_broker.acknowledged, 3);
assert_eq!(committed_broker.supervisor_sessions_started, 5);
assert_eq!(committed_broker.supervisor_crashes, 2);
assert_eq!(committed_broker.recovered_inflight, 2);
assert_eq!(committed_broker.active_supervisor_session, None);
assert_eq!(committed_broker.active_supervisor_task_id, None);
// The supervisor parks on a second RECV after its reply returns. Broker
// commit/session close are already durable, so endpoint revocation is only
// a deterministic normal-exit handoff and cannot recover the event again.
let endpoint_cleanup = crate::ui::capability::teardown_task_ipc_lifecycle(controller_task)
.expect("S143 controller endpoint cleanup");
assert_eq!(endpoint_cleanup.owned_endpoints, 1);
assert_eq!(endpoint_cleanup.drained_calls, 0);
assert_eq!(endpoint_cleanup.cancelled_responder_calls, 0);
let mut supervisor_reclaimed = false;
for _ in 0..256 {
let quota = crate::mm::with_boot_runtime_memory(|memory| {
memory.audited_domain_quota(supervisor_domain)
})
.expect("S143 supervisor quota authority")
.expect("S143 supervisor quota audit");
if quota.allocated_frames == 0 {
supervisor_reclaimed = true;
break;
}
crate::task::yield_now();
}
assert!(
supervisor_reclaimed,
"S143 reply-bridge supervisor did not reach exact reclaim"
);
let _ = crate::task::service_deferred_current_runtime_oom()
.expect("S143 supervisor later-stack reap");
let final_snapshot = crate::mm::with_boot_runtime_memory(|memory| memory.audited_snapshot())
.expect("S143 final RuntimeMemory authority")
.expect("S143 final RuntimeMemory audit");
assert_eq!(final_snapshot.pmm.free_frames, baseline_free_frames);
assert_eq!(
final_snapshot.active_allocations,
baseline_active_allocations
);
let final_broker = crate::mm::with_runtime_oom_supervisor_transport(|broker| broker.snapshot());
assert_eq!(final_broker, committed_broker);
let final_bridge = crate::mm::runtime_oom_reply_bridge_snapshot();
assert_eq!(final_bridge, bridge_committed);
assert!(!crate::ui::capability::ENDPOINT_REGISTRY
.lock()
.iter()
.any(|endpoint| endpoint.id == endpoint_authority.id || endpoint.id == exact_reply.id));
kprintln!(
"[K1-MEM2-S143] source_event={} endpoint={} supervisor={} reply={} domain={} SESSION=5 TASK_BOUND=YES USER_REPLY=ORDINARY_SYS_IPC_REPLY BRIDGE_PREFLIGHT=EXACT REPLY_DERIVED_ACK=YES SESSION_CLOSE=AUTOMATIC BRIDGE_ACK_CALLS=1 BRIDGE_SESSION_CLOSE_CALLS=1 CONTROLLER_BROKER_ACK_CALLS=0 CONTROLLER_SESSION_CLOSE_CALLS=0 SYNTHETIC_ACK=NO REPLY_ONESHOT=1/1 NORMAL_EXIT_RECOVERY=NONE BROKER_DRAINED=YES SESSIONS=5 CRASHES=2 ACKNOWLEDGED=3 BRIDGE_ARMED=1 BRIDGE_COMMITTED=1 BRIDGE_CANCELLED=0 RECLAIM=5 OWNER_EP_CLEANUP=1 free={}->{}->{} active={}->{}->{} KERNEL_FAULTS=0 EXECUTOR=PASS",
source_event.id,
endpoint_authority.id,
supervisor.task_id,
exact_reply.id,
supervisor_domain.id(),
baseline_free_frames,
spawned.pmm.free_frames,
final_snapshot.pmm.free_frames,
baseline_active_allocations,
spawned.active_allocations,
final_snapshot.active_allocations,
);
run_qemu_s144_ipc_call_deadline(
final_snapshot.pmm.free_frames,
final_snapshot.active_allocations,
);
}snippet sha256: 771e614c2a51…file sha256: cc118c00d93c…focus sha256: f139263c1f78…
02 · Ortak exclusion üyeliği
S247 production writer guard
tam Rust öğesiL223–L235
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s386_qemu_s143_reply_derived_ack_writer_guard_integration.rs::acquire_s386_production_scheduler_writer_access
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
pub fn acquire_s386_production_scheduler_writer_access(
) -> Result<G8lS386ProductionSchedulerWriterAccess, G8lS247WholeSchedulerAccessError> {
let caller_cpu =
crate::percpu::try_current_cpu_id().ok_or(G8lS247WholeSchedulerAccessError::InvalidCpu)?;
if caller_cpu != crate::g8l_runtime_contract::CPU0 {
return Err(G8lS247WholeSchedulerAccessError::InvalidCpu);
}
let access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s246_whole_scheduler_read_access_guard::S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE
.try_acquire_exclusive_for_valid_cpu(caller_cpu)?;
Ok(G8lS386ProductionSchedulerWriterAccess { _access: access })
}snippet sha256: f4c5192014ab…file sha256: 35f0514632db…
03 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL532–L544
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s386_qemu_s143_reply_derived_ack_writer_guard_integration.rs::boundary_has_exactly_one_s386_acquire_and_success_release_pair
#[test]
fn boundary_has_exactly_one_s386_acquire_and_success_release_pair() {
let boundary = s143_boundary();
assert_eq!(
boundary
.matches("acquire_s386_production_scheduler_writer_access")
.count(),
1
);
assert_eq!(boundary.matches("drop(s386_writer_access)").count(), 1);
assert_eq!(boundary.matches("drop(s386_irq_guard)").count(), 1);
}snippet sha256: 138ecd7d3107…file sha256: cded05c706b3…
04 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL7690–L7878
website/src/lib/operations.ts::g8l-s386-qemu-s143-reply-derived-ack-writer-guard-integration-partial
{
id: "g8l-s386-qemu-s143-reply-derived-ack-writer-guard-integration-partial",
date: "2026-08-29",
sequence: 386,
status: "passed",
umbrella_status: "partial",
title:
"S386 · QEMU S143 reply-derived ACK production writer guard integration",
summary:
"S386, run_qemu_s143_reply_derived_broker_commit içindeki exact tek explicit mutable scheduler sınırını tek başına production guard'a bağlar: ordinary S143 controller'ın ipc_kernel_call_and_wait çağrısı. Nonzero controller identity, controller-owned normal Endpoint SEND authority, strict EL0 supervisor RECV grant'i, immutable event message, task-bound broker session/lease, linked one-shot reply capability, reply-bridge pre-arm ve publication guard release writer'dan önce tamamlanır. Dedicated IRQ guard ardından gerçek per-CPU kimliğiyle CPU0-only S386 exclusive writer S385 ve 44 production reader'ın kullandığı aynı statik S247 state word üzerinde alınır. Exact tek mutable SCHEDULER aliası yalnız endpoint id/generation, reply-cap id/generation ve immutable message'i ipc_kernel_call_and_wait helper'ına iletir. Owned ACK önce writer, sonra IRQ release sınırını geçer; exact label/badge/data doğrulaması, reply-bridge commit, broker acknowledgement/automatic session close, supervisor reclaim ve endpoint cleanup ancak release'ten sonra yürür. Tarihsel S316 model-level authority audit'i production authority değildir; S385 post-revoke signal ve S387 S142 replacement exact-ACK ayrı kapılardır. Guarded writer 59/69, açık writer 10, provider authority 0 ve whole-scheduler exclusion false'dur. S143 fixture board-qemu, production wrapper RPi5-only olduğundan supported-profile runtime observation=0 açıkça korunur.",
evidence: [
"İlk canonical focused komut ayrı S386 module/source registration, CPU1 coverage service ve production S143 reply-derived ACK membership'i yokken compile RED verdi; tarihsel S316 authority audit'i veya S385 kartı production entegrasyonu yerine kullanılmadı.",
"İlk RED exit 101 verdi; /tmp/aselsanos-s386-initial-red.log 2113 B / e225c4b15c3d136acb4924f7b85940b7c119965135219e9be37e7ecbda51e013 SHA-256'dır.",
"İlk production wiring koşusu 36 PASS / 10 RED verdi. On reddin tamamı acquire/release membership'inin ortak exact_ack metni nedeniyle yanlışlıkla S140 fonksiyonuna yerleştiğini yakaladı; sayaç veya assertion gevşetilmedi.",
"Düzeltmede S140 içine yanlış yerleşen S386 IRQ/writer çifti tamamen kaldırıldı ve acquisition exact run_qemu_s143_reply_derived_broker_commit sınırına taşındı; S140 ürün davranışı S386 kapsamına alınmadı.",
"Final focused koşu 46/46 PASS verdi; /tmp/aselsanos-s386-focused-green.log 3818 B / 055292ca68a528865dfd31edcb629fdefd897c1e856b7a6589abb924f6dc592b SHA-256'dır.",
"S386 modülü typed S385 preflight outcome'unu yeniden doğrular; inherited 44 reader + 58 guarded writer + 11 open writer snapshot'ı saparsa InventoryDrift ile fail-closed kapanır.",
"S386 başarı outcome'u FiftyNinthWriterGuardedAwaitingRemaining'dir ve exact 44 guarded reader + 59/69 guarded writer + 10 open writer envanterini sabitler.",
"Production wrapper exact target_arch=aarch64, target_os=none, feature=board-rpi5 cfg kesişimindedir; host executor veya board-qemu fixture production lease runtime observation diye sunulmaz.",
"acquire_s386_production_scheduler_writer_access gerçek try_current_cpu_id sonucunu kullanır; caller-supplied production CPU parametresi yoktur ve CPU0 dışı InvalidCpu ile mutation callback'inden önce kapanır.",
"Writer lease S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE üzerinde try_acquire_exclusive_for_valid_cpu ile alınır; S386 yeni static, ikinci state word veya ayrı exclusion domain yaratmaz.",
"Host executor callback'i exact bir kez çağırır; canlı reader writer'ı, canlı writer ikinci writer'ı ve yeni reader'ı aynı state word üzerinde reddeder; callback error RAII lease'ini exact bırakır.",
"S385 ve S386 token'ları aynı shared gate üzerinde monoton ve ayrıdır; iki kapı tek transaction, range dispatcher veya toplu S335–S400 facade membership'i değildir.",
"Production main.rs envanterinde S143 CALL source-order positions[10], yani 17 explicit main aliasının on birincisidir; S386 yalnız bu tek aliası sahiplenir.",
"Nonzero controller task, controller-owned normal endpoint, strict EL0 supervisor spawn ve exact RECV grant S386 IRQ/writer acquisition'dan önce source-order assertion'larıyla sabittir.",
"RuntimeOomSupervisorEvent'ten kurulan immutable message label/badge/data, broker begin_session sonucu ve task-bound lease writer'dan önce owned değerlerdir.",
"Linked reply capability exact endpoint generation ile mint edilir; reply bridge exact reply id/generation, event id ve lease id ile pre-arm edilir ve publication guard writer başlamadan explicit bırakılır.",
"Dedicated s386_irq_guard writer acquire'dan önce kurulur; acquire_s386_production_scheduler_writer_access, drop(s386_writer_access) ve drop(s386_irq_guard) exact birer kez görünür.",
"Exact mutable alias ipc_kernel_call_and_wait(endpoint_authority.id, endpoint_authority.generation, exact_reply.id, message) çağrısını bir kez yapar ve exact S143 ordinary strict EL0 reply-derived ACK expect sözleşmesini korur.",
"Owned ack writer ve IRQ release'ten sonra exact SUPERVISOR_ACK_LABEL, event_id badge ve immutable message data[1] değeriyle doğrulanır; scheduler referansı lease dışına taşınmaz.",
"Reply bridge committed snapshot, broker acknowledged/session-close state, supervisor reclaim, endpoint destruction ve RuntimePmm baseline S386 release/check sınırından sonradır.",
"Scheduler helper aynı IRQ/IPC transaction altında caller SEND authority, normal endpoint, linked one-shot reply, optional receiver authority/deadline ve ready/blocked/reply/endpoint kapasitesini commit'ten önce yeniden doğrular.",
"CALL publish/park ile optional receiver delivery aynı helper transaction'ındadır; continuation aynı controller'ı resume eder ve exact ordinary ACK message'ını yeniden kurar.",
"Focused kaynak testi full S143 Rust öğesini, exact S386 acquire→single mutable alias→call→writer drop→IRQ drop focus'unu ve downstream bridge/broker/cleanup sırasını birlikte doğrular.",
"Focused test S316 authority audit'ini ayrı tutar, S385 membership'inin S143 içine taşınmadığını ve S387 S142 replacement exact-ACK kapısının S386'ya katlanmadığını source assertion'larıyla sabitler.",
"Selected regression S386, S385, tarihsel S316 ve runtime_oom_reply_bridge gruplarında 4 grup / 115/115 PASS verdi; log 10371 B / 7c8e545d0aefd4a8feeabbf0b9caa290374feb90b0df357127a01c061830bb86 SHA-256'dır.",
"S238–S386 dependency matrisi iki bağımsız seri koşuda 150 grup / 3669/3669 PASS verdi; süre-normalize 32309 B özetler e87d9a18aa3813efc6f1545e293a4d73c03e6679b6c78088ea1b12eebe4767c4 ile byte-exact eşittir.",
"Dependency artifact root /tmp/aselsanos-s386-dependency.qsBdi2'dir. Ham run1 320700 B / c1037db8e594eb6548ab4aca17003a57159145c8294e83266c5074b31ef8f3da ve run2 320596 B / 31f794c62f0ed8e0705099ebcc21c9961d2586afc46659221bb4f758e8a71e8f'tir; timing alanları kabul kimliği yapılmaz.",
"Exact yedi tarihsel frozen assertion dışındaki serial workspace 349 result group / 5546 PASS / 0 fail / 7 filtered verdi; raw log 546329 B / b09caaf63a728c6ea6df1f06f5b05eee481fbf152cfb36e06d7d0d2d349bc707 SHA-256'dır.",
"Filtered workspace normalize summary 26404 B / 4d58eac7dd14a9ec6ca7c545f650f9daf27ecbcbe0c9bdac8364be4f575c7e91 SHA-256 ve artifact root /tmp/aselsanos-s386-workspace.7kf1zq'dir.",
"Filtresiz workspace exit 101 ile yalnız frozen S96 wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope assertion'ında durdu; 302 result group / 5291 PASS / 1 fail ve global workspace GREEN claimed=false'dur.",
"Filtresiz raw log 514651 B / 03fd02b365362d2cca072e2b0ca9ba42aba5c7499eb06b1ba2d9fd957a5025fb ve summary 22878 B / 38fbbd1819657f11d18b828e82eea210252f1669374494aa66c9c59a838f9295'tir; miras alınan red gizlenmez.",
"Dört fresh canonical AArch64 profil kernel çalışma dizininden, CARGO_INCREMENTAL=0 ve birbirinden ayrı target dizinleriyle 4/4 exit 0 verdi; zero-warning iddiası yoktur.",
"Fresh board-qemu logu 112150 B / 64f6242f1e9149ba04e4b1d7e5a5b8cb6759b018b37cae2c9bff9f352be86b23 ve 293 warning header; ELF 16813736 B / e70957456f109361ecdffe8105b2e9c5573c5d3a79144c8396077fec05db4482'dir.",
"Fresh board-rpi4 logu 150727 B / 9bf4f372673a523890ea950f3c4b7231787b6127d691902d889291888fc1bf41 ve 391 warning header; ELF 11925376 B / 076df834e6aba9662314303f7c81393894a977f23cdee2dab1e090bdb3608a2c'dir.",
"Fresh board-rpi5 logu 648606 B / cb0d3bf27449b05e24bf7087d602f5f2a7721d72216dd65ceb2905b4395ffb43 ve 1482 warning header; ELF 15283344 B / a7e9a497bfcf67b0b5fa2e8791dd28fa047fa7df4df2a619c84803055a22ca35'tir. Wrapper compile olur fakat board-qemu-only caller olmadığı için runtime invocation=0'dır.",
"Fresh board-rpi5+smp logu 648281 B / 8779bba5891c4467d369227f759b988da6fbe5b56f3bbfc1c127f2d8dcdbb02f ve 1482 warning header; ELF 15262288 B / bd3c8cc7eb6851f80e84e843c06b9aae86649dd84b6c0abada4b0a925d54b0cb'dir. Compile success Generic SMP arbitration kanıtı değildir.",
"Dört profil /tmp/aselsanos-s386-profiles.qePvf8 altında tutulur; build log ve ELF byte/hash ölçüleri birbirine karıştırılmaz ve release artifact'i profil kanıtı sayılmaz.",
"CARGO_INCREMENTAL=0 make verify-qemu 116354 B / b40bb952509577b317a42d4ca2784667ad2303ace3772d28fecce82d69a63889 SHA-256 ile strict ELF W^X 31/31, S130–S154 + S271, RuntimePmm, EL0 return x4096, IPC 20/20 ve scheduler SEC5 PASS verdi.",
"QEMU logunda exact S143 ordinary reply-derived broker ACK/session-close senaryosu gözlendi; board-qemu guest RPi5-only S386 lease'ini compile etmediği için bu supported-profile writer runtime observation değildir.",
"cargo fmt --all -- --check exit 0 ve boş çıktı verdi; global format kabulü GREEN'dir ancak bu bütün workspace testlerinin global GREEN olduğu anlamına gelmez.",
"Status manifesti S386'yı S385'ten önce ayrı verification entry ve gate string'i olarak taşıyacak; 44 reader, 59/69 guarded writer, 10 open writer, 150/3669 dependency, 349/5546 workspace, dört profil, provider=0, exclusion=false ve physical=0 alanları exact olacaktır.",
"Code yayın hedefi S1–S386 386/386 unique source-bound gate'tir. Kullanıcının özellikle istediği S328 öncesi S1–S327 aralığı 327 ayrı Code kartı olarak korunur; missing=none, duplicate=0 ve S1/S327/S328/S385/S386 exact birer kart olmak zorundadır.",
"S386 Code kartı tam run_qemu_s143_reply_derived_broker_commit Rust öğesini production excerpt, exact acquire→release üyeliğini focus, S386 guard modülünü guard, 46-test hedefini test ve bu complete Operations object'ini operation excerpt olarak yayımlar.",
"S245 request yalnız non-consuming pending_view ile incelenir; request take edilmez, S244 whole-scheduler admission yayınlanmaz, provider authority oluşturulmaz ve whole-scheduler exclusion uydurulmaz.",
"CPU1 coverage service S385 service'inden sonra ve tarihsel S242 consumer'dan önce source-order bağlıdır; bu yalnız preflight observation'dır, writer veya provider değildir.",
"İlk production-wired focused artifact /tmp/aselsanos-s386-focused-first.log altında 8834 B / 00c57e0454dc2a79bd6f8359cbb02977023f0c2753b32e027b368d7b49b99a2b SHA-256 olarak ölçüldü. Bu ara koşunun 36 PASS / 10 RED sonucu nihai kabul diye yeniden etiketlenmez; yanlış fonksiyon üyeliğini yakalayan korunmuş RED kanıtıdır.",
"Focused grup yalnız başarı yolunu saymadı: request yokken Idle, exact pending request ile FiftyNinthWriterGuardedAwaitingRemaining, yanlış CPU'da inherited S385 hatası ve preflight sonrasında S245 pending_view değerinin değişmeden kalması ayrı testlerdir.",
"Envanter zinciri compile-time sabitlerle iki taraftan bağlandı: S386_GUARDED_READ_SITES == S385_GUARDED_READ_SITES == 44, S386_PRODUCTION_GUARDED_WRITER_SITES == S385 + 1 == 59, toplam writer 69 ve açık writer 10'dur; aritmetik yalnız Operations metnine bırakılmadı.",
"Model executor CPU0'ın shared state word'e katılabildiğini, commit callback'inin tam bir kez çalıştığını ve CPU1 isteğinin callback'e hiç girmeden InvalidCpu ürettiğini ayrı sayaçlarla doğrular. Böylece 'guard fonksiyonu var' ile 'mutation gerçekten guard içinden geçiyor' ayrımı test edilir.",
"Reader-vs-writer exclusion testi canlı immutable lease tutulurken S386 callback çağrı sayısını sıfırda tutar; writer-vs-writer testi canlı exclusive lease altında ikinci callback'i sıfırda tutar. Bunlar iki farklı çakışma sınıfıdır ve tek Busy assertion'ına indirgenmez.",
"Nested membership testi S386 exclusive callback'i çalışırken hem ikinci writer acquire'ı hem reader acquire'ını kapalı görür; callback Error döndürme testi ise scope kapanışında lease'in tam bir kez serbest kaldığını ve sonraki acquire'ın yeniden mümkün olduğunu kanıtlar.",
"Token testi S385 ve S386 executor'larını ardışık aynı gate üzerinde çalıştırır; receipt sequence değerleri kendi kapılarında kalırken S386 token'ı S385 token'ından ileridir. Bu, iki kapının ayrı state word kullanmadığına davranışsal ek kanıttır.",
"Production wrapper kaynak sözleşmesi exact S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE sembolünü, try_current_cpu_id() çağrısını, CPU0 karşılaştırmasını ve try_acquire_exclusive_for_valid_cpu yolunu birlikte arar; dışarıdan CPU kimliği enjekte eden alternatif production API kabul edilmez.",
'Production-only sembollerin tamamı aynı all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5") cfg\'sine bağlıdır. Test, wrapper tipi ile acquire fonksiyonunun farklı cfg kümelerine ayrılarak hostta sahte bir yarım yol oluşturmasını reddeder.',
"S386 modül kaynak testi construct/provider/publish/admission mutator adlarını reddeder; yalnız pending request inspection ve coverage preflight'ına izin verir. Provider authority=0 ile whole-scheduler exclusion=false bu nedenle hem sayı hem yasaklı-kaynak yüzeyiyle korunur.",
"Kernel ve simulation registration'ları exact uzun S386 module adıyla ayrı ayrı doğrulanır. S335–S400 toplu completion dosyasındaki sequence listesi production membership kanıtı sayılmaz; S386'nın kendi source unit'i ve kendi focused test binary'si zorunludur.",
"Full run_qemu_s143_reply_derived_broker_commit öğesinde core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER) tam bir kez görünür. Source-order inventory bu aliası positions[10] olarak doğrular; önceki on main.rs writer'ı veya sonraki S142 writer'ı S386 kartına taşınmaz.",
"Upstream authority sırası yalnız isim varlığıyla değil, writer acquisition'a göre konumlarla sınanır: controller_task nonzero kontrolü, mint_endpoint(controller_task, ...), supervisor yükleme/spawn, strict EL0 supervisor grant ve broker event construction acquire'dan önce olmak zorundadır.",
"Message, session ve lease ilişkisi ayrı source contract'tır: immutable IPC message event kimliğini taşır, begin_session sonucu canlı session üretir ve bind_session_to_task sonucu supervisor'a bağlı lease oluşturur; bunlardan hiçbiri mutable scheduler borrow içindeyken üretilmez.",
"Reply capability bağlantısı exact endpoint id/generation ile writer'dan önce mint edilir. prearm_runtime_oom_reply_bridge çağrısı supervisor task, exact reply id/generation, SUPERVISOR_ACK_LABEL, event id, immutable message data ve session/lease kimliklerini birlikte sabitler.",
"Reply publication guard'ın drop'u S386 IRQ guard'dan ve exclusive writer acquire'dan önce gelir. Bu sıra, reply-cap publication kilidinin whole-scheduler writer lease'iyle iç içe alınarak yeni lock-order döngüsü üretmesini engelleyen kaynak kabulüdür.",
"Guarded focus exact olarak acquire_s386_production_scheduler_writer_access ile başlar, tek mutable alias ve tek ipc_kernel_call_and_wait çağrısını içerir, sonra drop(s386_writer_access) ve drop(s386_irq_guard) ile biter. Focus dışındaki upstream/downstream kod guard üyeliği diye sayılmaz.",
"Transport çağrısının dört owned girdisi endpoint_authority.id, endpoint_authority.generation, exact_reply.id ve message'dır; reply generation helper içinde linked capability lookup ile doğrulanır. Test daha gevşek bir endpoint id veya yeniden kurulmuş message kabul etmez.",
"ipc_kernel_call_and_wait sonucu exact ordinary S143 strict EL0 reply-derived ACK expect metniyle owned ack'e çevrilir. Writer drop ve IRQ drop bu success değerinden sonra, label/badge/data doğrulamaları ise iki drop'tan sonra gelmek zorundadır.",
"ACK doğrulaması üç parçalıdır: label SUPERVISOR_ACK_LABEL, badge event_id ve data[0] exact message.data[1]. Bu üçlüden biri writer lease içinde okunursa veya bridge commit'ten sonra gecikirse focused source-order testi kırılır.",
"Bridge committed snapshot yalnız committed=true ile bırakılmaz; event/session/lease/reply bağının pre-arm girdileriyle aynı kalması beklenir. Broker tarafında acknowledged count, pending/in-flight değerleri ve automatic session close gözlemi ACK doğrulamasından sonra kontrol edilir.",
"Supervisor task reclaim, endpoint destroy ve RuntimePmm baseline dönüşü en son cleanup katmanındadır. Bu downstream kontroller production writer lease süresini büyütmez; buna rağmen S143 ürün regresyonunun tamamı seçili runtime_oom_reply_bridge grubunda korunur.",
"Scheduler helper'ın transaction preflight'ı current caller identity ve live SEND grant'i, normal Endpoint object kind'i ve endpoint'e linked one-shot reply capability'yi mutation öncesi tekrar doğrular; upstream fixture hazırlığı helper içi revalidation yerine geçmez.",
"Optional receiver yolunda receiver authority/generation, deadline uygunluğu ve ready queue, blocked call, reply table ile endpoint queue kapasitesi commit öncesi sınanır. Receiver yoksa da caller park kapasitesi ve linked reply invariants atlanmaz.",
"CALL envelope publish, caller context park ve optional immediate receiver delivery aynı IRQ/IPC transaction içinde kalır. Transaction bırakıldıktan ve scheduler continuation aynı controller'ı resume ettikten sonra owned exact reply yeniden kurulur; mutable alias continuation dışına sızmaz.",
"Komşu kapı ayrımı üç farklı kaynakla doğrulanır: S316 yalnız writer-authority audit/model lease kanıtıdır, S385 S147 post-revoke coalesced signal production üyeliğidir, S387 ise S142 replacement exact-ACK writer'ıdır. Hiçbiri S386 success sayacına eklenmez.",
"CPU1 coverage hook exceptions.rs içinde S385 service çağrısından sonra ve S242 deferred consumer'dan önce çalışır; exact S386 module service'ini çağırır fakat acquire_s386 veya mutable SCHEDULER sembolü içermez. Bu yüzden coverage observation writer invocation değildir.",
"Runtime gözlem matrisi cfg kesişimini açık tutar: S143 acceptance fixture yalnız board-qemu altında çağrılırken production wrapper yalnız board-rpi5 altında derlenir. İki cfg aynı binary'de kesişmediğinden direct supported-profile runtime observation=0 sonucu test tarafından beklenir.",
"Nihai 46-test focused çıktı yalnız toplam sayıyı değil bu kaynak/otorite, shared-gate exclusion, transaction helper, exact ACK, adjacent-gate ve cfg-runtime sınıflarını birlikte kapsar. Bir sınıf kaldırılırsa Operations sayısı değişmese bile focused binary RED olur.",
"S386 source-bound Code registry üretimi S1–S386 386/386 unique kart, 1112 exact excerpt, missing=none ve duplicate=0 verdi. Özellikle S328 öncesi S1–S327 aralığı 327/327 ayrı karttır; S1=1, S327=1, S328=1, S385=1 ve S386=1 exact sayımları doğrulandı.",
"Registry mapping dağılımı 59 writer-guard + 225 focused-test + 94 command-contract + 8 operation-record'dur. Üretilen JSON 8572054 B / 60dee9441d99244c6d255c4485605ada0f0021aa21a9ebde8d849a8f621e08d5 dosya SHA-256 ve fe1ff04191d0f9dfdbd6e7cc264ea9636358f4aa34e01adccae79cc7e58f235b içerik-registry SHA-256 taşır.",
"S386 website kabulü 694/694 test, lint PASS, boş TypeScript çıktısı ve 24/24 static route ile GREEN'dir; export 200 dosyadır. Timeline/yol-haritasi 225 ayrı gate-policy kartı taşır. S386 çekirdek policy 19963 karakter / 20769 UTF-8 byte ile S385'in 17182 karakter / 17796 byte kaydından uzundur ve bu ilişki otomatik testte korunur.",
"İlk production/main deployment d26e53c0-aced-468b-b38f-ae9aaca2cdb4 kimliğiyle https://d26e53c0.aselsan-microkernel.pages.dev adresine 115 yeni upload + 84 existing = 199 asset yayımladı.",
"Cache-busted custom-domain ilk readback'te /code/ 24131779 B / 7bb0b3f06491b16f0abb7a553a43b2fb975c8cc163f51aaf75a74ba534da0662, /operations/ 14394842 B / c8f9115cececdbe639740e631fe54ea61c83b462f91815790605f38673cefd11, /timeline/ 5894066 B / 4e9ca9fe4dedf84b38b045233d61df6c8d79997f081aa6a549960f13ccaf6bae ve /yol-haritasi/ 5893814 B / c1ad07234d30f22b52bd054bfb4c89eb7e051bbac29104da6ffe640bc56eb7b4 ile HTTP 200 ve deployment'ın yerel out dosyalarına raw byte-exact PASS verdi.",
"Canlı /code/ yanıtı cache-control public,max-age=0,must-revalidate,no-transform, x-content-type-options=nosniff ve cf-cache-status=DYNAMIC başlıklarını taşıdı; HTML üzerinde 386 data-code-gate kartı ve 327 pre-S328 kartı yeniden sayıldı.",
"Immutable Pages hostname yardımcı probe'u ortam TLS yolunda yanıt üretmeden beklediği için sonlandırıldı; bu durum custom-domain dört-rotalı HTTP 200 + raw-byte kabulüne eklenmedi ve başarı diye raporlanmadı.",
"İlk deployment ölçülerini içeren bu evidence-sync payload ayrı production/main transaction'ında yayımlanır. Self-referential sonsuz redeploy zinciri oluşturmamak için evidence-sync'in dönen immutable kimliği status/proof kapanışına yazılır; canlı Operations kartı ilk deployment'ın tam kimlik ve byte kanıtını taşır.",
"S386 sırasında fiziksel/device işlem yapılmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S386=NO.",
"Bağlayıcı olmayan S386 projeksiyonu R1 S386–S416, R2 S441–S491, R3 S570+, risk aralığı S546–S596 ve merkez yaklaşık S571'dir.",
],
commands: [
"CARGO_INCREMENTAL=0 cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s386_qemu_s143_reply_derived_ack_writer_guard_integration -- --test-threads=1",
"run S386, S385, S316 and runtime_oom_reply_bridge groups serially",
"run S238-S386 dependency list twice and normalize timing fields",
"run filtered and unfiltered serial workspace audits",
"run four fresh isolated dev AArch64 profile builds",
"CARGO_INCREMENTAL=0 make verify-qemu",
"cargo fmt --all -- --check",
"npm run code:generate && npm test && npm run lint && npx tsc --noEmit && npm run build",
"npm run deploy; cache-busted curl + cmp for /code/, /operations/, /timeline/ and /yol-haritasi/",
],
terminalSessions: [
{
id: "g8l-s386-focused-source-contract",
title: "S386 focused S143 reply-derived ACK writer membership",
commandLines: [
"CARGO_INCREMENTAL=0 cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s386_qemu_s143_reply_derived_ack_writer_guard_integration -- --test-threads=1",
],
outputLines: [
"initial result: compile RED; S386 module/source/service and production S143 boundary missing",
"first production result: 36 passed / 10 failed; shared exact_ack match placed membership in S140 and focused source tests rejected it",
"final result: 46/46 PASS after moving the exact pair to run_qemu_s143_reply_derived_broker_commit",
"shared S247 gate: 44 guarded readers + 59/69 guarded writers; 10 writers open",
"controller/endpoint/grant/event/session/lease/reply/bridge prearm < IRQ/writer < exact CALL < writer/IRQ release < ACK/bridge/broker/cleanup",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s386-selected-regression",
title: "S386 selected S143 and historical authority regression",
commandLines: [
"run S386, S385, S316 and runtime_oom_reply_bridge serially",
],
outputLines: [
"4 groups / 115/115 PASS / 0 failed",
"S316 remains model-level authority audit; S386 is the separate production membership",
"reply bridge prearm/commit and automatic broker session close remain exact",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s386-full-acceptance",
title:
"S386 dependency, workspace, profiles, QEMU and format acceptance",
commandLines: [
"run S238-S386 dependency list twice and normalize timing fields",
"run filtered and unfiltered serial workspace audits",
"run four fresh isolated dev AArch64 profile builds",
"CARGO_INCREMENTAL=0 make verify-qemu",
"cargo fmt --all -- --check",
],
outputLines: [
"dependency 150 groups / 3669/3669 twice; normalized 32309-byte summaries are SHA-256 identical",
"filtered workspace 349 groups / 5546 PASS / 7 filtered; unfiltered frozen-S96 remains RED",
"four profiles 4/4 exit 0; log and ELF byte/hash plus warning headers recorded separately",
"QEMU W^X 31/31 + S130-S154 + S271 + IPC 20/20 + SEC5 PASS; not an S386 writer runtime observation",
"global cargo fmt check exit 0 with empty output",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s386-production-publication",
title: "S386 Operations/Timeline/Code production publication",
commandLines: [
"npm run code:generate && npm test && npm run lint && npx tsc --noEmit && npm run build",
"npm run deploy",
"cache-busted curl + cmp for /code/, /operations/, /timeline/ and /yol-haritasi/",
],
outputLines: [
"registry S1-S386 386/386 / 1112 exact excerpt; pre-S328 S1-S327 327/327; missing=none; duplicate=0",
"website 694/694 PASS; lint PASS; TypeScript empty; static routes 24/24; export files=200; Timeline cards=225",
"S386 policy=19963 chars / 20769 UTF-8 bytes and is longer than S385 by enforced test",
"initial deployment d26e53c0-aced-468b-b38f-ae9aaca2cdb4; 115 upload + 84 existing = 199 assets",
"custom-domain four routes HTTP 200 and local-out raw-byte exact; /code/ no-transform; live Code=386 and pre-S328=327",
],
exitCode: 0,
outputMode: "complete",
},
],
terminalSessionsNote:
"S386 elli dokuzuncu production writer'ın dar kaynak entegrasyonudur. Yalnız ordinary S143 reply-derived ACK CALL mutable scheduler aliası guarded'dır; upstream bridge prearm ve downstream ACK/bridge/broker/cleanup ayrı sınırlar olarak kalır. Teknik kanıt GREEN, bütün scheduler exclusion ve ürün kabulü PARTIAL'dır.",
limitations: [
"10 production writer aynı shared gate dışında kaldığı için whole-scheduler exclusion ve provider authority açık kalır.",
"Board-qemu S143 fixture ile board-rpi5-only S386 wrapper aynı supported profilde kesişmez; production writer runtime invocation/observation kanıtı yoktur.",
"Reply bridge prearm writer'dan önce; ACK validation, bridge/broker commit, automatic session close, reclaim ve cleanup writer'dan sonradır ve S386 membership'ine katılmaz.",
"Tarihsel S316 yalnız source/model authority audit'idir; S385 ve sıradaki S387 ayrı production membership'leridir.",
"Default-parallel PTY determinism, transient-contention liveness/soak, Generic SMP, CPU2/CPU3/hotplug ve fiziksel RPi kabulü açık kalır.",
"S386 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S386=NO.",
],
},snippet sha256: 1bb878c493de…file sha256: 9726dbf00f84…
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s386_qemu_s143_reply_derived_ack_writer_guard_integration -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S386-QEMU-S143-Reply-Derived-ACK-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9