However, this got me wondering, is there exists any tool that can report the "numbers" (e.g., scheduling latency) regarding to the responsivenss? Maybe Google has such tool for testing regression for Android or Chrome OS, sadly, I didn't managed to find one.
Thanks!
- eBPF script: https://www.brendangregg.com/blog/2016-10-08/linux-bcc-runql...
- perf sched: https://www.brendangregg.com/blog/2017-03-16/perf-sched.html
- schedlat: https://tanelpoder.com/posts/schedlat-low-tech-script-for-me...
The last one (written by me) is using /proc/PID/schedstat pseudofile for monitoring % time spent in the CPU runqueue of a single process (not systemwide). I don't always have (root) access for running perf or eBPF scripts (or the old Linux/kernel version don't allow that). But I can still measure how much time a process on a request's critical path (like a RDBMS transaction log writer on commit) spent waiting to get back onto CPU before doing any work.
Like others have already said, the OS CPU queuing/scheduling latency is just one component contributing to the total responsiveness/reaction latency of your app.
I'd be curious to know your results regardless of the technique used.
[0] https://pavelfatin.com/typing-with-pleasure/ [1] https://github.com/pavelfatin/typometer
This is the goto tool for measuring SCHED_FIFO (realtime) scheduling performance. If you really care about responsiveness in a broad sense (not just user/GUI), this is likely to play some role your testing process.
It has the advantage of using game console joypads as inputs, and hacking them to read the buttons etc directly, i.e. without relying on USB. I imagine a specialized version that just sampled a mouse button would be more useful in the context of a computer running desktop apps.
Apologies if I completely misunderstood the intent of this post.
And afaik, the 'sauce' used in Liquorix is MuQSS, by Con Kolivas. But the project has been put on ice somewhat recently[0].
[0]https://ck-hack.blogspot.com/2021/08/514-and-future-of-muqss...
https://wiki.linuxfoundation.org/realtime/documentation/howt...
But beware, "scheduling latency" has very little to do with responsiveness as it would appear to a user of some desktop environment.
How much can you slow down a cpu anyway? Can you slow it to 1/10th its clock speed? I would think the best way to measure things like this is to slow down the overall system speed as much as possible.
You can also watch FPS of supertuxkart when the system is under load: https://www.youtube.com/watch?v=c5bAOJkX_uc https://github.com/hakavlad/le9-patch
But yes, we need a popular well behaved benchmark to measure desktop responsiveness.
Was mentioned on HN some time ago.