@Terence, that's good information. While you were comparing results, I was measuring the overhead of 1000hz vs 250hz.
With 250hz, the timer consumes about 2-3ms, every second. Increasing this to 1000hz almost quadruples it. At idle, the timer tick consumes 8ms/s, but 5ms/s when the system is under full load (highest frequency). 8ms is less than 1% of the cpu usage of one core on a processor.
On the flip-side, one change I made with switching to 250hz is to re-instate a sampling down factor on ondemand. While the system is idle, it consumes about 3-5ms/s worth of processing to determine the next frequency. While the system is under full load, or near full load, ondemand consumes less than 1ms/s.
One thing I was wondering if you could try is adding rqshare=mc
to your kernel parameters. Liquorix is currently configured with smt runqueue sharing, which improves throughput by looking for tasks in the order of cache locality. This might be influencing your underruns in a bad way.
Pinned Comments
damentz commented on 2020-08-31 15:22 (UTC) (edited on 2021-12-21 18:25 (UTC) by damentz)
Official binaries of linux-lqx, linux-lqx-headers, and linux-lqx-docs are now available: https://wiki.archlinux.org/index.php/Unofficial_user_repositories#liquorix
Signing key import instructions:
sudo pacman-key --keyserver hkps://keyserver.ubuntu.com --recv-keys 9AE4078033F8024D && sudo pacman-key --lsign-key 9AE4078033F8024D