docs(scheduler-sim-live-allocation): reconcile equivalence suites (task 5.3)

Re-ran test_repl_equivalence.c, test_sim_equivalence.c, and
test_sim_contention_parity.c in full: all pass, 85/85, zero assertion
changes anywhere. Confirmed all three still exercise their own
link-satisfying always-PEND sched_job_picker/sched_allocator stub
(added task 4.1), correctly proving the new two-thread jbuf timing
didn't disturb decision ordering -- but not proving real live-path
resource-based dispatch parity, which is already covered separately
by tasks 4.1/4.3/5.1/5.2's real-scheduler_srcs-linked fixtures.

Fixed a stale documentation defect: all three files' header/inline
comments claimed sim mode "structurally CANNOT emit a DISPATCH
decision" via sim_picker_thread_fn(), a function this feature removed
in tasks 3.1/4.1. That claim is now false of production sim mode
(disproved by test_sim_live_allocation.c and others); corrected with
a RECONCILIATION addendum rather than rewriting the original
historical rationale. No production code or assertion values changed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RLSNJhNoULvVcUhXEFafQC
This commit is contained in:
Rongsong Shen 2026-09-19 09:39:32 +00:00
parent a70c7a2c61
commit aacb7250e3
No known key found for this signature in database
GPG key ID: 5BCDAAE0123E9FE2
4 changed files with 77 additions and 6 deletions

View file

@ -137,6 +137,35 @@
* WRONGLY granted a hypothetical job wanting JOBB_WANT (5.0) against sim's
* post-replay state -- then confirmed to pass again once the call site was
* restored. See this task's own Status Report for the exact commands run.
*
* RECONCILIATION (scheduler-sim-live-allocation spec, task 5.3, 2026-09-19):
* the "sim_picker_thread_fn() ... structurally can only ever PEND" and
* "real resource-matching allocation belongs to the not-yet-designed
* scheduler-allocation spec" framing above is now historical -- that
* function was removed (scheduler-sim-live-allocation task 3.1/4.1),
* scheduler-allocation has since been completed, and this feature makes
* production sim mode genuinely dispatch via the shared sched_job_picker()/
* sched_allocator() pair (sched_election.c). This file's OWN rationale for
* NOT simply replaying task 1.2's recorded file is still correct and
* load-bearing for a different reason than originally stated, though: this
* TU supplies its own link-satisfying sched_job_picker()/sched_allocator()
* stub (below, added unmodified by task 4.1) that deliberately preserves
* the old always-PEND contract, so it could not detect real resource-based
* dispatch even if the fixture were replayed unmodified -- Recorded-
* Decision Reconciliation's own narrow trigger shape (a job already RUN by
* the time the live picker reaches it) is genuinely the mechanism this file
* tests, independent of whether the live allocator can also dispatch a
* fresh candidate for itself. `git show` on task 4.1's commit confirms the
* only change made to this file was adding that stub -- zero pre-existing
* assertions were touched, and this file's own test still passes for the
* same reason it always did. The genuine question this feature raised --
* does production sim mode's real live allocator (not reconciliation)
* produce the same admission/pend outcome as normal mode under contention,
* including limit-constrained contention -- is answered by task 5.1's
* sched_sim_contention_resource_driver_parity_test and
* sched_sim_contention_limit_driver_parity_test (meson.build), which link
* real scheduler_srcs and drive the real sched_job_picker()/sched_allocator()
* pair directly; this file does not duplicate that proof.
*/
#include <errno.h>
#include <limits.h>