FABRIC-3.10.8 MC-1a: the core table, and amd64's second core online and parked
hal/smp.c: dense logical core ids, a heap-sized core table, one-at-a-time bring-up under a 1 s bound, park-wake reporting at the idle point. amd64: MADT enumeration, a relocation-free real->long-mode trampoline copied below 1 MiB, INIT-SIPI-SIPI via the LAPIC ICR; QEMU -smp 2. Core 1 reports online with GS on its own block, parks with 0 wakes; aarch64/riscv64 report 1 core until MC-1b/c. 3-ISA acceptance clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
8c068e00e3
commit
24bde47481
@@ -61,6 +61,12 @@ typedef struct sk_percpu {
|
||||
/* K-11 (spinlock.c): locks this core holds right now, per rank -- the
|
||||
* lock-order check compares a new lock's rank with the highest held. */
|
||||
uint32_t held_rank[SK_LOCK_RANK_COUNT];
|
||||
/* MC-1 (hal/smp.c): the core's hardware id (APIC id / MPIDR / hartid;
|
||||
* never the lock owner word), and what it reports on coming online. */
|
||||
uint64_t hw_id;
|
||||
uint64_t reg_readback; /* its per-CPU register, read on arrival */
|
||||
volatile uint32_t online; /* 1 once parked (release store) */
|
||||
volatile uint64_t park_wakes; /* times woken while parked */
|
||||
} sk_percpu_t;
|
||||
|
||||
/* Installs the boot core's block in this core's per-CPU register. Call
|
||||
|
||||
Reference in New Issue
Block a user