How to 'test' if kernel is truly PREEMPT=FULL and threadirqs?

Hello there good folks,

Still a newbie in the Linux world. I’m working under Silverblue / Kinoite and I’m focused on audio work, where realtime processing is of prime importance. I’m hoping to achieve as low as latency as I can muster from my machine, for live audio play and processing. Now of course I use my machine for other things too, so I don’t want to go full RT kernel (which I have to custom compile it and then install it through rpm-ostree, which is a huge pain).

The idea is to enable the following two parameters: PREEMPT=FULL and GRUB_CMDLINE_LINUX="threadirqs".

The first parameter I added through rpm-ostree: rpm-ostree kargs --append preempt=full.
The second one I added in GRUB: nano /etc/default/grub and then added GRUB_CMDLINE_LINUX="threadirqs".

However, I can’t figure out how to figure out if these are applied at all.
When I go uname -a is still says:

Linux [hostname] 6.6.8-200.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 21 04:01:49 UTC 2023 x86_64 GNU/Linux

i.e. PREEMPT_DYNAMIC instead of PREEMPT (or should it print PREEMPT=FULL or nothing at all??)

Is there a way to figure out if these are applied at all?

Thanks,

  • A
1 Like

You can look at dmesg and see…
dmesg | grep Preempt Not sure on threadirqs, but dmesg is a likely choice, perhaps somewhere in sysfs. I haven’t run it.

preempt=none interestingly caused something to break in dmesg about a week ago for me that I only saw with none (I usually do full or leave it default but never saw a difference regardless :stuck_out_tongue:); iirc it implied preempt has to be enabled or may be expected on Fedora. The above dmesg grep works to check what’s reported, but I’m not sure how to truly see what’s different with that or threadirqs.