Well, I have to give cpuset a try yet, but I have been comparing 2.8.2-rt vs 2.8.2-rtpreempt and Debian vs Devuan. I guess cpuset will have to wait until next weekend. I have been reading linuxcnc script so I have now a guess on how the different parts of it could be launched.
Test computer is an HPCompaq 5850 MT, Athlon 64 X" dualcore, with an almost useless BIOS.
My boot line has nowatchdog usbcore.nousb acpi_irq_nobalance isolcpus=1 idle=poll in all cases. The usbcore.nousb part for sure seems to be useless after you work your smp-affinity but I maintained it just because the first test had it. nowatchdog has quite good effects once system's load gets up. I need idle=poll because this computer BIOS doesn't allow you to set anything related to C-states.
Devuan 3 Beowulf is Debian Buster without systemd/pulseaudio. I hate systemd's guts and pulseaudio is his closest friend. What I did on Devuan is just installing the basic system utilities, then a very basic Xorg server, with just WindowMaker window manager and xterm, then installed linuxcnc kernel and application.
Both Devuan Beowulf and Debian Buster let me down when doing update-grub if there was more than a system installed, I don't know where the grub.cfgs are gone but I know for sure that I needed to edit the boot line at boot time in grub itself
With 2.8.2-rtpreempt on both Debian and Devuan, I noticed that, even with isolcpus=1 on the boot line, my NIC (driver tg3, and probably others like USB) was sending IRQs to cpu 1. So latency tests were bad, well over 100 usec, reaching even 600-800 usec latency in just a few minutes. I needed to put at work an smp-affinity script along the lines of this
post
. I just stripped the ubuntu parts and placed it on /etc/rc.local on Devuan so it is executed at boot. On Debian, where systemd has to control the rackets, that's just bad practice. So I just execute it myself before launching latency-histogram with "taskset 1 latency-histogram". Then results are quite good enough to do software stepping, just a little over 25 usec on Debian and a little under 20 usec on Devuan.
2.8.2-rt worked wonders for me. No need to do nothing once you have isolcpus=1 on your grub boot line. Without it, it hangs wonderfully. Latency results are almost the same thing on Debian and Devuan, about 5 usec. I'm still dazzled. I noticed than the system load and memory consumption were better on the light weight Devuan system, let's say about half the RAM and 40% less load.
Debian Buster 2.8.2-rtpreempt with no smp-affinity work
Debian Buster 2.8.2-rtpreempt with retouched smp_affinity
Debian Buster 2.8.2-rt
Devuan Beowulf 2.8.2-rtpreempt
Devuan Beowulf 2.8.2-rt