SBI Supervisor Software Events
summary
Adds an SBI extension that injects high‑priority supervisor events from M mode that preempts all traps and interrupts by diverting execution to an SSE entry context and later resuming via an SBI completion call. Proof‑of‑concept uses Spike and kernel patches (≈0x1f000 lines of C across kernel and PSBI/OpenSBI pieces), targets PME overflow and RAS faults, and shows faster delivery with reduced instructions from ~1,600 to ~800 for the PMU case. Works but needs register‑save ABI, task‑location annotations, nesting/priority rules, and SBI support; spec is under review.
AI-written summary · about
chapters (21)
- 0:00Introduction to SBI
- 1:23How supervisor software events work
- 3:10Event priorities and nesting
- 5:39Pros and cons of SBI vs PMU
- 8:06Retrieving current task in exception path
- 10:49ABI and register saving concerns
- 12:15Performance measurements and proof of concept
- 13:46Current status and timeline
- 14:06Q&A: Jitter and interrupt handling
- 15:30Q&A: Pseudo NMI vs SBI events
- 16:35Q&A: Exception path and interrupt masking
- 17:23Q&A: Software simulation and testing
- 19:07Q&A: Handling R errors during execution
- 19:49Q&A: ABI stability and future evolution
- 20:32Q&A: Programmatic annotation of events
- 21:15Q&A: ABI violations and TP usage
- 22:19Q&A: Finding task struct locations
- 22:41Q&A: Preemption and nesting of S events
- 23:45Q&A: Debugging and backtrace support
- 24:47Q&A: Use case for critical section profiling
- 25:08Q&A: Potential breaking changes
related talks
17mSBB: Eliminating Centralized Bottlenecks in Userspace Network Runtime
27mMitigating speculative execution attacks with ASI - follow up
26mReinventing Seccomp for Fun and Profiles
16mHarvesting Memory-bound CPU Stall Cycles in Software with MSH
30mScheduling at Scale: eBPF Schedulers with Sched_ext
39mCPU isolation vs jailbreaking IPIs
32mIsolation aware smp_call_function/queue_work_on APIs
32mIntroducing In-Kernel PSI Auto Monitor Feature
