Follow-up probing narrowed Finding 3's behavior (inconsistent stall point run-to-run: sometimes reaches iters=1000/delta=951 before stopping, sometimes never gets past iters=0 even after a 400-second bounded wait) but didn't pin the mechanism. Tested the strongest available hypothesis: single-threaded TCG scheduling starvation from an -O2-tightened spin loop, based on a real precedent -- calibrate_apic_timer() (apic.c) already calls arch_relax() every iteration of its own spin-wait; calibrate_tsc_with_pmtimer() never had it. Added the same call, matching that precedent exactly. Result: no change, same exact stall point on a fresh 60-second bounded wait. Reverted. Stopping here per this document's own §25.0 rule 5 -- root-causing further needs either deeper TCG/QEMU internals knowledge or a different diagnostic approach (host-side instrumentation) than another guess-and-check pass. Makefile.starkernel and timer.c both back to committed -O0 state, confirmed booting clean. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
30 MiB
30 MiB
The file is too large to be shown.
View Raw