Skip to content

probe(arm64): Linux-style GICR discovery#304

Open
ryanbreen wants to merge 2 commits intodiagnostic/f13-gic-auditfrom
probe/f14-gicr-discovery
Open

probe(arm64): Linux-style GICR discovery#304
ryanbreen wants to merge 2 commits intodiagnostic/f13-gic-auditfrom
probe/f14-gicr-discovery

Conversation

@ryanbreen
Copy link
Copy Markdown
Owner

Summary

  • add Linux-style GICR redistributor frame discovery and per-CPU RD base storage
  • route GICR init/state dumps through discovered RD bases
  • add UNBLOCK_BEFORE_SEND_SGI and UNBLOCK_AFTER_SEND_SGI caller-side breadcrumbs
  • document the F14 Parallels sweep and FAIL verdict

Validation

  • cargo build --release --target aarch64-breenix.json -Z build-std=core,alloc -Z build-std-features=compiler-builtins-mem -p kernel --bin kernel-aarch64
  • grep -E "^(warning|error)" /tmp/f14-build-final.log produced no output
  • 5x ./run.sh --parallels --test 60 under logs/breenix-parallels-cpu0/f14-gicr-discovery/run{1..5}/

Verdict

F14 fixes the non-CPU0 GICR mapping/read defect, but does not close the AHCI timeout corridor. Runs 2 and 3 still had AHCI timeouts; corruption markers stayed at 0. Follow-up filed as Beads issue breenix-xk8.

ryanbreen and others added 2 commits April 16, 2026 08:10
… breadcrumbs

Walk GICR redistributor frames in 0x20000-byte strides, match GICR_TYPER[63:32] affinity against Breenix CPU MPIDR affinity, and store per-CPU RD bases for GICR init and diagnostic reads.

Add UNBLOCK_BEFORE_SEND_SGI and UNBLOCK_AFTER_SEND_SGI AHCI ring breadcrumbs around the scheduler-side send_sgi() call without changing send_sgi() internals.

Linux reference: /tmp/linux-v6.8/drivers/irqchip/irq-gic-v3.c:978-1011 (__gic_populate_rdist) and :1017-1045 (gic_iterate_rdists); /tmp/linux-v6.8/include/linux/irqchip/arm-gic-v3.h:238-249 (GICR_TYPER_LAST and GICR_TYPER_AFFINITY).

Co-authored-by: Ryan Breen <ryan@ryanbreen.com>

Co-authored-by: Claude Code <noreply@anthropic.com>
Document the F14 Parallels sweep, including redistributor map output, before/after GICR_STATE comparison, per-run AHCI timeout counts, and the FAIL verdict.

F14 fixed GICR frame discovery for CPUs 1-7 but did not close the AHCI timeout corridor, so F15 should target PMR=0xf0 or the idle-scan/send_sgi handoff.

Co-authored-by: Ryan Breen <ryan@ryanbreen.com>

Co-authored-by: Claude Code <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant