FABRIC-3.10.8 §6: MC-2 plan -- observers stay on core 0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
c081bcf87a
commit
3c07636ecd
@@ -948,3 +948,19 @@ The boot hart HSM chose (0) is the one OpenSBI names as `Boot HART ID`.
|
||||
**Before MC-2 (observers get core-0 affinity) and MC-3 (worker cores claim), open findings:**
|
||||
- Core 0's idle loop polls at about 64% of a host CPU (§5.2).
|
||||
- In MC-1 the parked cores run no timer, take no interrupts, and have no GIC/PLIC/LAPIC setup of their own. MC-3's wake-by-IPI needs each core's interrupt controller initialised: the LAPIC on amd64, the GIC CPU interface on aarch64, and the SIE/SSIP path on riscv64.
|
||||
|
||||
## 6. MC-2 — observers stay on core 0 (plan, 2026-09-26)
|
||||
|
||||
**Go:** Captain Bob, 2026-09-26, *"keep going"*.
|
||||
|
||||
**Change** (MC-R1: all three observers on core 0, the system core).
|
||||
- **The decision** (`sk_vm_switch_decide()`) considers observers only when the deciding core is core 0. On any other core only participants are candidates.
|
||||
- **The switch** (`sk_vm_context_switch()`) refuses to enter an observer on any core but core 0, and counts the refusal (`sk_vm_switch_observer_refusals()`). The idle point logs the count when it changes. It is a guard: MC-3 must never trip it.
|
||||
- Nothing changes on core 0, which is the only core that runs anything until MC-3.
|
||||
|
||||
**Evidence (named in advance):**
|
||||
- **Standard sequence unchanged** on all three ISAs: the K-10 dict_hash set, G byte-identical, all ok `3`, 0 B idle growth, **0 observer refusals**.
|
||||
- **Probe** (temporary word, amd64): on core 0, with Hestia holding a pending message, it sets its own `core_id` to 1 for the duration of one call each.
|
||||
- `sk_vm_switch_decide()` returns no observer; it returns a participant or nothing.
|
||||
- `sk_vm_context_switch()` to Hestia is refused, and the refusal count goes from 0 to 1.
|
||||
- With `core_id` back at 0, the same decision returns Hestia.
|
||||
|
||||
Reference in New Issue
Block a user