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 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 pkgver = 5.17.4
pkgrel = 1 pkgrel = 2
url = https://github.com/CachyOS/linux-cachyos url = https://github.com/CachyOS/linux-cachyos
arch = x86_64 arch = x86_64
arch = x86_64_v3 arch = x86_64_v3
@ -64,7 +64,7 @@ pkgbase = linux-cachyos
sha256sums = 65ec9ac5b8b28d5b61df1c72498059be2e7cb1f9b965bac0e4ffed3c05520b2b sha256sums = 65ec9ac5b8b28d5b61df1c72498059be2e7cb1f9b965bac0e4ffed3c05520b2b
pkgname = linux-cachyos 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 = coreutils
depends = kmod depends = kmod
depends = initramfs depends = initramfs
@ -76,5 +76,5 @@ pkgname = linux-cachyos
provides = KSMBD-MODULE provides = KSMBD-MODULE
pkgname = linux-cachyos-headers 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 depends = pahole

View file

@ -24,7 +24,7 @@ _makenconfig=
# NUMA is optimized for multi-socket motherboards. # NUMA is optimized for multi-socket motherboards.
# A single multi-core CPU actually runs slower with NUMA enabled. # A single multi-core CPU actually runs slower with NUMA enabled.
# See, https://bugs.archlinux.org/task/31187 # See, https://bugs.archlinux.org/task/31187
_NUMAdisable= _NUMAdisable=y
# Compile ONLY used modules to VASTLYreduce the number of modules built # Compile ONLY used modules to VASTLYreduce the number of modules built
# and the build time. # and the build time.
@ -52,12 +52,16 @@ _per_gov=y
### Enable TCP_CONG_BBR2 ### Enable TCP_CONG_BBR2
_tcp_bbr2=y _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= _1k_HZ_ticks=
_750_HZ_ticks=y _750_HZ_ticks=y
_600_HZ_ticks= _600_HZ_ticks=
_500_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 ### Disable MQ-Deadline I/O scheduler
_mq_deadline_disable=y _mq_deadline_disable=y
@ -71,6 +75,7 @@ _lru_enable=y
_damon=y _damon=y
_spf_enable=y _spf_enable=y
### Enable Linux Random Number Generator ### Enable Linux Random Number Generator
_lrng_enable=y _lrng_enable=y
@ -104,13 +109,14 @@ _zstd_compression=y
_nf_cone=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= _use_llvm_lto=
# Enable it for using the LLVM CFI PATCH for a better security # Enable it for using the LLVM CFI PATCH for a better security
_use_cfi= _use_cfi=
if [ -n "$_use_llvm_lto" ]; then if [ -n "$_use_llvm_lto" ]; then
pkgbase=linux-cachyos-lto pkgbase=linux-cachyos-lto
else else
@ -127,8 +133,8 @@ _stable=${_major}.${_minor}
_srcname=linux-${_stable} _srcname=linux-${_stable}
#_srcname=linux-${_major} #_srcname=linux-${_major}
arch=(x86_64 x86_64_v3) arch=(x86_64 x86_64_v3)
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'
pkgrel=1 pkgrel=2
arch=('x86_64' 'x86_64_v3') arch=('x86_64' 'x86_64_v3')
url="https://github.com/CachyOS/linux-cachyos" url="https://github.com/CachyOS/linux-cachyos"
license=('GPL2') license=('GPL2')
@ -141,10 +147,26 @@ _patchsource="https://raw.githubusercontent.com/ptr1337/kernel-patches/master/${
source=( source=(
"https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.xz" "https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.xz"
"config" "config"
# "${_patchsource}/sched/0001-prjc.patch" )
# "${_patchsource}/sched/0001-cacULE.patch" if [ "$_cpusched" = "bmq" ]; then
# "${_patchsource}/sched/0001-bore-sched.patch" source+=("${_patchsource}/sched/0001-prjc.patch")
# "${_patchsource}/sched/0001-tt.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}/0001-arch.patch"
"${_patchsource}/0002-anbox.patch" "${_patchsource}/0002-anbox.patch"
"${_patchsource}/0003-bbr2.patch" "${_patchsource}/0003-bbr2.patch"
@ -161,7 +183,6 @@ source=(
"${_patchsource}/0014-lrng.patch" "${_patchsource}/0014-lrng.patch"
"${_patchsource}/0015-le9.patch" "${_patchsource}/0015-le9.patch"
"${_patchsource}/0016-ck-hrtimer.patch" "${_patchsource}/0016-ck-hrtimer.patch"
# "${_patchsource}/0017-FG-KASLR.patch"
"auto-cpu-optimization.sh" "auto-cpu-optimization.sh"
) )
@ -253,7 +274,9 @@ prepare() {
scripts/config --enable CONFIG_CFI_CLANG scripts/config --enable CONFIG_CFI_CLANG
fi 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 \ scripts/config --disable LTO_NONE \
--enable LTO \ --enable LTO \
--enable LTO_CLANG \ --enable LTO_CLANG \
@ -262,6 +285,18 @@ prepare() {
--enable HAS_LTO_CLANG \ --enable HAS_LTO_CLANG \
--enable LTO_CLANG_THIN \ --enable LTO_CLANG_THIN \
--enable HAVE_GCC_PLUGINS --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 fi
### Optionally set tickrate to 1000 ### Optionally set tickrate to 1000
@ -331,11 +366,6 @@ prepare() {
echo "Setting performance governor..." echo "Setting performance governor..."
scripts/config --disable CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL scripts/config --disable CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
scripts/config --enable CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE 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..." echo "Set PCIEASPM DRIVER to performance..."
scripts/config --enable CONFIG_PCIEASPM scripts/config --enable CONFIG_PCIEASPM
scripts/config --enable CONFIG_PCIEASPM_PERFORMANCE scripts/config --enable CONFIG_PCIEASPM_PERFORMANCE
@ -343,6 +373,33 @@ prepare() {
scripts/config --enable CONFIG_PCIE_BUS_PERFORMANCE scripts/config --enable CONFIG_PCIE_BUS_PERFORMANCE
fi 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 ### Enable KBUILD_CFLAGS -O3
if [ -n "$_cc_harder" ]; then if [ -n "$_cc_harder" ]; then
echo "Enabling KBUILD_CFLAGS -O3..." echo "Enabling KBUILD_CFLAGS -O3..."
@ -370,7 +427,7 @@ prepare() {
### Enable SPF ### Enable SPF
if [ -n "$_spf_enable" ]; then if [ -n "$_spf_enable" ]; then
echo "Enabling multigenerational LRU..." echo "Enabling SPECULATIVE_PAGE_FAULT LRU..."
scripts/config --enable CONFIG_SPECULATIVE_PAGE_FAULT scripts/config --enable CONFIG_SPECULATIVE_PAGE_FAULT
fi fi
@ -515,6 +572,9 @@ prepare() {
scripts/config --disable CONFIG_SCHED_DEBUG scripts/config --disable CONFIG_SCHED_DEBUG
scripts/config --disable CONFIG_KVM_WERROR scripts/config --disable CONFIG_KVM_WERROR
echo "Enable CONFIG_USER_NS_UNPRIVILEGED"
scripts/config --enable CONFIG_USER_NS
### Optionally use running kernel's config ### Optionally use running kernel's config
# code originally by nous; http://aur.archlinux.org/packages.php?ID=40191 # code originally by nous; http://aur.archlinux.org/packages.php?ID=40191
if [ -n "$_use_current" ]; then if [ -n "$_use_current" ]; then