It'll require ~20GB of space by itself, so if your tmpfs is in RAM, make sure you have enough free, and it's definitely not recommended to use this on a <32GB RAM machine.
Reportedly, multiple games (mostly Unity based, but not only?) are seeing much higher CPU usage at lower tickrates resulting in degraded performance when CPU bound.
300 Hz and less are the worst offenders, but 500 and 750 Hz are also affected to some extent. CacULE is seemingly less efficient than everything else and needs 2000 Hz to keep up in those scenarios.
OS (kernel, CONFIG_HZ) Min Average Max
Arch Linux (linux, 300 Hz) 81% 91% 96%
Arch Linux (linux-zen, 1000 Hz) 21% 25% 42%
Fedora Linux (linux (Default), 1000 Hz) 20% 25% 53%
1000 Hz isn't an issue on modern systems, but older or very weak CPUs (like Atoms) which aren't used for gaming might want to use lower values. Since our main target audience is gamers, it only makes sense to change the defaults here.
* prepare: auto-fetch latest versions + harmonize kernel version var
- Latest version is fetched from git: this prepares the road to
moving to git cloning and fetching
- Introduce the $_kver variable that follows a three digit
convention (e.g. '600', '519', '504') to enable comparing
simply between kernel versions
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* All distros: use git to fetch/update kernel sources
- Force git cloning `linux-tkg` so the patches and config
files are automatically checksummed
- Arch: remove all the sha256sums and source files and automatically
populate them on script run.
- Move git cloning/fetching script to 'prepare' script file
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* accept customization.cfg vars as env vars
This makes CLI way easier by enabling e.g.
_version="5.19" makepkg or
_version="5.19" ./install.sh install
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: better handle git remotes
now there's a dictionary that gives the list of remotes
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: add default git remote if not set or not recognized
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* customization.cfg: allow specific kernel versions
e.g. "6.0-rc4" or "5.10.51"
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* ci: improved workflow
1. Check periodically for newer kernels with git
2. If a newer kernel exists, with respect to l
latest Github release:
1. Build for cfs, pds, bmq for Arch
2. Make release
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: allow choosing oldconfig as the .config updating tool
Signed-off-by: Theo Anderson <telans@posteo.de>
* prepare: make oldconfig interactable
Signed-off-by: Theo Anderson <telans@posteo.de>
* prepare: fix config_hardened + make arch config default for all distros
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: pring message about using hardnened config file
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* README: update about the change with the default config file
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* install.sh: additional dependencies
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* Enable Clang LTO
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: improve kernel prompting and selection code
- Subversion are to be directly edited in the _kver_subver_map
variable at the top of the file
- _supported_kernels is theoretically not needed, but it's needed
for the prompting to happen with the correct order, since the
keys in _kver_subver_map are hash-ordered, which is not the
natural ordering
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: update comment
* prepare: improve compiler selection and LTO enablement code path
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* install.sh: use _prompt_from_array for distro selection
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: move optiprofile prompt to _prompt_from_array
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: improve cpu sched fallback code
* install.sh: move set -e at the top
* prepare: use arrays for HZ configs
* prepare: enable default selection in _prompt_from_array
* prepare: use _prompt_from_array for _rr_interval
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: update _rr_interval prompting
* prepare: update and use config script for tickless
* prepare: use scripts/config accross the entire script
* prepare: change last lines to scripts/config
* prepare: small fixes
* customization.cfg: revert back to old values for _tickless
* prepare: revert back to old numbering for _rr_interval
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: msg2 used _rr_interval
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: be smarter/dumber with _rr_interval
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: remove last manual interventions to .config
* prepare: fix condition
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: improve cpu march handling and implement prompt
Making `make` prompt wasn't working on my Gentoo for a
reason I don't understand anymore. The configs are unset
by the script. So it always goes for generic by default.
Maybe they need to be entirely deleted from the .config
file.
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: fix name for MuQSS.c
* prepare: use _sched for scheduler source code files
* install.sh: use sudo to clean root owned files in linux-src-git
* prepare: remove useless code
* prepare: fix issue with MuQSS
* Add CacULE scheduler
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* 5.13 rc4
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: Remove voluntary_preempt, OFenable and disable_acpi_cpufreq options
* prepare: Prevent config prompt w/ modprobed-db
Rebase of @CodingKoopa PR
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: Empty LOCALVERSION config option for Arch at the correct spot
@CodingKoopa spotted the issue and reported it, thanks!
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: use _enable _undefine and _disable wrappers
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* Restore the state tracker for makepkg usage
* Fix tickless array selection order for nohz idle/hz periodic
* Also handle the disabling part of the generic march selector
* Replace _undefine() calls with _disable()
* Preserve the case of config options passed to scripts/config
* Echo the CONFIG_EXPERT options without blank lines
And with a header/footer
Makes searching for config setting bugs easier
* prepare: uppercase config options with "tr"
Co-authored-by: Etienne JUVIGNY <ti3nou@gmail.com>
The last one is kinda broken, and the two others don't really have their place in here.
Also enable zfsfix by default and make it a legacy option we can move out of the main options.
* prepare: fix custom _configfile usage for Arch
* Remove yes from localmodconfig make call
* customization.cfg: tell that modprobed-db can prompt the user
* prepare: reset LOCALVERSION in .config to empty string
Using a kernelconfig.new with a LOCALVERSION set makes the script
set it twice in the package name.
* install.sh: improve git source code fetching
* install.sh: add install dependency for Fedora 33+
* install.sh, customization.cfg: cosmetic improvements
* install.sh: DEB, RMP: do not create devel packages.
They are not needed for DKMS
and that was the only point to why they were there to begin with