feat(scheduler-core): extract xce_sched_core_t from monolithic scheduler struct (task 4.1)
Splits xce_scheduler_t along the controller-I/O seam: xce_sched_core_t
(new core.h/core.c) now holds all scheduling state (jobs/queues/workers/
users/projects/resource managers/plugins/three-thread-cbuf pipeline),
while xce_scheduler_t shrinks to {core; apictx; cluster_cfg}. Proven via
an nm-based link-time isolation test (zero netio/xcecli/idgen/delaymgr
symbols reachable from core.c) plus a reproducible wall-clock-call guard.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019dw5WnN3DXStaEaPYfACU1
This commit is contained in:
parent
604a564904
commit
7c229284e2
26 changed files with 1233 additions and 661 deletions
|
|
@ -2,6 +2,7 @@ scheduler_srcs = [
|
|||
'src/main.c',
|
||||
'src/handler.c',
|
||||
'src/scheduler.c',
|
||||
'src/core.c',
|
||||
'src/decision.c',
|
||||
'src/schedobj.c',
|
||||
'src/plugin.c',
|
||||
|
|
@ -33,4 +34,19 @@ scheduler = executable('xce_scheduler',
|
|||
link_args: wrap_link_args,
|
||||
install: true)
|
||||
|
||||
# Task 4.1 (scheduler-core spec, Req 5.1/5.2): isolated compile target for
|
||||
# core.c alone, consumed by testsuite/test_core_isolation.c to prove at
|
||||
# build time that core.c references zero symbols from the networking/API
|
||||
# libraries (netio/xceapi/client/delay/idgen). A static_library() here need
|
||||
# not LINK against anything for this purpose -- compiling src/core.c to an
|
||||
# object is enough; the object's own undefined-symbol table (inspected via
|
||||
# nm(1) in the test) reflects exactly what core.c's code calls, independent
|
||||
# of which libraries are nominally "dependencies" of this build target.
|
||||
sched_core_isolation_lib = static_library(
|
||||
'sched_core_isolation',
|
||||
['src/core.c'],
|
||||
include_directories: incdir,
|
||||
dependencies: scheduler_deps,
|
||||
install: false)
|
||||
|
||||
subdir('testsuite')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue