Stage E: every born VM is a switch participant (FABRIC-3.8 §3.6, G4)
capsule_birth_baby() registers each VM at its LIVE completion point, beside the common-channel subscription. register() is idempotent. The Artemis/ Hestia registrations in kernel_main.c and WIREBIND's own call are removed (Hera, never born through capsule_birth_baby, stays with set_current). Probe (restored away): Tripod registered once each (3 slots), a WORKER-BIRTH VM becomes a participant with no hand registration (4) and KILL frees it (3), WIREBIND registers exactly console+user, zero duplicates, on amd64/aarch64/riscv64. Acceptance: dict_hash unchanged, relay 3, idle growth 0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
604ad7aadc
commit
c7185facf0
@@ -85,7 +85,10 @@ int sk_vm_switch_signal_boot_init(void);
|
||||
* or -1 if the slot table is full (or sk_vm_switch_signal_boot_init() was
|
||||
* never called / failed). Call once per participating VM, after that VM is
|
||||
* fully born (never mid-birth -- this stage has no critical-section
|
||||
* protection against being switched away mid-setup). */
|
||||
* protection against being switched away mid-setup). FABRIC-3.8.md §3.6
|
||||
* (Stage E): capsule_birth_baby() is now the one caller for every born VM
|
||||
* (Hera, never born through it, is registered in kernel_main.c).
|
||||
* Idempotent: registering an already-registered VM returns its slot. */
|
||||
int sk_vm_switch_signal_register(VMUuid vm_id);
|
||||
|
||||
/* Remove a switch-signal participant (FABRIC-3.md §XXVIII Stage 4,
|
||||
|
||||
Reference in New Issue
Block a user