configs: reduce UARTLite console PIO latency for Xiangshan bare-metal runs#789
configs: reduce UARTLite console PIO latency for Xiangshan bare-metal runs#789jensen-yan wants to merge 1 commit intoxs-devfrom
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughA single latency configuration parameter is added to the UART initialization in the platform system setup. The change assigns a 1-nanosecond delay to the UART I/O latency to regulate debug console output timing during bare-metal execution. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment Tip You can customize the high-level summary generated by CodeRabbit.Configure the |
Change-Id: I066e3c04be47b2f20da2e3601c6476bfb4292d82
8b9ef91 to
a66fa98
Compare
🚀 Coremark Smoke Test Results
✅ Difftest smoke test passed! |
|
[Generated by GEM5 Performance Robot] Align BTB PerformanceOverall Score
|
1 similar comment
|
[Generated by GEM5 Performance Robot] Align BTB PerformanceOverall Score
|
Summary
1nsinmakeXiangshanPlatformSystemprintf/console output from dominating short bare-metal runsMotivation
On local macOS runs, short bare-metal workloads such as CoreMark can spend a disproportionate amount of simulated time in UART-backed console output. This makes
printf-heavy debug output distort IPC/CPI and overall runtime much more than desired for CPU-focused analysis.This change keeps the model simple and makes the console behavior closer to a fast debug channel, which is more aligned with how we use it in practice.
Validation
Ran:
Observed after this change:
simTicks = 199509624system.cpu.numCycles = 599129system.cpu.ipc = 1.107324system.cpu.cpi = 0.903078Compared with the original behavior, the short CoreMark run spent substantially less time in console-related UART accesses.
Summary by CodeRabbit