This commit is contained in:
Peter Jung 2022-04-20 20:37:37 +00:00
parent 5a46de157c
commit 222e3fd169
No known key found for this signature in database
GPG key ID: C3C4820857F654FE
2 changed files with 81 additions and 22 deletions

View file

@ -1,7 +1,7 @@
pkgbase = linux-cachyos-bore
pkgdesc = Linux BORE 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
@ -26,6 +26,7 @@ pkgbase = linux-cachyos-bore
options = !strip
source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.4.tar.xz
source = config
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.17/sched/0001-bore-sched.patch
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.17/0001-arch.patch
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.17/0002-anbox.patch
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.17/0003-bbr2.patch
@ -45,6 +46,7 @@ pkgbase = linux-cachyos-bore
source = auto-cpu-optimization.sh
sha256sums = 6e3cd56ee83a9cb5ac3fde1442c40367ab67368946c4c93bbeb1c65664a0d3c5
sha256sums = 29c5dd2ae6b452b75b25816a8f6610fa2ff54f21b22a0ccef5c2e98a7077eb36
sha256sums = 0f99f7935f545033eff35b5e4ffa54142c31c7034ee801cd1534fe085351f019
sha256sums = e2109061823fe11e99eb5002b3d553ef9629c8495b974af36fc4113889dd0080
sha256sums = efd954e75525fb169c3e7d5f4a8b673f8a59469c9c5f8843c9255efbda48e6a9
sha256sums = 80d4a1e4c7f3cbed102de9079859b34a942d4e6424bf86c34a6b00d90f51fdb3

View file

@ -52,21 +52,22 @@ _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
### Disable Kyber I/O scheduler
_kyber_disable=y
### Enable protect file mappings under memory pressure
_mm_protect=
### Enable multigenerational LRU
_lru_enable=y
@ -108,17 +109,18 @@ _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-bore-lto
pkgbase=linux-cachyos-${_cpusched}-lto
else
pkgbase=linux-cachyos-bore
pkgbase=linux-cachyos-${_cpusched}
fi
_major=5.17
_minor=4
@ -132,7 +134,7 @@ _srcname=linux-${_stable}
#_srcname=linux-${_major}
arch=(x86_64 x86_64_v3)
pkgdesc='Linux BORE scheduler Kernel by CachyOS with other patches and improvements'
pkgrel=1
pkgrel=2
arch=('x86_64' 'x86_64_v3')
url="https://github.com/CachyOS/linux-cachyos"
license=('GPL2')
@ -145,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"
@ -165,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"
)
@ -257,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 \
@ -266,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
@ -335,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
@ -347,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..."
@ -374,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
@ -519,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
@ -690,6 +746,7 @@ done
sha256sums=('6e3cd56ee83a9cb5ac3fde1442c40367ab67368946c4c93bbeb1c65664a0d3c5'
'29c5dd2ae6b452b75b25816a8f6610fa2ff54f21b22a0ccef5c2e98a7077eb36'
'0f99f7935f545033eff35b5e4ffa54142c31c7034ee801cd1534fe085351f019'
'e2109061823fe11e99eb5002b3d553ef9629c8495b974af36fc4113889dd0080'
'efd954e75525fb169c3e7d5f4a8b673f8a59469c9c5f8843c9255efbda48e6a9'
'80d4a1e4c7f3cbed102de9079859b34a942d4e6424bf86c34a6b00d90f51fdb3'