This commit is contained in:
Peter Jung 2022-04-20 20:38:53 +00:00
parent 8de6927049
commit 1e351890f9
No known key found for this signature in database
GPG Key ID: C3C4820857F654FE
2 changed files with 82 additions and 22 deletions

View File

@ -1,7 +1,7 @@
pkgbase = linux-cachyos
pkgdesc = Linux CFS scheduler Kernel by CachyOS and with other patches and improvements
pkgdesc = Linux CFS scheduler Kernel by CachyOS with other patches and improvements
pkgver = 5.17.4
pkgrel = 1
pkgrel = 2
url = https://github.com/CachyOS/linux-cachyos
arch = x86_64
arch = x86_64_v3
@ -64,7 +64,7 @@ pkgbase = linux-cachyos
sha256sums = 65ec9ac5b8b28d5b61df1c72498059be2e7cb1f9b965bac0e4ffed3c05520b2b
pkgname = linux-cachyos
pkgdesc = The Linux CFS scheduler Kernel by CachyOS and with other patches and improvements kernel and modules
pkgdesc = The Linux CFS scheduler Kernel by CachyOS with other patches and improvements kernel and modules
depends = coreutils
depends = kmod
depends = initramfs
@ -76,5 +76,5 @@ pkgname = linux-cachyos
provides = KSMBD-MODULE
pkgname = linux-cachyos-headers
pkgdesc = Headers and scripts for building modules for the Linux CFS scheduler Kernel by CachyOS and with other patches and improvements kernel
pkgdesc = Headers and scripts for building modules for the Linux CFS scheduler Kernel by CachyOS with other patches and improvements kernel
depends = pahole

View File

