Stage C-b: compudynamic switch decision, idle point, timer path removed (FABRIC-3.8 §3.13.3-§3.13.5)
Who runs next is now sk_vm_switch_decide(): among participants with work (pending kernel-Hermes mail, parked mid-task, or Hera with console input), the coolest by VM-physics heat; ties with the incumbent keep the incumbent, ties among candidates go to the longest waiting (unique wait stamps). No scheduler state, no timer: heartbeat_tick() no longer touches switching, readiness/threshold/has_work/take_pending removed. Decided at owned word checkpoints (colon words and, new, between top-level words) after a beat or new mail, at the trampoline between messages, and at Hera's idle point in the console poll loops. The idle pump skips participants (G3 closed for them): the WIREBIND relay is delivered by a real switch to rajames~user. Probe (restored away): relay via switch Hera->rajames~user->Hera on all three ISAs, parked saved_sp inside own stack, walk-order disagreements 0 over tens of millions of decisions, 0 bytes idle log growth. Acceptance: dict_hash unchanged, relay 3, no faults. Rulings: C-3, C-5 as proposed; C-4 taken as (alpha), consequence recorded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
7c3736841d
commit
06bcab504d
@@ -165,6 +165,10 @@ typedef struct {
|
||||
uint32_t orig_type;
|
||||
int in_use;
|
||||
VMUuid owner; /* VM whose reservoir funded this message (task 2.7) */
|
||||
uint64_t wait_stamp; /* FABRIC-3.8.md §3.13.3 (Stage C-b): unique
|
||||
* admission stamp (sk_vm_switch_signal_next_stamp())
|
||||
* -- how long the recipient has been waiting,
|
||||
* for the switch decision's tie-break */
|
||||
} SkHermesMessage;
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user