Commit Graph

82 Commits

Author SHA1 Message Date
Sravan Balaji
6ceb5c543b Switch to EEVDF CPu Scheduler 2023-11-18 19:18:23 -05:00
Sravan Balaji
3c5b13761c PDS Kernel Configuration 2023-11-16 08:05:37 -05:00
Tk-Glitch
a34e849715 Add OpenRGB patch locally and add a toggle in .cfg
https://gitlab.com/CalcProgrammer1/OpenRGB

We'll get rid of the userpatches for it in community-patches in favor of this local option. It's been offered for a while, and our oldest "supported" kernel has it. Since there's no plan to drop it, it makes more sense to have it locally.
2023-11-14 11:40:35 +01:00
kylon
f92d4ed9ca Docs, prepare: EEVDFfy (#844)
* Docs, prepare: EEVDFfy

* 6.6: add glitched eevdf additions

* apply comments

* more comments

* comments
2023-11-14 10:12:40 +01:00
Yifan Zhu
097c2ed1b5 Correct comments for modprobed.db option (#823)
Prompting at build time was removed in commit 1a69f04e6e

Co-authored-by: Yifan Zhu <fanzhuyifan@gmail.com>
2023-10-09 22:11:00 +02:00
Adel Kara Slimane
1a69f04e6e Add _kernel_on_diet customization option (#805)
* prepare: remove prompt for modprobed.db

it's an advanced feature, we don't want to prompt it
just like with TCP congestion algos

* add "_kernel_on_diet" customization option

A little less sugar intake is always welcome
this option hopefully helps with building kernels in github ci

* prepare: fix typo in var name $_where

the underscore was forgotten all this time...

* ci: enable _kernel_on_diet

* ci: move away from deprecated feature

the new approach is better actually too
https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
2023-09-05 01:33:52 +02:00
Tk-Glitch
ca58ae7353 Allow disabling glitched-base patchset 2023-09-02 04:49:33 +02:00
kylon
98657d2f4f Add bore-eevdf scheduler (closes #794) (#800) 2023-08-31 17:10:23 +02:00
kylon
e543974c90 Remove anbox option (#799)
* Remove anbox option

officially no longer active since months.
basically no longer active since ages.

an alternative is available and in active development (also recommended by anbox), no need to keep this here

* Add Waydroid support

---------

Co-authored-by: gituser <nore@nop.np>
2023-08-31 17:04:15 +02:00
kylon
7b4bf31ffb Update user-patches and hardened config docs (closes #779) (#801) 2023-08-31 17:01:53 +02:00
Tk-Glitch
992735baee 6.4.y: Add EEVDF (Earliest Eligible Virtual Deadline First) scheduler from Peter Zijlstra.
Moved Zenify CFS tweaks to cfs-additions to prevent conflicts.

Squashed from https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/tree/?h=sched/eevdf&id=d07f09a1f99cabbc86bc5c97d962eb8a466106b5
2023-08-14 11:30:46 +02:00
Tk-Glitch
92281e4045 cfg: Minor adjustments 2023-08-14 11:22:58 +02:00
Dmitry Skvortsov
d638829538 fsync: Rename toggle options (#694)
changes that should bring clarity:
 - rename toggle option for fsync backport patches that was adopted
 in Linux 5.16. Keep enabled by default;
 - rename toggle option and file name for fsync legacy patches,
 known as "FUTEX_WAIT_MULTIPLE (opcode 31)";
 - disable deprecated "futex2_interface" patches by default.
2023-03-21 17:42:03 +01:00
Tk-Glitch
cf3ee4415a cfg: Enable _futex_waitv by default and move all the legacy or deprecated options to a "legacy options" section.
LTS-only options are considered as legacy
2023-01-29 17:06:48 +01:00
Tk-Glitch
5c7f413670 cfg: Add tt and bore to the cpu schedulers options comment 2023-01-14 18:17:48 +01:00
Tk-Glitch
a7110488dd Drop broken Void Linux explicit support. Void Linux users should use the Generic install as a replacement.
Fixes https://github.com/Frogging-Family/linux-tkg/issues/655
2023-01-14 16:26:31 +01:00
Tk-Glitch
3a62d00e93 Always create a subfolder for source and work directories with hardcoded names (linux-src-git and linux-kernel.git for source and work dirs respectively). If an absolute path is used, create a linux-tkg subdir to contain those. This allows using the same root path for both as well as defaulting to an empty value that mimics our previous behavior. The main motivation for this is to offer more safety as using an existing non-empty dir might result in unwanted behavior.
Fixes https://github.com/Frogging-Family/linux-tkg/issues/685
2023-01-09 17:43:24 +01:00
Adel Kara Slimane
a38ef1643c Improve customization of source and work folders (#672)
* customization.cfg: add new entries for kernel paths

Two choices:
- Where to put git bare repository,
  - Will be implemented as a bare repository, the folder will have only
    compressed blobs and will be around ~400MB. Should be good to have
    even in HDDs
  - This is meant to be in a permanent storage like HDD or SSD.
    But some uses could have it on a tmpfs if the storage is very slow
    when compared to a full git (shallow) clone
- Where to have the work/build folder
  - This will be implemented through a git worktree,
    where the bare repo will be decompressed. This is best on a tmpfs folder
    but needs >=32GB for a full kernel build. Otherwise should be okay with
    modprobed-db

* customization.cfg: remove obsolete entries

the tmpfs related entries can be set with the previously added entries,
i.e. _kernel_work_folder and _kernel_source_folder

* prepare: check if obsoleted vars get set, warn if so and exit

Like this users will get notified about the change and act accordingly

* prepare: remove unused kernel subver patching code

this used to bump from kernel x.y to x.y.z

* prepare: add func to define kernel abs paths

We will use these absolute paths to refer to kernel folders (work and source)

* prepare: rewrite git fetching code

- Rename to "_setup_kernel_work_folder"
- Now we simply fetch directly the "commit hash" / "git tag"
  from the user chosen remote, no branches
- The source folder (the one that is preferably on disk) is only a bare repo
  with a small size (~400MB)
- The work folder is then (re)created / updated (as need) as a git worktree

* prepare: tkg_patcher: embed patch name into the message

Otherwise it doesn't work on the install.sh approach,
which reimplements a simple msg2 function that doesn't support %s
replacement

* PKGBUILD: use new path variable for work folder

* install.sh: use new path variable for work folder

* CI: setup source and build folder in /tmp

* prepare: update diffconfig with new kernel work folder var
2023-01-04 15:27:41 +01:00
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