Threaded interrupts. Microkernels, etc. Instead of stealing time, you schedulea
kpernel thread that waits for interrupt and carries on. Threads are preemptable.
Threads can have priorities against any other thread in the system. This is
good. Threads can sleep. No longer any need for deferred work, except special
cases. Thread is much easier to program.

Standard Linux performance bad. RT-PREEMPT performance even worse. 50ms latency
found, where there should be no latency.

UDP echo not getting enough time. softIRQ taking too much time.

Make echo a real time task. More then double our output. Still not ideal.
If you are going to drop packets they should be dropped early before you
do a lot of work of them.

Restrict work in SoftIRQ. Throughput is much better.

Safety feature in Linux. The machine stalls for 50ms every second. Run
timeshare process. If there isn’t one, run idle task 50ms. This means you can
get into a system even if 100% cpu used by real-time priority tasks.