feat(scheduler-sim-live-allocation): thread core state through allocation context and host search (task 2.1)
Retypes xce_sched_ctx_t.sched (sched/types.h) from void* to xce_sched_core_t* outright, and sched_try_alloc_on_host_() (resource.c) to take xce_sched_core_t* directly -- completing what tasks 1.2/1.3 left as temporary &(sched->core) call-site wraps. Removes the two resulting struct-prefix casts entirely (schedobj.c's sched_ctx_set_primary(), host_iter.c's sched_host_iter_next()): both now pass core state through honestly, with no cast. Updates every sched_ctx_init()/sched_try_alloc_on_host_() call site tree-wide (scheduler.c, parjob_allocator.c, seqjob_allocator.c) with zero change to host_iter/parjob/seqjob's own host-iteration/ bucket-construction algorithm. Adds a driver-parity test for sched_try_alloc_on_host_() proving identical grant/deny results from normal-mode-shaped and simulation-mode-shaped core state. Flags (for task 2.3) a confirmed-dead, type-confused write at plugins/limit.c:319 (ctx.sched = plugin->sched) -- never read today, left untouched since limit.c is task 2.3's boundary, not this one's. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RLSNJhNoULvVcUhXEFafQC
This commit is contained in:
parent
55173fca27
commit
d52c78e4be
14 changed files with 229 additions and 54 deletions
|
|
@ -270,7 +270,9 @@ test_my_alloc_allocates_single_matching_host_through_shared_iterators(void)
|
|||
|
||||
init_primary_obj(&obj, &primary_obj, &primary);
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(0, sched_ctx_init(&ctx, &sched, &obj));
|
||||
/* scheduler-sim-live-allocation spec, task 2.1: ctx->sched is now
|
||||
* honestly typed xce_sched_core_t* -- pass &(sched.core), not &sched. */
|
||||
TEST_ASSERT_EQUAL_INT(0, sched_ctx_init(&ctx, &(sched.core), &obj));
|
||||
/* Real call -- exercises plugin_prepare_allocation()'s ctx->worker ==
|
||||
* NULL branch exactly as sched_make_primary_allocation() does today,
|
||||
* populating ctx->alloc_req.shared before my_alloc() ever runs. */
|
||||
|
|
@ -325,7 +327,9 @@ test_seqjob_prepare_allocation_guards_against_maxtasks_gt_1_fanout(void)
|
|||
|
||||
init_primary_obj(&obj, &primary_obj, &primary);
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(0, sched_ctx_init(&ctx, &sched, &obj));
|
||||
/* scheduler-sim-live-allocation spec, task 2.1: ctx->sched is now
|
||||
* honestly typed xce_sched_core_t* -- pass &(sched.core), not &sched. */
|
||||
TEST_ASSERT_EQUAL_INT(0, sched_ctx_init(&ctx, &(sched.core), &obj));
|
||||
ctx.primary = &primary;
|
||||
|
||||
/* Simulate parjob_prepare_allocation() having already staged this
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue