When on Fedora Linux, I run the XanMod kernel. So naturally, it has been on my to-do list to try XanMod on Clear Linux. One may not notice the difference between the two unless the system is under load. I tuned the XanMod kernel to behave more like a RT kernel with minimum impact to performance. This is what I prefer running a Linux desktop environment.
What follows are low-latency RT-Tests comparing the two kernels. How this works is that terminals 1, 2, and 3 run simultaneously. And terminal 4 is added to the mix for the 2nd run. I hit the up arrow and press return repeatedly until terminals 1 through 3 have completed.
The machine is a Threadripper 3970X box - 32 physical cores, 64 logical cores. Edit: I just learned that the dev-utils
bundle provides hackbench
and cyclictest
.
Hackbench1, Hackbench2, and Cyclictest (three terminal windows). The fourth window adds IO to the mix (total 4 actions running simultaneously).
$ numactl -C 0-31 ./hackbench -T -f 4 -g 8 -l 3000000
$ numactl -C 32-63 ./hackbench -T -f 4 -g 8 -l 3000000
# ./cyclictest --smp -p98 -m -D 40 -q # run as root
# run repeatedly as root (up arrow, press return)
sync; echo 3 >/proc/sys/vm/drop_caches; time ls -R /usr
Clear LTS 6.1.53
hackbench1 31.802s
hackbench2 33.828s
cyclictest max latencies (no IO)
25 31 18 17 31 38 22 17 20 15 19 23 22 23 15 12
35 78 51 15 13 17 19 16 21 26 12 16 54 19 47 54
18 22 19 19 14 63 10 11 10 14 15 16 13 14 14 15
9 21 23 19 14 11 10 25 18 22 11 25 80 20 101 30
cyclictest max latencies (with IO, sync-echo-ls -R /usr)
119 104 61 905 35 30 39 33 1442 80 24 29 21 33 52 17
60 15 40 33 90 69 82 81 23 37 32 60 14 10 40 46
30 23 37 28 12 59 21 30 21 17 15 66 47 30 14 17
28 16 10 16 84 60 49 57 48 36 218 28 18 107 18 17
sync-ls time: 12.182s under load
XanMod LTS 6.1.53
hackbench1 33.589s
hackbench2 35.385s
cyclictest max latencies (no IO)
25 19 30 24 20 24 19 23 14 16 21 14 18 20 15 24
21 25 11 21 14 15 20 13 8 15 14 13 51 14 16 19
18 17 19 15 18 13 26 15 14 16 13 20 71 10 12 8
49 17 11 17 14 11 11 9 13 25 9 25 7 98 26 15
cyclictest max latencies (with IO, sync-echo-ls -R /usr)
53 85 62 45 18 46 24 104 20 80 42 39 16 18 63 18
29 21 16 18 48 16 17 34 29 16 21 71 18 65 73 22
20 35 43 72 14 35 19 24 18 49 15 19 20 24 35 12
35 31 56 14 18 17 45 40 9 29 9 15 8 100 27 21
sync-ls time: 11.406s under load
Two things to notice here. The XanMod kernel has full-preempt enable. But, with minimal impact to performance. IO is faster possibly due to the kernel built for CPU v3 (x86-64-v3). The other thing to compare are the latency spikes during IO. The XanMod kernel persist in low latency.