Originally posted by Volta
View Post
Show me tested kernel config and show Windows results as well.
You can run cyclictest on your desktop or workstation yourself, with SCHED_FIFO policy. Leave it running in the background for a while (I recommend a week, but it is likely it will be immediately bad), and you'll see how bad Linux does.
I have verified it across a range of hardware, so you won't miss it. The only relevant column is the MAX one. The unit is microseconds. 2ms(2000) is more than enough to break pro audio, but you will eventually see it go above 20ms (20000). That is terrible.
Using the RT patchset fixes this problem, and peak stays reasonable.
Originally posted by sophisticles
View Post
Originally posted by poncho524
View Post
Soft RT is just about offering the mechanisms (such as realtime scheduling policies), and trying really hard to keep the latency low for realtime tasks. Linux offers Soft RT by default (posix realtime scheduling), but it isn't very good at keeping the latency down.
Hard RT is about formal verification that the deadline will never be missed. This cannot be done on Linux, due to its TCB size (covering the whole kernel, tens of millions of LoCs).
Few RTOSs actually have this formal verification. The best of which is seL4, which offers isolation (unlike the other verified ones) and formal proofs that extend far beyond any OS.
Soft RT is considered good enough for audio work, whereas Hard RT is for critical applications where people could die or millions could be lost if a deadline is not met. Linux is not suitable for those, nor are Windows or MacOS.
Dude. Windows has never been RT. Linux has always done better in this arena.
It behaves better (and so does NT) than Linux does without its RT patchset. For instance, Windows can handle realtime pro audio pipelines as-is, whereas Linux absolutely needs the realtime patchset.
You can easily verify this with the free tool DPC Latency Checker. The principle of operation is the same as cyclictest. It measures time from (scheduled, via timer) interrupt and when the ISR actually runs.
Windows is very good at never going above 500us, unless you have a bad driver, which is why the tool exists.
With the RT patches Linux is, however, even better than Windows at this, typically managing to keep max scheduling latency under 100us. Almost as good as AmigaOS was in the original Amiga computer.
Comment