fix(scheduler): sim resource over-commit, byte-unit display, sync job-state-at-capture
- bug-1799/1801: fix resInUse over-commit in sim replay -- sched_account_jobs's per-round re-derive pass now skips RECONCILING/UNAVAIL workers the same way core_reset_workers already does (bug-1751), closing the gap that let a worker's used slots exceed its own capacity across a resync replay - bug-1804: revise scheduler-sim-eager-reconciliation spec (user-directed) so a captured job's job->state is set to RUN synchronously at dispatch capture, mirroring sched_commit_decision's normal-mode semantics (bug-1624), instead of deferring until its separately-recorded JOB_STATE_CHANGE event replays - bug-1800: render bytes-valued CONSUMABLE resources (mem/swp/tmp) with the same human-scaled unit formatting already used for maxmem/maxswap/maxtmp - bug-1802/1803: add then revert a break-on-ANY-event breakpoint kind after live feedback that it over-fires inside busy sessions; replace it with a prescan-based "next non-dummy session" hint in info summary instead Full scheduler suite: 77/77 tests pass (asan profile). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RLSNJhNoULvVcUhXEFafQC
This commit is contained in:
parent
ffca959ed9
commit
25fb5c115a
22 changed files with 1827 additions and 303 deletions
|
|
@ -253,4 +253,23 @@ extern int sched_sim_driver_start(xce_sched_sim_driver_t* sim,
|
|||
extern int sched_sim_driver_run(xce_sched_sim_driver_t* sim,
|
||||
const sched_sim_args_t* args);
|
||||
|
||||
/*
|
||||
* sim_prescan_next_nonempty_session - user-requested (2026-09-11): looks
|
||||
* ahead in sim->replay_file (from its CURRENT read position) for the next
|
||||
* ReplaySession boundary preceded by at least one real event -- i.e. the
|
||||
* next "non-dummy" session -- without consuming/advancing the stream.
|
||||
* `*out_sessions_ahead` is the number of session boundaries from right now
|
||||
* to reach it (exactly the count `step N` needs), NOT an absolute session
|
||||
* number -- this function only sees the raw replay stream, not
|
||||
* xce_sched_repl_state_t's session_count (an opaque type here, fully
|
||||
* defined only in repl_internal.h). repl_info.c's `info summary` adds this
|
||||
* to rs->session_count itself for display, and reports the result so an
|
||||
* operator can `step N` straight there instead of single-stepping through
|
||||
* a run of dummy (virtual-clock-only) sessions first. See sim.c's own doc
|
||||
* comment on this function for the full contract, return values, and
|
||||
* scope decisions.
|
||||
*/
|
||||
extern int sim_prescan_next_nonempty_session(xce_sched_sim_driver_t* sim,
|
||||
uint64_t* out_sessions_ahead);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue