linux-ck performance

I have been testing the linux-ck kernel already some weeks ago. I did not find any performance benefits with regard to speed and throughput so that I stopped the tests.

But now I have tested on my laptop and I was specifically testing latency or responsiveness. And I was really surprised how the linux-ck kernel is outperforming the manjaro kernel in this regard.

What did I do?
I was testing GUI responsivenes (XFCE, firefox, terminal) while my laptop was compiling a kernel. I did this test with manjaro kernel linux57 5.7.0-3 and with linux-ck-skylake 5.7.8-1 from

[repo-ck]
Server = http://repo-ck.com/$arch

The difference is significant.

With the manjaro kernel I can hardly work with the laptop while the kernel compilation is running. firefox start takes very long and it is basically not reponsive when it finally started. The terminal is reacting very slowly on mouse clicks and key strokes. Even canceling the compiler with control-C is only working after several retries and a long wait time.

With the linux-ck kernel on the other hand I can work with the laptop as if nothing is going on. The compilation is in the background, the fan is at 100 %, CPU temperature is at its limit (80 °C) but the system is fully responsive. Very impressive.

I am wondering what it that makes this kernel so responsive. Is it just the MuQSS scheduler for the CPU? Is that an option for the Manjaro kernel as well?

1 Like

For latency. Not sure if it will help some. But have you tried RT or realtime kernel?

You might want to test with 5.7.8 to make it a little more consistent, and the Skylake-specific optimisations will also help a little so if there's a "plain" version that might be worth checking too.

There's a number of patch-sets available out there and CK does a great job (I use the Liquorix kernel at work which pulls in the CK patches).

It would be interesting to build a more "vanilla" Manjaro kernel and include those patches to compare... :thinking:

CK patch-set adds MuQSS.

Always thought this scheduler should be the default in linux kernel.

Kernel scheduler is tricky at times. nvme ssd recommended to used none. Other computer systems will find adding different scheduler help speed thing.

That's IO scheduler. :wink:

1 Like

Do not get confused between i/o scheduler and process scheduler. MuQSS is a process scheduler. It has nothing to do with SSD, hard disc etc.

I am testing the liquorix kernel right now. It is working but I see a systemd error at boot time:

systemd[1]: Failed to find module 'autofs4'

Nevertheless, the autofs4 module is loaded:

1# lsmod | grep auto
autofs4                36864  2

Do you have any idea what is wrong here?

I had more luck with Alfred Chen's BMQ (now Project-C) scheduler.
However I don't use "pre-prepared" kernels from AUR and instead prefer to build my own with the relevant patches and configs.

It adds more than just the scheduler, it also patches other files to be more in compliance with the changes that the scheduler brings in.

Performance-wise, very little. IMO these optimisations mainly concern file size, i.e. they should be alittle smaller, unless you use -O3 as awell.

Been there, done that :wink: However it's been a while (5.4), so I won't post any numbers as they are surely a bit out of date.

What I can say though is, that my custom 5.7 kernel with BMQ and a few select other patches, all while maintaining most of Manjaro's config, is about 5% faster than vanilla Manjaro across the board, but due to these "other" patches it's not a really good comparison when it comes to the scheduler alone.


(Do not forget though, that you can also tune the included CFS scheduler towards less latency, see sysctl sched_latency, sched_min_granularity, sched_wakeup_granularity.)

1 Like

There's xanmod kernel including BMQ scheduler, but it's not enabled by default, should be configured prior to build.

torvic's kernel and a few others also have BMQ enabled by default.
We cannot complain about diversity when it comes to kernels :slight_smile:

In case of Manjaro, autofs4 is built-in and not a module, so maybe the error comes from there (speculation...)?

$ grep -i "autofs" config.x86_64                              
CONFIG_AUTOFS4_FS=y
CONFIG_AUTOFS_FS=y

In LQX config, both are 'm'.

Where are you getting this from? I could not find it.

Thank you for pointing this out. This is what I am doing now after I had bad experience with a frozen PC with xanmod kernel.

I am setting

kernel.sched_latency_ns = 6000000
kernel.sched_min_granularity_ns = 750000
kernel.sched_wakeup_granularity_ns = 1000000

This is 1/4 of the default values. Feels pretty good from a latency point of view.

EDIT:
But unfortunately these CFS settings do not help my laptop. It is still frozen for several minutes(!) while running a fio benchmark. This freezing is not happening with MuQSS scheduler from xanmod or liquorix kernels. What a pitty.

https://aur.archlinux.org/packages/?O=0&K=xanmod

Den xanmod kernel habe ich ausprobiert. Ist aber instabil bei mir:

PS:
Den BMQ scheduler habe ich bei xanmod aber nicht gefunden.

Forum kindly sponsored by