Stage MC-0c: shared VM code made per-VM or atomic (FABRIC-3.10.8 §3.4)
- Dictionary lookup index is per VM (vm->fc_index, struct SfFcIndex): was one global index rebuilt whenever a different VM was searched, and heat reorganization could reorder another VM's buckets. Allocated on first lookup, freed by vm_cleanup(); allocation failure counted/logged, lookup falls back to a newest-first dictionary walk. - PRNG: still one stream, stepped by compare-and-swap; SEED one store. - state_variable removed (write-only; STATE is vm->mode). - Sweep additions (Captain Bob's ruling): heartbeat_export.c delta last-values moved into each VM's HeartbeatState (were statics shared by every VM -- wrong across VMs today); TOP-WORDS list heap-sized per call (was static [1000]); inference_outputs_to_string() takes a caller buffer; three failure counters atomic; crc64 table published with release/acquire. - Confirmed, unchanged: g_runtime compiled out of the kernel, g_hotwords_cache unreferenced, ttf cache core-0-only. - Probe (removed): every VM has its own index; two VMs searched alternately 2x5000 lookups: 0 rebuilds, 0 wrong-VM results, all three ISAs. - Standard sequence on amd64/aarch64/riscv64: dict_hash set unchanged, G byte-identical, MINT/WIREBIND/USE ok, conservation true, 0 idle growth. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
33f4090d6d
commit
355909d46f
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user