4 ms·
That's not quite true. It's not solely because seL4 does little. seL4 maintains low interrupt latency through "preemption points" - basically points where the k
by msjyoo 7y ago
That's not quite true. It's not solely because seL4 does little. seL4 maintains low interrupt latency through "preemption points" - basically points where the kernel can and can only context-switch while maintaining global consistency.
Keeping in mind I'm not an expert on this, I dug up these papers when I was vaguely looking, they may be useful to you:
"Improving Interrupt Response Time in a Verifiable Protected Microkernel"
https://ts.data61.csiro.au/publications/nicta_full_text/5391.pdf https://ts.data61.csiro.au/publications/nicta_full_text/5391...
"To Preempt or Not To Preempt, That Is the Question"
http://ts.csiro.au/publications/nicta_full_text/5859.pdf http://ts.csiro.au/publications/nicta_full_text/5859.pdf
- repolfx 7y agoThanks, that's super helpful.
- snvzz 7y agoAIUI there's only one such preemption point, in some resume-able operation to do with cleanup. Every other operation is short enough. Thus interrupt latency is guaranteed to be very low, even if the interrupt happens while the microkernel is running. It is my intuition that the "it's not a RTOS" has to come from something else, like some non-implemented API that's expected in an RTOS or the like. The required services might actually be implementable as non-privileged tasks.
- repolfx 7y agoMaybe it's just slight conservatism. If all existing RTOS' have pre-emptible kernels and yours doesn't, perhaps you'd rather let the market decide you've built an RTOS rather than stating you have and risking an argument over terminology.