linux57-tkg: Update BMQ to Project C v5.7-r2

http://cchalpha.blogspot.com/2020/06/project-c-v575-r2-release.html

( + hotfix - https://gitlab.com/alfredchen/projectc/-/issues/18 )
This commit is contained in:
Tk-Glitch 2020-07-04 23:17:53 +02:00
parent 9a20348e26
commit 83f4de41b4
4 changed files with 394 additions and 321 deletions

View File

@ -54,7 +54,7 @@ fi
# CPU SCHED selector # CPU SCHED selector
if [ -z "$_cpusched" ] && [ ! -e "$_where"/cpuschedset ]; then if [ -z "$_cpusched" ] && [ ! -e "$_where"/cpuschedset ]; then
plain "What CPU sched variant do you want to build/install?" plain "What CPU sched variant do you want to build/install?"
read -rp "`echo $' > 1.PDS\n 2.MuQSS\n 3.BMQ\n 4.CFS\nchoice[1-4?]: '`" CONDITION; read -rp "`echo $' > 1.PDS\n 2.MuQSS\n 3.Project C / BMQ\n 4.CFS\nchoice[1-4?]: '`" CONDITION;
if [ "$CONDITION" == "2" ]; then if [ "$CONDITION" == "2" ]; then
echo "_cpusched=\"MuQSS\"" > "$_where"/cpuschedset echo "_cpusched=\"MuQSS\"" > "$_where"/cpuschedset
elif [ "$CONDITION" == "3" ]; then elif [ "$CONDITION" == "3" ]; then
@ -89,7 +89,7 @@ pkgname=("${pkgbase}" "${pkgbase}-headers")
_basekernel=5.7 _basekernel=5.7
_sub=7 _sub=7
pkgver="${_basekernel}"."${_sub}" pkgver="${_basekernel}"."${_sub}"
pkgrel=15 pkgrel=16
pkgdesc='Linux-tkg' pkgdesc='Linux-tkg'
arch=('x86_64') # no i686 in here arch=('x86_64') # no i686 in here
url="http://www.kernel.org/" url="http://www.kernel.org/"
@ -121,7 +121,7 @@ source=("https://www.kernel.org/pub/linux/kernel/v5.x/linux-${_basekernel}.tar.x
0008-5.7-bcachefs.patch 0008-5.7-bcachefs.patch
0009-glitched-ondemand-bmq.patch 0009-glitched-ondemand-bmq.patch
0009-glitched-bmq.patch 0009-glitched-bmq.patch
0009-bmq_v5.7-r1.patch 0009-prjc_v5.7-r2.patch
0011-ZFS-fix.patch 0011-ZFS-fix.patch
#0012-linux-hardened.patch #0012-linux-hardened.patch
) )
@ -146,7 +146,7 @@ sha256sums=('de8163bb62f822d84f7a3983574ec460060bf013a78ff79cd7c979ff1ec1d7e0'
'b89d5c0e242ab2515211bf02de3098df9c0a51fe36a679817f9cb15e2e5e2b8b' 'b89d5c0e242ab2515211bf02de3098df9c0a51fe36a679817f9cb15e2e5e2b8b'
'9fad4a40449e09522899955762c8928ae17f4cdaa16e01239fd12592e9d58177' '9fad4a40449e09522899955762c8928ae17f4cdaa16e01239fd12592e9d58177'
'965a517a283f265a012545fbb5cc9e516efc9f6166d2aa1baf7293a32a1086b7' '965a517a283f265a012545fbb5cc9e516efc9f6166d2aa1baf7293a32a1086b7'
'72eaeaed0749b5853b28678869e69a08883e4b0b4894eb4c8c6958e7de692638' 'eb6697a5b1fb4e103c5725dc209b8f25a4e0f70a37ea147f91d1b15e360a66b4'
'49262ce4a8089fa70275aad742fc914baa28d9c384f710c9a62f64796d13e104') '49262ce4a8089fa70275aad742fc914baa28d9c384f710c9a62f64796d13e104')
export KBUILD_BUILD_HOST=archlinux export KBUILD_BUILD_HOST=archlinux
@ -420,8 +420,9 @@ function exit_cleanup {
rm -f "$srcdir"/linux-${_basekernel}/kernel/sched/pds_sched.h rm -f "$srcdir"/linux-${_basekernel}/kernel/sched/pds_sched.h
rm -f "$srcdir"/linux-${_basekernel}/Documentation/scheduler/sched-BMQ.txt rm -f "$srcdir"/linux-${_basekernel}/Documentation/scheduler/sched-BMQ.txt
rm -f "$srcdir"/linux-${_basekernel}/kernel/sched/bmq.c rm -f "$srcdir"/linux-${_basekernel}/kernel/sched/alt_core.c
rm -f "$srcdir"/linux-${_basekernel}/kernel/sched/bmq_sched.h rm -f "$srcdir"/linux-${_basekernel}/kernel/sched/sched/alt_debug.c
rm -f "$srcdir"/linux-${_basekernel}/kernel/sched/alt_sched.h
rm -f "$srcdir"/linux-${_basekernel}/Documentation/scheduler/sched-BFS.txt rm -f "$srcdir"/linux-${_basekernel}/Documentation/scheduler/sched-BFS.txt
rm -f "$srcdir"/linux-${_basekernel}/Documentation/scheduler/sched-MuQSS.txt rm -f "$srcdir"/linux-${_basekernel}/Documentation/scheduler/sched-MuQSS.txt

View File

@ -1,10 +1,12 @@
**Due to intel_pstate poor performances as of late, I have decided to set it to passive mode to make use of the acpi_cpufreq governors passthrough, keeping full support for turbo frequencies.** **Due to intel_pstate poor performances as of late, I have decided to set it to passive mode to make use of the acpi_cpufreq governors passthrough, keeping full support for turbo frequencies.**
A custom Linux kernel 5.7.y with specific PDS and BMQ CPU schedulers related patchsets selector (stock CFS is also an option) and added tweaks for a nice interactivity/performance balance, aiming for the best gaming experience. A custom Linux kernel 5.7.y with specific PDS, MuQSS and Project C / BMQ CPU schedulers related patchsets selector (stock CFS is also an option) and added tweaks for a nice interactivity/performance balance, aiming for the best gaming experience.
Various personalization options available and userpatches support (put your own patches in the same dir as the PKGBUILD, with the ".mypatch" extension. Various personalization options available and userpatches support (put your own patches in the same dir as the PKGBUILD, with the ".mypatch" extension.
BMQ : http://cchalpha.blogspot.com/ MuQSS : http://ck-hack.blogspot.com/
Project C / BMQ : http://cchalpha.blogspot.com/
PDS-mq was originally created by Alfred Chen : http://cchalpha.blogspot.com/ PDS-mq was originally created by Alfred Chen : http://cchalpha.blogspot.com/

View File

@ -43,8 +43,8 @@ _tkg_srcprep() {
fi fi
patch -Np1 -i ../0005-glitched-pds.patch patch -Np1 -i ../0005-glitched-pds.patch
elif [ "${_cpusched}" == "bmq" ]; then elif [ "${_cpusched}" == "bmq" ]; then
# BMQ # Project C / BMQ
patch -Np1 -i ../0009-bmq_v5.7-r1.patch patch -Np1 -i ../0009-prjc_v5.7-r2.patch
if [ "${_aggressive_ondemand}" == "true" ]; then if [ "${_aggressive_ondemand}" == "true" ]; then
patch -Np1 -i ../0009-glitched-ondemand-bmq.patch patch -Np1 -i ../0009-glitched-ondemand-bmq.patch
fi fi
@ -134,7 +134,7 @@ _tkg_srcprep() {
echo "CONFIG_SCHED_PDS=y" >> ./.config echo "CONFIG_SCHED_PDS=y" >> ./.config
elif [ "${_cpusched}" == "bmq" ]; then elif [ "${_cpusched}" == "bmq" ]; then
# BMQ default config # BMQ default config
echo "CONFIG_SCHED_BMQ=y" >> ./.config echo "CONFIG_SCHED_ALT=y" >> ./.config
fi fi
if [ "${_cpusched}" == "MuQSS" ] || [ "${_cpusched}" == "pds" ] || [ "${_cpusched}" == "bmq" ]; then if [ "${_cpusched}" == "MuQSS" ] || [ "${_cpusched}" == "pds" ] || [ "${_cpusched}" == "bmq" ]; then
@ -164,14 +164,24 @@ _tkg_srcprep() {
fi fi
fi fi
if [ "$CONDITION0" == "0" ]; then if [ "$CONDITION0" == "0" ]; then
if [ "${_cpusched}" == "bmq" ]; then
sed -i -e 's/int sched_yield_type __read_mostly = 1;/int sched_yield_type __read_mostly = 0;/' ./kernel/sched/alt_core.c
else
sed -i -e 's/int sched_yield_type __read_mostly = 1;/int sched_yield_type __read_mostly = 0;/' ./kernel/sched/"${_cpusched}".c sed -i -e 's/int sched_yield_type __read_mostly = 1;/int sched_yield_type __read_mostly = 0;/' ./kernel/sched/"${_cpusched}".c
fi
elif [ "$CONDITION0" == "1" ]; then elif [ "$CONDITION0" == "1" ]; then
msg2 "Using default CPU sched yield type (1)" msg2 "Using default CPU sched yield type (1)"
elif [ "$CONDITION0" == "2" ]; then elif [ "$CONDITION0" == "2" ]; then
if [ "${_cpusched}" == "bmq" ]; then
sed -i -e 's/int sched_yield_type __read_mostly = 1;/int sched_yield_type __read_mostly = 2;/' ./kernel/sched/alt_core.c
else
sed -i -e 's/int sched_yield_type __read_mostly = 1;/int sched_yield_type __read_mostly = 2;/' ./kernel/sched/"${_cpusched}".c sed -i -e 's/int sched_yield_type __read_mostly = 1;/int sched_yield_type __read_mostly = 2;/' ./kernel/sched/"${_cpusched}".c
fi
else else
if [ "${_cpusched}" == "MuQSS" ]; then if [ "${_cpusched}" == "MuQSS" ]; then
msg2 "Using default CPU sched yield type (1)" msg2 "Using default CPU sched yield type (1)"
elif [ "${_cpusched}" == "bmq" ]; then
sed -i -e 's/int sched_yield_type __read_mostly = 1;/int sched_yield_type __read_mostly = 0;/' ./kernel/sched/alt_core.c
else else
sed -i -e 's/int sched_yield_type __read_mostly = 1;/int sched_yield_type __read_mostly = 0;/' ./kernel/sched/"${_cpusched}".c sed -i -e 's/int sched_yield_type __read_mostly = 1;/int sched_yield_type __read_mostly = 0;/' ./kernel/sched/"${_cpusched}".c
fi fi
@ -216,11 +226,11 @@ _tkg_srcprep() {
elif [ "${_cpusched}" == "pds" ]; then elif [ "${_cpusched}" == "pds" ]; then
sed -i -e "s/#define SCHED_DEFAULT_RR (4)/#define SCHED_DEFAULT_RR (${_rrvalue})/" ./kernel/sched/"${_cpusched}".c sed -i -e "s/#define SCHED_DEFAULT_RR (4)/#define SCHED_DEFAULT_RR (${_rrvalue})/" ./kernel/sched/"${_cpusched}".c
elif [ "${_cpusched}" == "bmq" ]; then elif [ "${_cpusched}" == "bmq" ]; then
sed -i -e "s/u64 sched_timeslice_ns __read_mostly = (4 * 1000 * 1000);/u64 sched_timeslice_ns __read_mostly = (${_rrvalue} * 1000 * 1000);/" ./kernel/sched/"${_cpusched}".c sed -i -e "s/u64 sched_timeslice_ns __read_mostly = (4 * 1000 * 1000);/u64 sched_timeslice_ns __read_mostly = (${_rrvalue} * 1000 * 1000);/" ./kernel/sched/alt_core.c
fi fi
else else
if [ "${_cpusched}" == "bmq" ]; then if [ "${_cpusched}" == "bmq" ]; then
sed -i -e "s/u64 sched_timeslice_ns __read_mostly = (4 * 1000 * 1000);/u64 sched_timeslice_ns __read_mostly = (2 * 1000 * 1000);/" ./kernel/sched/"${_cpusched}".c sed -i -e "s/u64 sched_timeslice_ns __read_mostly = (4 * 1000 * 1000);/u64 sched_timeslice_ns __read_mostly = (2 * 1000 * 1000);/" ./kernel/sched/alt_core.c
fi fi
fi fi
fi fi