Compare commits

...

11 Commits

Author SHA1 Message Date
Sravan Balaji
8d5131804e PDS Kernel Configuration 2023-11-08 21:41:44 -05:00
Piotr Górski
7e07a8288d 6.6: Add bcachefs (#837)
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2023-11-02 18:05:08 +01:00
Piotr Górski
2a6832e697 6.6: EEVDF adaptation to BORE 3.2.9 (#832)
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2023-11-02 17:53:09 +01:00
Tk-Glitch
94a2ac0bd8 6.6rc: For BORE, apply additional/pending eevdf changes.
Following 1454d6c705
2023-10-26 16:35:00 +02:00
Tk-Glitch
a2b6fc7bbe Update rt mappings 2023-10-26 04:01:40 +02:00
Tk-Glitch
2f482b4904 6.1: glitched-base fixups for current
Fixes https://github.com/Frogging-Family/linux-tkg/issues/824
2023-10-26 03:59:56 +02:00
Tk-Glitch
b30f072867 6.5/6.6: Apply eevdf-Disable-DELAY_DEQUEUE on eevdf
Following 94383606d0
2023-10-26 03:59:19 +02:00
Piotr Górski
94383606d0 EEVDF: Disable DELAY_DEQUEUE - fix #830 (#831)
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2023-10-26 03:07:09 +02:00
Piotr Górski
1454d6c705 6.6: EEVDF adaptation to BORE 3.2.8 (#829)
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2023-10-24 21:41:31 +02:00
Piotr Górski
d9da42be99 6.5: EEVDF adaptation to BORE 3.2.8 (#828)
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2023-10-24 21:07:12 +02:00
Piotr Górski
20aea5a14a 6.5: Add EEVDF urgent fix (#827)
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2023-10-17 22:30:22 +02:00
6 changed files with 98758 additions and 55 deletions

View File

@@ -3,7 +3,7 @@
# Linux distribution you are using, options are "Arch", "Ubuntu", "Debian", "Fedora", "Suse", "Gentoo", "Generic".
# It is automatically set to "Arch" when using PKGBUILD.
# If left empty, the script will prompt
_distro=""
_distro="Arch"
# Kernel Version - x.x format without the subversion (will always grab latest available subversion) is recommended
# you can also set a specific kernel version, e.g. "6.0-rc4" or "5.10.51",
@@ -46,7 +46,7 @@ CUSTOM_GCC_PATH=""
CUSTOM_LLVM_PATH=""
# Set to true to bypass makepkg.conf and use all available threads for compilation. False will respect your makepkg.conf options.
_force_all_threads="true"
_force_all_threads="false"
# Set to true to prevent ccache from being used and set CONFIG_GCC_PLUGINS=y (which needs to be disabled for ccache to work properly)
_noccache="false"
@@ -66,10 +66,10 @@ _modprobeddb="false"
_modprobeddb_db_path=~/.config/modprobed.db
# Set to "1" to call make menuconfig, "2" to call make nconfig, "3" to call make xconfig, before building the kernel. Set to false to disable and skip the prompt.
_menunconfig=""
_menunconfig="false"
# Set to true to generate a kernel config fragment from your changes in menuconfig/nconfig. Set to false to disable and skip the prompt.
_diffconfig=""
_diffconfig="false"
# Set to the file name where the generated config fragment should be written to. Only used if _diffconfig is active.
_diffconfig_name=""
@@ -104,11 +104,11 @@ _STRIP="true"
# CPU scheduler - Options are "pds", "bmq", "cacule", "tt", "bore", "bore-eevdf", "eevdf" or "cfs" (kernel's default)
# "upds" (TkG's Undead PDS) and "muqss" are also available on legacy kernel revisions
_cpusched=""
_cpusched="pds"
# Compiler to use - Options are "gcc" or "llvm".
# For advanced users.
_compiler=""
_compiler="gcc"
# Force the use of the LLVM Integrated Assembler whether using LLVM, LTO or not.
# Set to "1" to enable.
@@ -138,7 +138,7 @@ _preempt_rt_force=""
# For BMQ: 0: No yield.
# 1: Deboost and requeue task. (Default)
# 2: Set rq skip task.
_sched_yield_type=""
_sched_yield_type="0"
# Round Robin interval is the longest duration two tasks with the same nice level will be delayed for. When CPU time is requested by a task, it receives a time slice equal
# to the rr_interval in addition to a virtual deadline. When using yield_type 2, a low value can help offset the disadvantages of rescheduling a process that has yielded.
@@ -146,7 +146,7 @@ _sched_yield_type=""
# PDS default: 4ms"
# BMQ default: 2ms"
# Set to "1" for 2ms, "2" for 4ms, "3" for 6ms, "4" for 8ms, or "default" to keep the chosen scheduler defaults.
_rr_interval=""
_rr_interval="default"
# Set to "true" to disable FUNCTION_TRACER/GRAPH_TRACER, lowering overhead but limiting debugging and analyzing of kernel functions - Kernel default is "false"
_ftracedisable="false"
@@ -161,10 +161,10 @@ _misc_adds="true"
# Full tickless can give higher performances in case you use isolation of CPUs for tasks
# and it works only when using the nohz_full kernel parameter, otherwise behaves like idle.
# Just tickless idle perform better for most platforms.
_tickless=""
_tickless="2"
# Set to "true" to use ACS override patch - https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF#Bypassing_the_IOMMU_groups_.28ACS_override_patch.29 - Kernel default is "false"
_acs_override=""
_acs_override="false"
# Set to "true" to add Bcache filesystem support. You'll have to install bcachefs-tools-git from AUR for utilities - https://bcachefs.org/ - If in doubt, set to "false"
# This can be buggy and isn't recommended on a production machine, also enabling this option will not allow you to enable MGLRU.
@@ -175,7 +175,7 @@ _bcachefs="false"
_winesync="false"
# Set to "true" to enable Binder modules to use Waydroid Android containers
_waydroid=""
_waydroid="false"
# Various patches and tweaks from Zen/Liquorix, Xanmod and the community - Default is "true"
_glitched_base="true"
@@ -185,7 +185,7 @@ _glitched_base="true"
_zenify="true"
# compiler optimization level - 1. Optimize for performance (-O2); 2. Optimize harder (-O3); 3. Optimize for size (-Os) - Kernel default is "1"
_compileroptlevel="1"
_compileroptlevel="2"
# CPU compiler optimizations - Defaults to prompt at kernel config if left empty
# AMD CPUs : "k8" "k8sse3" "k10" "barcelona" "bobcat" "jaguar" "bulldozer" "piledriver" "steamroller" "excavator" "zen" "zen2" "zen3" "zen4" (zen3 opt support depends on GCC11) (zen4 opt support depends on GCC13)
@@ -199,7 +199,7 @@ _compileroptlevel="1"
# - "generic_v2" (depends on GCC11 - to share the package between machines with different CPU µarch supporting at least x86-64-v2
# - "generic_v3" (depends on GCC11 - to share the package between machines with different CPU µarch supporting at least x86-64-v3
# - "generic_v4" (depends on GCC11 - to share the package between machines with different CPU µarch supporting at least x86-64-v4
_processor_opt=""
_processor_opt="skylake"
# CacULE only - Enable Response Driven Balancer, an experimental load balancer for CacULE
_cacule_rdb="false"
@@ -212,13 +212,13 @@ _cacule_rdb_interval="19"
_tt_high_hz="false"
# MuQSS and PDS only - SMT (Hyperthreading) aware nice priority and policy support (SMT_NICE) - Kernel default is "true" - You can disable this on non-SMT/HT CPUs for lower overhead
_smt_nice=""
_smt_nice="true"
# Trust the CPU manufacturer to initialize Linux's CRNG (RANDOM_TRUST_CPU) - Kernel default is "false"
_random_trust_cpu="true"
# Timer frequency - "100" "250" "300" "500" "750" "1000" ("2000" is available for cacule cpusched only) - More options available in kernel config prompt when left empty depending on selected cpusched with the default option pointed with a ">" (2000 for cacule, 100 for muqss and 1000 for other cpu schedulers)
_timer_freq=""
_timer_freq="1000"
# Default CPU governor - "performance", "ondemand", "schedutil" or leave empty for default (schedutil)
_default_cpu_gov="ondemand"
@@ -234,7 +234,7 @@ _aggressive_ondemand="true"
_tcp_cong_alg=""
# You can pass a default set of kernel command line options here - example: "intel_pstate=passive nowatchdog amdgpu.ppfeaturemask=0xfffd7fff mitigations=off"
_custom_commandline="intel_pstate=passive split_lock_detect=off"
_custom_commandline=""
# Selection of Clearlinux patches
_clear_patches="true"

View File

@@ -48,11 +48,11 @@ _rt_subver_map=(
["5.16"]="2"
["5.17"]="1"
["6.0"]="5"
["6.1"]="46"
["6.1"]="59"
["6.3"]="3"
["6.4"]="6"
["6.5"]="2"
["6.6"]="rc1"
["6.6"]="rc6"
)
# PREEMPT_RT's patch revision for the kernel
@@ -68,11 +68,11 @@ _rt_rev_map=(
["5.16"]="19"
["5.17"]="17"
["6.0"]="14"
["6.1"]="14"
["6.1"]="16"
["6.3"]="15"
["6.4"]="8"
["6.5"]="8"
["6.6"]="1"
["6.6"]="10"
)
_undefine() {
@@ -861,6 +861,9 @@ _tkg_srcprep() {
_msg="Applying BORE-EEVDF patch"
curl "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/${_basekernel}/sched/0001-bore-eevdf.patch" > "$srcdir"/0001-bore-eevdf.patch
tkgpatch="$srcdir/0001-bore-eevdf.patch" && _tkg_patcher
else
_msg="Applying eevdf-Disable-DELAY_DEQUEUE patch"
tkgpatch="$srcdir/0004-eevdf-Disable-DELAY_DEQUEUE.patch" && _tkg_patcher
fi
fi

View File

@@ -770,7 +770,7 @@ diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index a0b0397e29ee4c..87a983a356530c 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3119,15 +3119,16 @@ __rmqueue(struct zone *zone, unsigned int order, int migratetype,
@@ -3118,15 +3119,16 @@ __rmqueue(struct zone *zone, unsigned int order, int migratetype,
}
/*
@@ -785,12 +785,13 @@ index a0b0397e29ee4c..87a983a356530c 100644
unsigned long count, struct list_head *list,
int migratetype, unsigned int alloc_flags)
{
unsigned long flags;
- int i, allocated = 0;
+ const bool can_resched = !preempt_count() && !irqs_disabled();
+ int i, allocated = 0, last_mod = 0;
/* Caller must hold IRQ-safe pcp->lock so IRQs are disabled. */
spin_lock(&zone->lock);
spin_lock_irqsave(&zone->lock, flags);
for (i = 0; i < count; ++i) {
@@ -3137,6 +3138,18 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order,
if (unlikely(page == NULL))
break;
@@ -819,3 +820,4 @@ index a0b0397e29ee4c..87a983a356530c 100644
spin_unlock(&zone->lock);
return allocated;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,26 @@
From 24cd48424c96118bbb0fc8af93bfdc98570c31bf Mon Sep 17 00:00:00 2001
From: Piotr Gorski <lucjan.lucjanov@gmail.com>
Date: Wed, 25 Oct 2023 21:49:14 +0200
Subject: [PATCH] EEVDF: Disable DELAY_DEQUEUE
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
---
kernel/sched/features.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/features.h b/kernel/sched/features.h
index fd2c963b7..6225be566 100644
--- a/kernel/sched/features.h
+++ b/kernel/sched/features.h
@@ -44,7 +44,7 @@ SCHED_FEAT(EVDF, false)
*
* GENTLE_DELAY clips the lag on dequeue (or wakeup) to 0.
*/
-SCHED_FEAT(DELAY_DEQUEUE, true)
+SCHED_FEAT(DELAY_DEQUEUE, false)
SCHED_FEAT(GENTLE_DELAY, true)
/*
--
2.42.0

File diff suppressed because it is too large Load Diff