@ -24,7 +24,7 @@ _makenconfig=
# NUMA is optimized for multi-socket motherboards.
# A single multi-core CPU actually runs slower with NUMA enabled.
# See, https://bugs.archlinux.org/task/31187
_NUMAdisable=
_NUMAdisable=y
# Compile ONLY used modules to VASTLYreduce the number of modules built
# and the build time.
@ -52,12 +52,16 @@ _per_gov=y
### Enable TCP_CONG_BBR2
_tcp_bbr2=y
### Running with a 1000HZ, 750Hz or 500HZ tick rate
### Running with a 1000HZ, 750Hz, 600 Hz or 500Hz tick rate
_1k_HZ_ticks=
_750_HZ_ticks=y
_600_HZ_ticks=
_500_HZ_ticks=
##ä Choose between perodic, tickless idle or full tickless
### Full tickless can give higher performances in various cases but, depending on hardware, lower consistency. Just tickless idle can perform better on some platforms (mostly AMD based).
_tickrate=full
### Disable MQ-Deadline I/O scheduler
_mq_deadline_disable=y
@ -71,6 +75,7 @@ _lru_enable=y
_damon=y
_spf_enable=y
### Enable Linux Random Number Generator
_lrng_enable=y
@ -104,13 +109,14 @@ _zstd_compression=y
_nf_cone=y
## Enable it for compiling with LLVM and THINLTO
# Clang LTO mode, only available with the "llvm" compiler - options are "no", "full" or "thin".
# "full: uses 1 thread for Linking, slow and uses more memory, theoretically with the highest performance gains."
# "thin: uses multiple threads, faster and uses less memory, may have a lower runtime performance than Full."
_use_llvm_lto=
# Enable it for using the LLVM CFI PATCH for a better security
_use_cfi=
if [ -n "$_use_llvm_lto" ]; then
pkgbase=linux-cachyos-lto
else
@ -127,8 +133,8 @@ _stable=${_major}.${_minor}
_srcname=linux-${_stable}
#_srcname=linux-${_major}
arch=(x86_64 x86_64_v3)
pkgdesc='Linux CFS scheduler Kernel by CachyOS and with other patches and improvements'
pkgrel=1
pkgdesc='Linux CFS scheduler Kernel by CachyOS with other patches and improvements'
pkgrel=2
arch=('x86_64' 'x86_64_v3')
url="https://github.com/CachyOS/linux-cachyos"
license=('GPL2')
@ -141,10 +147,26 @@ _patchsource="https://raw.githubusercontent.com/ptr1337/kernel-patches/master/${
source=(
"https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.xz"
"config"
# "${_patchsource}/sched/0001-prjc.patch"
# "${_patchsource}/sched/0001-cacULE.patch"
# "${_patchsource}/sched/0001-bore-sched.patch"
# "${_patchsource}/sched/0001-tt.patch"
)
if [ "$_cpusched" = "bmq" ]; then
source+=("${_patchsource}/sched/0001-prjc.patch")
fi
if [ "$_cpusched" = "pds" ]; then
source+=("${_patchsource}/sched/0001-prjc.patch")
fi
if [ "$_cpusched" = "cacule" ]; then
source+=("${_patchsource}/sched/0001-cacULE.patch")
fi
if [ "$_cpusched" = "cacule-rdb" ]; then
source+=("${_patchsource}/sched/0001-cacULE.patch")
fi
if [ "$_cpusched" = "tt" ]; then
source+=("${_patchsource}/sched/0001-tt.patch")
fi
if [ "$_cpusched" = "bore" ]; then
source+=("${_patchsource}/sched/0001-bore-sched.patch")
fi
source+=(
"${_patchsource}/0001-arch.patch"
"${_patchsource}/0002-anbox.patch"
"${_patchsource}/0003-bbr2.patch"
@ -161,7 +183,6 @@ source=(
"${_patchsource}/0014-lrng.patch"
"${_patchsource}/0015-le9.patch"
"${_patchsource}/0016-ck-hrtimer.patch"
# "${_patchsource}/0017-FG-KASLR.patch"
"auto-cpu-optimization.sh"
)
@ -253,7 +274,9 @@ prepare() {
scripts/config --enable CONFIG_CFI_CLANG
fi
if [ -n "$_use_llvm_lto" ]; then
### Selecting the THIN or FULL-LTO compression level
if [ "$_use_llvm_lto" = "thin" ]; then
echo "Enabling highest ZSTD compression ratio..."
scripts/config --disable LTO_NONE \
--enable LTO \
--enable LTO_CLANG \
@ -262,6 +285,18 @@ prepare() {
--enable HAS_LTO_CLANG \
--enable LTO_CLANG_THIN \
--enable HAVE_GCC_PLUGINS
elif [ "$_use_llvm_lto" = "full" ]; then
echo "Enabling standard ZSTD compression ratio..."
scripts/config --disable LTO_NONE \
--enable LTO \
--enable LTO_CLANG \
--enable ARCH_SUPPORTS_LTO_CLANG \
--enable ARCH_SUPPORTS_LTO_CLANG_THIN \
--enable HAS_LTO_CLANG \
--enable LTO_CLANG \
--enable HAVE_GCC_PLUGINS
else
scripts/config --enable CONFIG_LTO_NONE
fi
### Optionally set tickrate to 1000
@ -331,11 +366,6 @@ prepare() {
echo "Setting performance governor..."
scripts/config --disable CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
scripts/config --enable CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE
echo "Disabling uneeded governors..."
scripts/config --disable CONFIG_CPU_FREQ_GOV_ONDEMAND
scripts/config --disable CONFIG_CPU_FREQ_GOV_CONSERVATIVE
scripts/config --disable CONFIG_CPU_FREQ_GOV_USERSPACE
scripts/config --disable CONFIG_CPU_FREQ_GOV_SCHEDUTIL
echo "Set PCIEASPM DRIVER to performance..."
scripts/config --enable CONFIG_PCIEASPM
scripts/config --enable CONFIG_PCIEASPM_PERFORMANCE
@ -343,6 +373,33 @@ prepare() {
scripts/config --enable CONFIG_PCIE_BUS_PERFORMANCE
fi
### Selecting between tickless idle, perodic tics or full tickless
if [ "$_tickrate" = "perodic" ]; then
echo "Enabling periodic ticks..."
scripts/config --disable CONFIG_NO_HZ_IDLE
scripts/config --disable CONFIG_NO_HZ_FULL
scripts/config --disable CONFIG_NO_HZ
scripts/config --disable CONFIG_NO_HZ_COMMON
scripts/config --enable CONFIG_HZ_PERIODIC
elif [ "$_tickrate" = "idle" ]; then
echo "Enabling tickless idle..."
scripts/config --disable CONFIG_HZ_PERIODIC
scripts/config --disable CONFIG_NO_HZ_FULL
scripts/config --enable CONFIG_NO_HZ_IDLE
scripts/config --enable CONFIG_NO_HZ
scripts/config --enable CONFIG_NO_HZ_COMMON
elif [ "$_tickrate" = "full" ]; then
echo "Enabling tickless idle..."
scripts/config --disable CONFIG_HZ_PERIODIC
scripts/config --disable CONFIG_NO_HZ_IDLE
scripts/config --disable CONFIG_CONTEXT_TRACKING_FORCE
scripts/config --enable CONFIG_NO_HZ_FULL_NODEF
scripts/config --enable CONFIG_NO_HZ_FULL
scripts/config --enable CONFIG_NO_HZ
scripts/config --enable CONFIG_NO_HZ_COMMON
scripts/config --enable CONFIG_CONTEXT_TRACKING
fi
### Enable KBUILD_CFLAGS -O3
if [ -n "$_cc_harder" ]; then
echo "Enabling KBUILD_CFLAGS -O3..."
@ -370,7 +427,7 @@ prepare() {
### Enable SPF
if [ -n "$_spf_enable" ]; then
echo "Enabling multigenerational LRU..."
echo "Enabling SPECULATIVE_PAGE_FAULT LRU..."
scripts/config --enable CONFIG_SPECULATIVE_PAGE_FAULT
fi
@ -515,6 +572,9 @@ prepare() {
scripts/config --disable CONFIG_SCHED_DEBUG
scripts/config --disable CONFIG_KVM_WERROR
echo "Enable CONFIG_USER_NS_UNPRIVILEGED"
scripts/config --enable CONFIG_USER_NS
### Optionally use running kernel's config
# code originally by nous; http://aur.archlinux.org/packages.php?ID=40191
if [ -n "$_use_current" ]; then