feat(scheduler-core): add picker configuration fields (task 1.3)
Adds xce_scheduler_t.job_pick_plugin (global picker name), and on xce_sched_queue_t: project_name + job_pick_plugin (per-queue override, NULL = inherit global). Adds xce_sched_project_t.priority (scaffolding only, no quota logic). sched_set_default_job_pick_plugin() is added but not yet wired into sched_init() -- task 2.4 owns that, alongside replacing the hardcoded "xce_sched_fcfs" literal. Requirements: 2.1, 2.2, 2.3, 2.4
This commit is contained in:
parent
4d8d72142e
commit
0d63a789a1
6 changed files with 398 additions and 2 deletions
|
|
@ -15,7 +15,7 @@
|
|||
- _Requirements: 1.6, 2.5_
|
||||
- _Depends: 1.1_
|
||||
|
||||
- [ ] 1.3 (P) Add picker configuration fields
|
||||
- [x] 1.3 (P) Add picker configuration fields
|
||||
- Add a global picker plugin name field to the scheduler, defaulting to `builtin_fcfs` when unset
|
||||
- Add a per-queue picker plugin override field, defaulting to NULL (inherit global)
|
||||
- Add a project-name field to the queue struct, and extend the project struct with a priority field (scaffolding only — no quota fields)
|
||||
|
|
@ -349,3 +349,10 @@
|
|||
- Observable: the soak run completes with a clean pass across all rounds, matching the zero-regression bar set by the Phase 1 and Phase 2 soak runs
|
||||
- _Requirements: 4.3_
|
||||
- _Depends: 12.4, 10.6_
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
- Task 1.3 added `sched_set_default_job_pick_plugin()` (schedobj.c) but deliberately did NOT call it from `sched_init()` — task 2.4 owns replacing `scheduler.c:43`'s hardcoded `"xce_sched_fcfs"` literal and must also wire this defaulting call (or equivalent logic) into scheduler startup, or `sched->job_pick_plugin` stays NULL through a real boot.
|
||||
- Background IDE diagnostics ("file not found: rtti.h", "unknown type name" for various xce_* types) have appeared consistently on every scheduler.h/plugin.h/types.h/schedobj.c change so far (tasks 1.1-1.3) and are confirmed stale clangd artifacts each time via independent real `meson compile`/`meson test` runs — not real build failures. Don't let these block a task; verify with the real build instead.
|
||||
- Meson build dir is `src/xce.build`, not repo-root `xce.build` — build/test commands must run from `src/` (e.g. `cd src && nix develop . --command bash -c "meson test -C xce.build --suite scheduler"`).
|
||||
- Scheduler testsuite convention: run test binaries directly with `ASAN_OPTIONS=detect_leaks=0` (fixtures aren't torn down, by design — matches existing `meson.build` test registration).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue