Hyper Linux Kernel For Fedora 45

Hi guys, I’ve been using Fedora 45 beta since it was released and wanted to share with you guys a little gift, and also get your ideas, on high performance (maximum performance) kernel/system configurations

This is my Hyper Kconfig that I use to maximise performance, actually for regular desktop usage, and as well as building programs from source such as the linux kernel. It includes basic hardening where there isn’t a performance tradeoff, and otherwise seeks to simply maximise performance to the greatest extent possible.

Sometimes I go in and manually modify the Makefile or add patches, but generally I just use the default facillities for modifying the kernel through make menuconfig

It could be improved a lot more, and fine tuned for a specific system, but this is the generic Hyper Kernel config, based off the stock Libre-Linux Kconfig that comes with Trisquel, which I build routinely across all of the different linux distro’s, and it is a real “Hyper” kernel.

This one sets the timer frequency to 100hz, if I’m gaming I prefer 1000hz then combined with the low latency or real time scheduling, but right now since I’m mostly building things like the linux kernel from source, I put it at 100 or 300 hz, and use normal scheduling.

Also I always use periodic timer ticks, and do lots of different things that have become a habitual ritual for me now, whenever I → build a new linux system → configure everything from the ground up → build a new linux kernel/drivers.

I have taken to ignoring a lot of the driver options, so it includes all the support for devices/hardware common in default kernels shipped by mainstream distributions, but I do go all around and disable things, such as verbose error reporting. I made some notes about it here.

notes!: started with stock libre-linux kconfig from trisquel, dependencies for building the kernel on fedora here https://docs.fedoraproject.org/en-US/quick-docs/kernel-build-custom/, the root account enabled, and libre-linux-7.2 here https://linux-libre.fsfla.org/pub/linux-libre/releases/LATEST-7.2.0/linux-libre-7.2-gnu.tar.lz

make olddefconfig

make menuconfig

I start from the bottom and work my way up (the notes are kind of mixed up)

disabled all options for security/mitigations/virtualization and kernel hacking, except for a few that boost performance

turned off support for network file systems

turned off the watchdog

turned off network block device support

turned off debugging all over the place

  • advanced error reporting/verbose error reporting

turned off all hotplug support

turned off all tracking/auditing

left the default device support options that are common to debian/ubuntu/fedora ect

turned off macintosh/microsoft/chrome device drivers

turned off tablet/joystick device drivers

left networking at defaults, disabled net flow limit, byte queue limits and networking cgroups, and receive packet steering

disabled all memory security/randomization/overhead

turned off all poisoning/injectors

turned off some statistics gathering that I thought was superfluous

disabled suspend/hibernate, power-efficient by default,
set default cpufreq governor to performance

disabled linux guest support

disabled flexible return and event delivery, default low
memory corruption check, enabled ibt, enabled tsx

set the timer frequency to 100 hz

disabled high resolution timer support, enabled periodic timer ticks

disabled all cgroup support except for the cpu, and a bunch of different things

make -j$(nproc) && make modules && make modules_install && make install && sync

Its a real Hyper system like I said, but lacking security mitigations that are standard, requires extra precautions, like refusing to install software on the system, or access untrusted resources on the web, and maintaining backups of the base system prior to installing any major software packages.

The libre-linux kernel is a deliberate, and has become a standard choice for me, that I find is a major improvement to performance. There are also obviously patches that could be included, such as from cachy-os. It has room for lots of improvement, that is pretty easy to perform.

Some workarounds I’ve learned to use while using this specific kind of configuration include adding reboot=cold to the kernel command line, and running sync routinely, after any major changes to disk drives, as well as avoiding rebooting/shutting down generally, and instead using sudo poweroff which includes sometimes manually clearing power cells which sometimes presents issues. That even includes removing the cmos battery, or using the physical power switch, while the system is still plugged in, and pressing + holding down, the power button.

It’s very fast and zippy without any standard mitigations, so ensuring proper shut downs / start ups, is the lone caveat over all, and obviously it can be configured to an even greater extent in order to improve performance.

On Fedora 45 it’s raging fast, like a sports car, and really enjoyable, so I thought I would share it with you guys, and see if Fedora has any tips/hints or inclusions they would recommend to add to the Hyper Linux Kernel.

you have to install lzip, and the prerequisites for building the kernel listed at the top of the wiki post linked above, but other than that, I made it very generic like a stock distro kernel config, so everyone should be able to use it.

this is the .config file that goes into the linux kernel source directory, it’s sort of hard to upload here, I tried a bunch of different distro pastebins, but it’s such a large text file, so I ended up using pastebin

(ill just add I wouldn’t dream of using anything else available on the internet in terms of a high performance kernel, other than patches+configuration tweaks)

It is tested and working on Fedora 45 beta, debian 11-14, Ubuntu/trisquel, slackware current, it obviously assumes some things like tweaking the bios/uefi disabling virtualization, but sometimes I turn on virtualization in order to put the web browser into a container, or other operating systems, and it’s a little less quick then. The basic default configuration disables virtualization.

(edited it a little bit again, to make it smaller, disabled wifi powersave mode by default, and improved it again slightly)

It’s basically my own personal Linux bonsai tree, I am constantly improving