Conversation
RISC-V regression builds ran only at -O0, leaving a timer callback counter that spins forever at -O2. The trace regression was excluded because it referenced a port-specific interrupt-save variable, and its adjacent pools could start misaligned on RV64. Made the timer counter volatile, gave the trace test aligned pool storage and a portable saved-interrupt value, and enabled it on RISC-V. Added an -O2 QEMU configuration to keep the optimized failure covered. CMake/Ninja/QEMU: RV64 default, optimized and trace suites passed 97/97 each; RV32 passed 96/96 each. Two ISR event tests passed 30 repeats each at -O2. The Linux/GCC 14 trace test passed. The reported timing resonance did not recur. Assisted-by: Codex (gpt-6-sol) <noreply@openai.com>
fdesbiens
force-pushed
the
fix-issue-520-regression-portability
branch
from
September 23, 2026 20:38
de0f2db to
8ed8883
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RISC-V regression builds ran only at
-O0, which hid a timer callback counter that made the multi-level preemption test hang at-O2. The trace test was excluded because it used a port-specific interrupt-save variable, and its byte pool could start at an unaligned address. These are among the portability concerns in #520.The timer counter is now volatile. The trace test uses aligned pool storage and a portable interrupt-save variable, so it runs on RV32 and RV64. An optimized QEMU configuration keeps the higher-optimization failure in CI.
CMake/Ninja/QEMU passed RV64 default, optimized, and trace suites at 97/97 each, and RV32 at 96/96 each. PR CI passed 1,158/1,158 RISC-V tests; the ThreadX, SMP, and FreeRTOS checks also passed. The two ISR event tests passed 30 repeats each at
-O2; the reported timing resonance did not recur on QEMU. The Linux/GCC 14 trace test passed. Not run on hardware.