Stage G: SEND, and two workers interleave; decision compares work heat (FABRIC-3.8 §3.8, §3.13.7)
SEND ( paddr plen name-c name-u -- ok? ): general kernel-Hermes send to a named VM, from = calling VM, one block max (refused, not truncated), every VM. New SK_HERMES_MSG_TYPE_SEND (30). Ruling C-4 (beta), Captain Bob: the switch decision compares work heat -- the heat each VM pulled in by its own per-beat charges -- not absolute heat, so Hera's structural endowment no longer makes her hottest. Before it, the two-worker test ran serial (AAAA...BBBB); after it, byte-identical on amd64/aarch64/riscv64: AAABBBBBBBBAAAAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAABB (40 A, 40 B, 16 runs; ordinary words only, nothing yields). Acceptance: relay 3, idle growth 0; dict_hash set changed by the new word (word_count 533) and identical across ISAs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
c7185facf0
commit
81def7b4a5
@@ -111,6 +111,18 @@ void vm_physics_touch(VMUuid vm_id);
|
||||
*/
|
||||
void vm_physics_charge(VMUuid vm_id);
|
||||
|
||||
/**
|
||||
* vm_physics_work_heat_of - Cumulative heat a VM has pulled in by working
|
||||
*
|
||||
* FABRIC-3.8.md §3.13.7, ruling C-4 (β), Captain Bob 2026-09-23: the sum of
|
||||
* every transfer vm_physics_charge() actually moved INTO this VM -- heat
|
||||
* earned by its own work, independent of any structural endowment (Hera's
|
||||
* initial Q48_ONE). This is the quantity the switch decision compares
|
||||
* ("coolest VM with work" = least work heat). Only grows; 0 for an unknown
|
||||
* or dead VM.
|
||||
*/
|
||||
uint64_t vm_physics_work_heat_of(VMUuid vm_id);
|
||||
|
||||
/**
|
||||
* vm_physics_tick - Heartbeat-gated inference pass
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user