How does Liquorix compare with Zen?
immortal192
Status: New User - Welcome
Joined: 14 Oct 2015
Posts: 2
Reply Quote
I couldn't find a feature list for the Zen kernel that I could find for the Liquorix kernel. I was wondering mainly if Zen also uses BFS/BFQ. Also, does Zen have a good default configuration or just the very bare minimum that makes it not worth using over the stock Linux kernel?

From what little of what I've read, Liquorix has a tweaked configuration. A comparison made a redditor between the two kernels (https://www.reddit.com/r/archlinux/comments/3mefi0/cant_decide_between_linuxlqx_and_linuxck_kernel/cvecrl2) seems to indicate Liquorix is unnecessarily tweaked from the Zen kernel, which itself is already optimized in the general sense.

Not trying to generate any heat here--I'm an Arch Linux user and compiling the Liquorix every update is a bit tedious while there is a Zen binary available in the default repos. However, I've been told that that configuration that comes with the Zen binary is very conservative so I don't know if it's worth using Liquorix for a more optimized kernel.

Thanks.
Back to top
techAdmin
Status: Site Admin
Joined: 26 Sep 2003
Posts: 4012
Location: East Coast, West Coast? I know it's one of them.
Reply Quote
as far as I know, liiquorix is just the binary version of zen. damentz runs zen. He'll correct me if this is wrong.
Back to top
damentz
Status: Assistant
Joined: 09 Sep 2008
Posts: 885
Reply Quote
Hello immortal192,

I can respond to the differences reported on that post:

Compresses the kernel with xz instead of gzip, which is slower
Compression with 'xz' is slower, decompression is negligible and although, can be measured, is only noticeable on the most slowest of CPUs. The disk space reclaimed is more important, especially on smaller /boot partitions.

Does not include kdbus
kdbus is not ready yet, disabled because it causes problems on real systems: techpatterns.com/forums/about2464.html

Enables audit, slowing down all syscalls
This one I would like more information on, I believe this was turned on due to a user request but I don't remember the actual configuration option.

Enables NOCB for all CPUs, increasing RCU overhead
Per the options in the kernel configuration, this increases overhead but reduces OS jitter and is more appropriate for a real-time system (what we're aiming for here, a better experience). From the kernel documentation:

:: Code ::
Assuming that the kthreads whose names start with
"rcuo" are bound to "housekeeping" CPUs, this reduces OS jitter
on the remaining CPUs, but might decrease memory locality during
RCU-callback invocation, thus potentially degrading throughput.

Select this if all CPUs need to be no-CBs CPUs for real-time
or energy-efficiency reasons.


Enables the dubious user namespace feature
I also recall enabling this per a user request for a certain feature, I don't remember what it was though. Again, if I had the configuration option name I could probably chase down when I made the change and why.

Reduces stack protection (a bit more performance at cost of buffer overflow protection)
Basically, don't run Liquorix on your server. The gains you get using this kernel are more obvious on a desktop / laptop where you can _visually_ tell the difference in performance. Con Kolivas liked to call it the _feel_ of the system, but that's hard to measure thus was dismissed on the kernel mailing list multiple times, if I recall correctly.

Does not compress modules
I'd like to know the configuration option for this - I was unaware that you could actually disable / enable compression.

Raises CPU limit from 128 to 512
Per the kernel documentation, This is purely to save memory - each supported CPU adds approximately eight kilobytes to the kernel image. This option incurs 4mb of memory usage. If you need this memory, you already are having other problems, like what desktop environment you're running, the higher context switching rate on Liquorix than on the vanilla Linux kernel, memory usage by any other daemon on your system, etc. Basically, you would not be running Liquorix on a memory constrained desktop of this type, it would be unusable regardless of which kernel you used.

Disables memory compaction (needed for transparent hugepages)
To reduce stalls caused by memory compaction. Depending on your workload this can be a good or bad thing, but generally if you want something to run perfectly, any cleanup happening on the backend with the kernel can cause stalls to userspace. Best left enabled on a kernel used for a server.

Disables Kernel Samepage Merging (only used by VM hosts)
Almost zero gains on a traditional desktop. Also, there's a project in development that has made progress that does measurably reduce memory consumption with less CPU consumption here: kerneldedup.org/en/projects/uksm/. Unfortunately, my experience is that it destabilized the kernel and caused kernel panics. It was removed from Liquorix as fast as it was added.

Disables transparent hugepage support
Causes spikes in latency in specific workloads. This is not an option you would normally see on a workstation, but on a server doing heavy work. You can read more about my rationale and investigation here: techpatterns.com/forums/about2436.html

Uses HZ=1000 instead of 300 (irrelevant with modern machines)
I disagree with gitfeh's post; when booted with nohz=off, your system polls for interrupts at 1000hz. This is a setting that is recommended by Con Kolivas and was originally part of his CK patches. However, knowing that Liquorix may be used on a laptop, nohz is enabled by default. Again, you can disable nohz as a kernel parameter if you wish to have the lowest latency response to interrupts possible.

Comes with a different set of drivers
Hopefully more! A distro config means you support as much hardware as possible, you don't know what hardware one would want to entertain themselves or perform work on.

Disables the useful lockup and hung task detection
This is a debugging option, so it is disabled. Do not use this kernel on a production server.

Disables scheduler statistics (needed for latencytop)
This is a debugging option, so it is disabled. Do not use this kernel on a production server.

Enables SELinux, Intel TXT, AppArmor
Maintain compatibility as a distro configuration to user choices with security.

Defaults to SELinux
I believe this is a Debian default, but you still need to enable SELinux through userspace first.

Whew! Hopefully this helps answer your questions and you know enough to choose the kernel you want to use based on your needs. Also, more information / highlights of Liquorix are available on the front page, www.liquorix.net.
Back to top
immortal192
Status: New User - Welcome
Joined: 14 Oct 2015
Posts: 2
Reply Quote
Wow, that was insanely helpful--learned a lot about the kernel. Going to link gitfeh your comment just for sharing the reasoning behind your decisions.

I really appreciate the answers--it's hard to find stuff about the kernel in one concise place and to read about your justifications for liquorix. Thanks a lot!
Back to top
Display posts from previous:   

All times are GMT - 8 Hours