feat(scheduler-core): pin jbuf capacity + record kvmgr determinism audit (task 4.2)
Hardcodes jbuf's cbuf capacity to the literal 1 in xce_sched_core_init() (no parameter path, no local variable to drift), backed by a regression test. Audits every kvmgr iteration reachable from the scheduling loop (jobs/queues/users/projects): only jobs is ever iterated, via xzarray's deterministic ascending-slot walk with no process-random seeding — findings recorded durably as a comment above xce_sched_core_init(). core->workers iteration-order stability is flagged as an open follow-up (scheduler-allocation's territory), not this task's scope. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019dw5WnN3DXStaEaPYfACU1
This commit is contained in:
parent
7c229284e2
commit
e9b5c3f589
4 changed files with 366 additions and 3 deletions
|
|
@ -203,6 +203,28 @@ sched_core_isolation_test = executable(
|
|||
+ '"'],
|
||||
install: false)
|
||||
|
||||
# Regression guard for task 4.2's jbuf-capacity half (scheduler-core spec,
|
||||
# Req 5 AC 7): "cbuf capacity=1 serialization ... this capacity is a
|
||||
# determinism invariant, not a tuning knob." Same white-box #include
|
||||
# pattern as test_picker_config_fields.c (pulls the real
|
||||
# xce_sched_core_init()/xce_sched_core_fini() from ../src/core.c into this
|
||||
# TU) PLUS the source-text-scan genre used by test_picker_core_loop_boundary_test/
|
||||
# test_core_isolation_test above -- a real runtime call proving
|
||||
# core.jbuf.ncap == 1, and a scan of core.c's actual on-disk text proving
|
||||
# the cbuf_init() capacity argument is the literal 1 (never a variable),
|
||||
# that the former `njobs` local is gone, and that the separate/unrelated
|
||||
# `ndecisions` FIXME was left untouched. XCE_CORE_C_PATH reuses the same
|
||||
# absolute-path constant as sched_core_isolation_test above.
|
||||
sched_core_jbuf_capacity_pin_test = executable(
|
||||
'sched_core_jbuf_capacity_pin_test',
|
||||
['test_core_jbuf_capacity_pin.c'],
|
||||
include_directories:[incdir],
|
||||
dependencies: [scheduler_test_deps],
|
||||
c_args: ['-DXCE_CORE_C_PATH="'
|
||||
+ (meson.current_source_dir() / '..' / 'src' / 'core.c')
|
||||
+ '"'],
|
||||
install: false)
|
||||
|
||||
# Register as meson tests so `meson test --suite scheduler` runs them all.
|
||||
# detect_leaks=0 matches the suite convention (fixtures are not torn down).
|
||||
test('scheduler test', scheduler_test, suite: 'scheduler',
|
||||
|
|
@ -236,3 +258,6 @@ test('scheduler pendreason factory audit test',
|
|||
test('scheduler core isolation test',
|
||||
sched_core_isolation_test, suite: 'scheduler',
|
||||
env: ['ASAN_OPTIONS=detect_leaks=0'])
|
||||
test('scheduler core jbuf capacity pin test',
|
||||
sched_core_jbuf_capacity_pin_test, suite: 'scheduler',
|
||||
env: ['ASAN_OPTIONS=detect_leaks=0'])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue