A bit later - the results of that ps/grep command are vastly different when booted with threadirqs so I guess it needs to be added to kernel line in /etc/default/grub to be active. I'm not sure how much effect it will have or how to measure it.
I also just disabled Intel C-States before this and got a marked improvement in threshold of xruns measured with xruncounter. From:
Code: Select all
in complete 27 Xruns in 41407 cycles
first Xrun happen at DSP load 79.73% in cycle 36483
process takes 8.29ms from total 10.67ms jack cycle time
To:
Code: Select all
in complete 3 Xruns in 45753 cycles
first Xrun happen at DSP load 91.02% in cycle 42277
process takes 9.66ms from total 10.66ms jack cycle time
Last test for today, running xruncounter with threadirqs boot parameter seems to make a significant improvement again:
Code: Select all
Samplerate is 48000Hz
Buffersize is 512
Buffer/Periods 2
jack running with realtime priority
Xrun 1 at DSP load 99.35% use 10.38ms from 10.67ms jack cycle time
in complete 1 Xruns in 45677 cycles
first Xrun happen at DSP load 99.35% in cycle 45661
process takes 10.38ms from total 10.67ms jack cycle time
I don't think it can get any better than that! Will test another time with lower buffers. Kernel parameters:
Code: Select all
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_idle.max_cstate=0 processor.max_cstate=1 threadirqs"
Apologies to OP for hijacking this topic but hopefully some of the additional info is helpful.