Commit Graph

64 Commits

Author SHA1 Message Date
Tk-Glitch
5c3621fc6a Remove NR_CPUS prompt and use defconfig's default if the value is empty instead of an enforced 128. 2022-12-22 15:37:24 +01:00
Tk-Glitch
348f3c9bb6 Add an option to clone the source in tmpfs everytime instead of using the root PKGBUILD dir. This effectively brings back a similar approach to makepkg in the way of handling git sources.
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.
2022-12-21 21:52:07 +01:00
Tk-Glitch
367925c322 linux 6.1.y: misc_additions: Get rid of Bluetooth: fix deadlock for RFCOMM sk state change and x86/split_lock: Add sysctl to control the misery mode. The latter will be added to community patches instead and we'll now pass split_lock_detect=off by default to the command line. We'll see how the situation pans out and adapt as needed. 2022-12-16 14:00:36 +01:00
nepnep1111
de5400ddde Update CPU opt lists to include raptorlake, meteorlake, and zen4 (#658)
* Fix config file architecture opt listing

* add raptorlake to supported cpu opt
2022-12-06 19:01:19 +01:00
Tk-Glitch
f5cd3ea3b3 cfg: Enable _random_trust_cpu by default
See https://github.com/Frogging-Family/linux-tkg/issues/646
2022-11-22 14:30:54 +01:00
Tk-Glitch
081d3097a0 cfg: comment: Add "torvalds" as possible _git_mirror value
Following https://github.com/Frogging-Family/linux-tkg/pull/642
2022-11-07 15:21:33 +01:00
Vasiliy Stelmachenok
16c81fb013 Clarify the description of the tickless parameter (#636) 2022-11-02 13:49:58 +01:00
Tk-Glitch
3bfe0af945 Change _timer_freq defaults. While muqss keeps its 100 Hz default just like tt stays at 1000 Hz, CacULE now defaults to 2000 Hz, and all other CPU schedulers will now default to 1000 Hz.
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.
2022-09-30 15:55:55 +02:00
Adel Kara Slimane
59afa4083c use git for kernel sources & improved CI workflow (#591)
* 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>
2022-09-22 16:17:05 +02:00
Tk-Glitch
fc970e6367 Explicitly disable bcachefs by default and add warnings in both the prompt and config file
See https://github.com/Frogging-Family/linux-tkg/issues/550

Kinda fixes https://github.com/Frogging-Family/linux-tkg/issues/550
2022-08-12 18:46:00 +02:00
Tk-Glitch
c4de67201c If _NR_CPUS_value isn't set or empty, prompt about using the current host's threads count. 2022-08-12 18:41:20 +02:00
Tk-Glitch
c376e8a00f cfg: Apparently nproc --all can report more cores than we want. A simple nproc call works. 2022-08-10 20:40:12 +02:00
Tk-Glitch
d81094d121 cfg: Add a note regarding usage of "$(nproc --all)" 2022-08-10 19:49:28 +02:00
Tk-Glitch
54246af5fe cfg: Make NR_CPUS customizable, and default to 128. With EPYC users around, we might as well use that instead of our previous 64 default. 2022-08-10 19:30:56 +02:00
hurrhnn
f1dfabb6a9 cfg: add 5.19 to kernel version list (#560) 2022-08-02 11:33:54 +02:00
Tk-Glitch
0b7d3b9bd8 Add a comment regarding MGLRU's benefits 2022-07-24 14:03:59 +02:00
Tk-Glitch
a94830eb4a linux518/519: Add MGLRU patchset on a toggle and enable by default - https://lore.kernel.org/lkml/20220706220022.968789-1-yuzhao@google.com/
We've been offering the patchset in community patches for a while now with very good feedback
2022-07-24 14:01:16 +02:00
Daedalusspacegames
5b8ff011c7 Enable TT for 5.19rc and TT High HZ patch for 5.15 (#538)
* Enable TT for 5.19 and TT High HZ patch for 5.15

* Reset config from testing
2022-06-14 16:23:53 +02:00
FintasticMan
174fdd1677 cfg: Add 5.18 to kernel list (#521) 2022-05-24 23:56:08 +02:00
Tk-Glitch
8fe9578948 cfg: Update the CPU compiler optimizations list to include "sapphirerapids", "rocketlake" and "alderlake". Those are supported and already listed in the dynamic prompt, so let the user know.
Fixes https://github.com/Frogging-Family/linux-tkg/issues/516
2022-05-16 18:45:44 +02:00
Dmitry Skvortsov
08b1f742a4 Update winesync patches (#503) 2022-05-03 15:29:04 +02:00
Tk-Glitch
b357a8c048 Disable winesync support
Likely to be removed down the line. The DKMS version gives more flexibility and is less user-error prone.
2022-04-12 01:00:37 +02:00
Tk-Glitch
8d152d2809 Add 5.15-5.17 as available options in .cfg 2022-03-24 18:42:53 +01:00
Tk-Glitch
f315cc3682 Put Clearlinux patches behind a toggle in .cfg, allowing them to be disabled 2022-03-16 12:21:41 +01:00
Tk-Glitch
effb462269 Disable cacule RDB by default
Fixes https://github.com/Frogging-Family/linux-tkg/issues/431
2022-03-05 18:44:56 +01:00
X9VoiD
07503204b4 Add support for RT patches (#380)
* Add support for RT patches

* Disallow other CPU schedulers on PREEMPT_RT
2021-12-12 15:18:48 +01:00
Tk-Glitch
327751a40e Get rid of profiles. We might add some form of unattended profile down the line, which will be common for AMD/Intel CPUs. 2021-11-25 17:17:18 +01:00
Dmitry Skvortsov
45517faaf9 Correct applying fsyncs patches on kernels 5.12 and below (#350)
* prepare: Fix missing of futex_waitv patches for kernel 5.12 and below

* cfg: Minor message/comment tweak
2021-11-08 20:38:36 +01:00
Tk-Glitch
caad3e526d linux514/515-tkg: Add an alternative fsync (FUTEX_WAIT_MULTIPLE) patchset that can be enabled alongside futex_waitv to have a fallback path on Proton/wine builds using the older Fsync implementation. Thanks to Kisak for reaching out to me and sharing the ideas and patches. 2021-11-03 18:56:32 +01:00
Dmitry Skvortsov
ecfb6fed4c linux513/514/515-tkg: Add futex_waitv() patchset from 5.16 as a toggle option (#342)
* linux513/514/515-tkg: Add futex_waitv() patchset from 5.16 as a toggle option

Not enabled by default since this make currents public Wine/Proton builds with old fsync interfaces broken.
https://github.com/ValveSoftware/wine/pull/128
https://github.com/andrealmeid/futex_waitv_patches

* Minor message/comment tweaks

Co-authored-by: Etienne JUVIGNY <ti3nou@gmail.com>
2021-11-01 19:16:47 +01:00
James Beddek
987eeca6b2 prepare: allow forcing LLVM_IAS (#314)
Signed-off-by: Theo Anderson <telans@posteo.de>
2021-10-05 11:53:14 +02:00
James Beddek
ea5b1b4b48 prepare: allow choosing oldconfig as the .config updating tool (#315)
* 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>
2021-09-29 20:11:07 +02:00
Adel Kara Slimane
05f874d877 Use Arch config by default + state when config_hardened is used (#305)
* 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>
2021-09-21 12:20:35 +02:00
Adel Kara Slimane
00948fcff0 install.sh: improve Generic code path + Gentoo + tmpfs install (#304)
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
2021-09-18 16:00:05 +02:00
Tk-Glitch
93f0a4cf5e Disable _winesync by default instead of prompting. Also add a bit more details in the heading comment to mimic what the prompt did. 2021-09-08 13:20:59 +02:00
Yash Karandikar
0eaf5ba619 Add 5.14 to allowed versions (#302) 2021-09-05 14:45:13 +02:00
Tk-Glitch
17cc9f101b linux513-tkg: Update CacULE CPU scheduler patchset, introducing merged RBD
Added related options to .cfg
2021-08-15 19:44:03 +02:00
Tk-Glitch
cec8fc00ad cfg: Add a note regarding _anbox option being incompatible with 5.4.y
https://github.com/Frogging-Family/linux-tkg/issues/285
2021-07-23 20:16:14 +02:00
lordkitsuna
e9ece39ace Make vmlinux stripping optional (#265)
* Update PKGBUILD

* Update customization.cfg

add option to toggle vmlinux stripping

* Update customization.cfg

* Preserve the message about stripping vmlinux

Co-authored-by: Etienne JUVIGNY <ti3nou@gmail.com>
2021-06-17 12:51:11 +02:00
Tk-Glitch
9d3dc031ef Add a warning about clang LTO usage 2021-06-03 13:15:52 +02:00
Adel Kara Slimane
dea8847167 Various refactorings + Enable Clang LTO (#248)
* 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>
2021-06-01 20:14:47 +02:00
Koopa
6f71f4635e prepare: Prevent config prompt w/ modprobed-db. (#251) 2021-05-31 13:26:38 +02:00
Tk-Glitch
50672b9f51 cfg: Add missing kernel versions and cpu schedulers to their respective comments 2021-05-31 13:24:37 +02:00
Tk-Glitch
db16339ccd Remove voluntary_preempt, OFenable and disable_acpi_cpufreq options
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.
2021-05-31 13:23:50 +02:00
Tk-Glitch
4307fc377d cfg: Enable fsync & futex2 by default 2021-05-30 20:55:24 +02:00
Tk-Glitch
8140128777 Handle CacULE's 2000Hz tickrate option 2021-05-30 20:29:53 +02:00
Adel Kara Slimane
54c74a72c3 Fix: make Arch be able to use _configfile (#239)
* 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.
2021-05-17 16:42:40 +02:00
Tk-Glitch
9520c8aba8 config: Add a note regarding profile settings overriding user settings
https://github.com/Frogging-Family/linux-tkg/issues/238
2021-05-02 15:32:02 +02:00
Adel Kara Slimane
89cd81e726 install.sh: Add convenience script for generic install (#227)
* install.sh: simplify ccache code

* install.sh: add generic distro install

* README: update with Generic distro install

* install.sh: update help messages
2021-04-30 18:32:30 +02:00
Adel Kara Slimane
e7d97fc497 install.sh: improve git fetching and stop producing source code packages (#222)
* 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
2021-04-16 21:09:21 +02:00