I thought linux-cachyos was already built with LTO by default, why is there a seperate -lto package?
so far as i know it is only the suffix lto
I agree with you OP, cachy kernels are poorly documented, even the wiki or the github page of it lacks of the information, for regular users to understand the differences. All I know is that linux-cachyos uses BORE by default (but there’s also a sepearate bore kernel, just to further confuse users idk, why is there a separate for it, when the default kernel has BORE baked into), and that lto is something like clang optimized, whatever that means
So the only reason I just use the default kernel that came preinstalled with cachy, because of the poor documentation, and there are so many repeating questions by users here and on reddit such as yours and mine (why duplicate kernels and such, what’s the difference between all the editions) so the documentation has to be improved by a lot better (not meant to criticize ofcourse, just a kind feedback for the cachy team)
Think it does a pretty good breaking down what each version does.
https://wiki.cachyos.org/features/kernel/
Variants
CachyOS offers a diverse range of kernel options. All of the kernels we provide are shipped with the CachyOS Base Patchset. For each of the kernels, there is a corresponding
-ltovariant that is built with clang instead of GCC. Both the default and-rckernel are exceptions to this because they are built with ThinLTO by default and therefore has corresponding-gcckernel variants instead.
- linux-cachyos
- 1000Hz tickrate for improved responsiveness.
- Default kernel. This is the recommended kernel if you’re unsure about which kernel should be used.
- Uses the BORE scheduler.
- Built with clang and ThinLTO by default to produce more optimized binaries.
- Profiled with our own AutoFDO profile for improved performance. Script used to profile the kernel.
- linux-cachyos-bore
- Uses the BORE scheduler.
- linux-cachyos-bmq
- Uses the BMQ scheduler from Project C by Alfred Chen.
- Does not support sched-ext.
- linux-cachyos-deckify
- Default kernel for handhelds. It is not recommended and unsupported to use any other kernel on handhelds other than this kernel.
- Uses the BORE scheduler.
- Handheld specific patches on top of the base patchset to improve compatibility and overall experience on handheld devices.
- linux-cachyos-eevdf
- Tweaks the default kernel scheduler for improved responsiveness.
- linux-cachyos-lts
- Based on the latest Long Term Support kernel.
- Uses the BORE scheduler.
- Minimally patched compared to other kernels to ensure maximum stability.
- linux-cachyos-hardened
- Uses the BORE scheduler.
- Includes linux-hardened patchset.
- Kernel config based on linux-hardened config.
- Contains very aggressive hardening that significantly stifles performance and user experience.
- Does not support sched-ext.
- linux-cachyos-rc
- Based on the latest mainline kernel from Linus’s tree.
- Uses the BORE scheduler.
- Main kernel to introduce new features in our patchset.
- linux-cachyos-server
- Tuned for server workloads compared to desktop usage.
- 300Hz tickrate.
- No preemption.
- Stock EEVDF.
- linux-cachyos-rt-bore
- Real-time preemption.
- Uses the BORE scheduler.
I think this is where the confusion is coming from - this implies that any kernel with a -lto suffix is a) built with Clang and b) has LTO because, well, it’s in the name ![]()
So, if the default is a) built with Clang and b) has ThinLTO applied, then why have linux-cachyos-lto? Is it using standard LTO instead of thin LTO? Or does a -lto suffix just mean that it’s built with Clang?
@GRetriever see that’s the question ![]()
of why having different suffixed kernels then, if bore and lto is baked into the default - this isn’t properly covered on the wiki, that everyone already found btw…
Yeah that is what I was confused about. I am really just questioning why linux-cachyos-lto exists, since the documentation states that linux-cachyos is built with thinLTO by default. This means it is built with clang anyway.
Full LTO takes up much more time and memory while only providing a small peformance increase over thinLTO in most cases, hence why they build with thinLTO. Then it would not make sense to have the -lto package with full LTO, they could just do that from the start.
I wouldn’t make a big deal about it because they are just C compilers. If you want to go deep in the weeds and know what ThinLTO and LTO are, here is a blog post about it.
https://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html
the lto kernel is slightly smaler
╰─>$ pacman -Qi linux-cachyos | grep Installationsgröße
Installationsgröße : 146,96 MiB
┬─So 29.06.25 15:14 ~
╰─>$ pacman -Qi linux-cachyos-lto | grep Installationsgröße
Installationsgröße : 145,91 MiB
This is interesting. But I wish there is another version that is not that techie.
Something in simple English a non techie grandpa can understand, like this kernel offers that much speed and that much stability and that much security… etc. so the non techie user can decide what he needs.
Who knows or cares what is this scheduler or that, what does this or that really mean,
With all my due respect, I am not criticizing anybody or anything, on the contrary, I am enjoying CachyOS as I never enjoyed any other distro in more than a quarter a century.
I am just thinking loud with you guys, and I always care about non techie noobs.
I agree, most users are not privy to what these compilers do for optimizations. Even as a ex-programmer myself, x86 assembler, BASIC, C, and C++ background, I really don’t know exactly what they do to optimize beyond the basics like multiplication/division by shifting the bits since multiplication/division is slow if you use like a mul/div instruction on a integer, using bitwise xor to zero out a register, and some others for example.
Well, unfortunately when you get to the point where you are optimizing your kernel there are some “techie” requirements if you want to understand why one optimization might be preferred for your use case over another. Everyone has different use requirements therefore one set of optimizations may work better for one person when a different set of optimizations will work for another person’s use case. There are only two ways you are going to figure that out.
- you roll up your sleeves and dive into the “techie” pieces and learn about kernel optimizations, schedulers, compiler optimizations and understand the underlying technologies.
OR
- You utilize all of the work the CachyOS team has done to create a bunch of excellent choices and use the “CachyOS Kernel Manager” and install a couple different kernels and boot them up, run the apps you typically use for a day or two then switch to another one until you find the one that works for you best. This is the “non-techie” route.
At the end of the day for most people the linux-cachyos kernel is going to probably be the best for an overall multi-purpose desktop experience, however if you have a special use case or are trying to squeak out a tiny bit more performance in a particular work-flow/usage case then that is what the other choices are there for.
If you find that none of the available kernels are doing what you want then you pretty much are down to learning the “techie” stuff and customizing your own kernel.
hello, there are many configurations now , is it possible to detail the futur feature ?
addition question, is kernel-cachy-RC will have a specific with kernel -zen or not ?
thanks
What does LTO stand for?
Is or can LTO-Kernels be beneficiary for gaming or are they better for other applications?
When I read that some apps can have performance advantages in the double digits it intrigued me.
Link time optimization. Not that that makes it clearer, at least not to me ![]()
Please correct me if I am wrong but this is the timeline:
- linux-cachyos (CLANG compiler) and linux-cachyos-gcc (GCC compiler)
- additional linux-cachyos-lto (CLANG with experimental LTO)
- linux-cachyos-lto become linux-cachos (dropped the lto suffix, because it became default)
- linux-cachyos-gcc becomes linux-cachyos (GCC compiler is the new standard because of a NVIDIA driver issue) AND linux-cachyos-lto now is the former default built with LTO (but I am not sure if the other propeller optimizations are turned on)
Well, I’d like to know why too.
kernel that I’d compiled has -lto at its name end. So link time optimization for speedy compilation. I guess all kernels using lto for that purpose. But they have much more important things to be placed at their endings. -bore, -lts, -rc and so on.
for beter understand, the list of kernel could be in inside an array list , and dependency.
For kernel-Zen, what is take by defaulft (bore , rc, etc… etc
Confusion: The descriptions for linux-cachyos-gcc and linux-cachyos are identical.