-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Description
The logger subsystem needs architectural improvement to reliably handle concurrent output from M-mode and U-mode tasks.
These issues were identified during U-mode(#62) and PMP(#32) development:
- Output Interleaving due to Unprotected I/O Loops #64
- DoS vulnerability in
sys_tputsthrough unboundedNOSCHEDblocking #65 - Non-monotonic output timeline in mixed M-mode/U-mode execution #66
These issues are not independent bugs—they stem from a fundamental design tension: async logging via ring buffer and direct UART output via sys_tputs coexist without synchronization. Patching any single issue in isolation is likely to require changes that affect the others.
A proper fix will involve rethinking how output paths interact, which means the logger architecture needs refactoring. This issue tracks the overall effort.
Acceptance Criteria
- All three issues (Output Interleaving due to Unprotected I/O Loops #64, DoS vulnerability in
sys_tputsthrough unboundedNOSCHEDblocking #65, Non-monotonic output timeline in mixed M-mode/U-mode execution #66) are resolved - A dedicated test application validates concurrent output behavior
- No output interleaving when multiple tasks print simultaneously
- Output from M-mode and U-mode tasks appears in execution order
Metadata
Metadata
Assignees
Labels
No labels