feat(scheduler-sim-diagnostics): display live usage for cluster-wide limit instances
repl_info_limit() now displays accounted-usage/capacity for GLOBAL/SHARED limit instances: iterates limit_get_usage_instances(), filters by vres->limit == matched_limit, reads capacity from core.sharedInst[idx] and accounted usage from core.sharedInUse[idx]. Existence-of-instance and zero-usage are kept distinct per design.md: no matching instance (or one with no populated capacity) prints "no active usage instance yet"; a matched-but-never-charged instance correctly shows accounted=0 instead. Self-caught during implementation and independently confirmed by review: a negative or stale vres->idx (possible per add_vres()'s allocate-then-assign pattern) is not safely rejected by zarray_get_ex()'s idx>=caps check alone -- the new code adds an explicit idx<0 guard rather than copying repl_info_resource_one()'s existing .count-based pre-check (which is itself imprecise for a sparsely-populated zarray, a pre-existing issue left out of scope here). Calling limit_get_usage_instances() for the first time from repl_info.c reproduced the same ~24-file link-stub ripple task 2.1 established for limit_get_configured_limits() -- fixed with the identical pattern. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RLSNJhNoULvVcUhXEFafQC
This commit is contained in:
parent
5876716eee
commit
6148cb0569
27 changed files with 677 additions and 3 deletions
|
|
@ -139,6 +139,19 @@ var limit_get_configured_limits(xce_sched_core_t* core)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* scheduler-sim-diagnostics spec, task 3.1: repl_info.c now also calls
|
||||
* limit_get_usage_instances() (plugins/limit.c, not part of this TU) to
|
||||
* read a limit's live usage instances -- identical link-satisfying stub,
|
||||
* same rationale as limit_get_configured_limits() immediately above; this
|
||||
* file's own fixtures never register the limit plugin, so NULL
|
||||
* (limit_get_usage_instances()'s own documented "plugin absent" return) is
|
||||
* also the behaviorally correct answer here, not just a link placeholder. */
|
||||
var limit_get_usage_instances(xce_sched_core_t* core)
|
||||
{
|
||||
(void)core;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* resource-accounting.md's reconciliation (resource.c, not linked here --
|
||||
* this file only #includes core_events.c). core_events.c's
|
||||
* XCE_CORE_EVENT_JOB_RUSAGE handler calls this whenever job->accounts !=
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue