Compare commits

..

22 Commits

Author SHA1 Message Date
Sravan Balaji
d05f761332 PDS Kernel Configuration 2022-11-07 16:40:53 -05:00
Tk-Glitch
081d3097a0 cfg: comment: Add "torvalds" as possible _git_mirror value
Following https://github.com/Frogging-Family/linux-tkg/pull/642
2022-11-07 15:21:33 +01:00
Tk-Glitch
be8c8e8230 preempt_rt: Handle RC kernels and add 6.1 RC to mapping 2022-11-07 14:15:18 +01:00
Slaviusz
86d2ec1f79 Add Torvalds' git repo for faster -rc kernel evaluation (#642) 2022-11-07 14:00:30 +01:00
ptr1337
eb2be11b19 Update bcachefs patches for 5.15 and 6.0 (#641)
* Update bcachefs for 6.0

Signed-off-by: Peter Jung <admin@ptr1337.dev>

* Update bcachefs for 5.15

Signed-off-by: Peter Jung <admin@ptr1337.dev>

Signed-off-by: Peter Jung <admin@ptr1337.dev>
2022-11-07 13:59:45 +01:00
Tk-Glitch
aaa7b3d556 linux 6.0.y: defconfig: Sync with 6.0.5-arch1 2022-11-05 18:34:39 +01:00
Tk-Glitch
aa69546f01 linux 6.0.y: Due to popular demand, allow unofficial Project C port again but make it clear it might be unstable
Since we are either doing ports ourselves or using other's while we wait for Alfred's, let's handle unofficial versions with a toggle "marking" them until proper release eventually becomes available.

Fixes https://github.com/Frogging-Family/linux-tkg/issues/631
2022-11-05 18:24:07 +01:00
Tk-Glitch
accb6d07f4 preempt_rt: Add a warning regarding cpu schedulers availability when preempt_rt is enabled
Fixes https://github.com/Frogging-Family/linux-tkg/issues/635
2022-11-05 18:01:52 +01:00
Tk-Glitch
f79f7ddb8e preempt_rt: Allow BORE cpusched on compatible kernels
It's a pretty minor CFS mod, should work 🐸
2022-11-05 17:57:51 +01:00
Tk-Glitch
4201196110 preempt_rt: Fixups
- get rid of the deprecated _kver_subver_map and related check
- notify the user about the last known good kernel version target of the PREEMPT_RT patchset
- use warning instead of msg2 for PREEMPT_RT patch skipping since we are skipping a very impacting patch explicitly requested by the .cfg
2022-11-05 17:50:15 +01:00
Tk-Glitch
8b0d439206 preempt_rt: Move sched/core: nr_migrate = 128 increases number of tasks to iterate in a single balance run. patch out of glitched base, and only apply on non-preempt-rt.
Fixes a conflict on 5.4.y, 5.10.y and 5.15.y
2022-11-05 17:46:19 +01:00
Tk-Glitch
8316a6970a Bump RT patches 2022-11-05 17:11:36 +01:00
ptr1337
c171d77094 fix 0012-misc-additions.patch for 6.0.7 (#639)
Signed-off-by: Peter Jung <admin@ptr1337.dev>

Signed-off-by: Peter Jung <admin@ptr1337.dev>
2022-11-05 16:23:49 +01:00
Vasiliy Stelmachenok
16c81fb013 Clarify the description of the tickless parameter (#636) 2022-11-02 13:49:58 +01:00
Tk-Glitch
1882fa3bd9 linux 6.1 RC: Allow BORE cpusched 2022-10-31 18:50:45 +01:00
Tk-Glitch
c4ceba207d linux 5.15.y: Allow BORE cpusched
Fixes https://github.com/Frogging-Family/linux-tkg/issues/623
2022-10-31 18:48:17 +01:00
Tk-Glitch
a380d532bc linux 5.10.y: Update Project C to r5 - https://gitlab.com/alfredchen/linux-prjc/-/tree/linux-5.10.y-prjc-lts 2022-10-26 20:42:55 +02:00
Tk-Glitch
b82abcf5f6 Move 5.19 to EOL 2022-10-26 20:03:23 +02:00
Tk-Glitch
1084ad5ba1 linux 6.0.y: misc-additions: Remove Revert "ALSA: hda: Fix page fault in snd_hda_codec_shutdown()" as it was merged with v6.0.4 2022-10-26 19:53:02 +02:00
Tk-Glitch
1e4b8fb627 linux 6.1 RC: Remove fixes merged in RC2 2022-10-24 15:53:50 +02:00
Tk-Glitch
02132367d6 Add support for zen4 and meteorlake compiler optimizations 2022-10-23 15:51:47 +02:00
Tk-Glitch
1c4fece830 linux 6.0.y: Add fixes and update defconfig to 6.0.3.arch2
ed63a1d111/trunk/config

fb23dad87a
785699dbc7
6df3912f64
41d72c2322
2022-10-23 15:48:24 +02:00
15 changed files with 16345 additions and 10279 deletions

View File

@@ -56,7 +56,7 @@ else
fi
pkgname=("${pkgbase}" "${pkgbase}-headers")
pkgver="${_basekernel}"."${_sub}"
pkgrel=271
pkgrel=272
pkgdesc='Linux-tkg'
arch=('x86_64') # no i686 in here
url="https://www.kernel.org/"

View File

@@ -20,7 +20,7 @@ _EXT_CONFIG_PATH=~/.config/frogminer/linux-tkg.cfg
# Default is "true".
_NUKR="true"
# Git mirror to use to get the kernel sources, possible values are "kernel.org", "googlesource.com" and "github.com"
# Git mirror to use to get the kernel sources, possible values are "kernel.org", "googlesource.com", "github.com" and "torvalds"
_git_mirror="kernel.org"
# Custom compiler root dirs - Leave empty to use system compilers
@@ -144,7 +144,9 @@ _numadisable="false"
_misc_adds="true"
# Set to "0" for periodic ticks, "1" to use CattaRappa mode (enabling full tickless) and "2" for tickless idle only.
# 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).
# 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="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"

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.0.0-arch1 Kernel Configuration
# Linux/x86 6.0.5-arch1 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
CONFIG_CC_IS_GCC=y
@@ -17,7 +17,7 @@ CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
CONFIG_PAHOLE_VERSION=123
CONFIG_PAHOLE_VERSION=124
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y
@@ -7596,6 +7596,7 @@ CONFIG_HID_SMARTJOYPLUS=m
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_HID_TIVO=m
CONFIG_HID_TOPSEED=m
CONFIG_HID_TOPRE=m
CONFIG_HID_THINGM=m
CONFIG_HID_THRUSTMASTER=m
CONFIG_THRUSTMASTER_FF=y
@@ -10374,6 +10375,7 @@ CONFIG_LSM="landlock,lockdown,yama,integrity,bpf"
# Memory initialization
#
CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
# CONFIG_INIT_STACK_NONE is not set
# CONFIG_INIT_STACK_ALL_PATTERN is not set
@@ -10849,6 +10851,7 @@ CONFIG_DEBUG_KERNEL=y
# Compile-time checks and compiler options
#
CONFIG_DEBUG_INFO=y
CONFIG_AS_HAS_NON_CONST_LEB128=y
# CONFIG_DEBUG_INFO_NONE is not set
# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set
# CONFIG_DEBUG_INFO_DWARF4 is not set

View File

@@ -1,16 +1,17 @@
#!/bin/bash
# List of kernels that are maintained upstream
_current_kernels=("6.1" "6.0" "5.19" "5.15" "5.10" "5.4")
_current_kernels=("6.1" "6.0" "5.15" "5.10" "5.4")
# List of kernels that are no longer maintained upstream
_eol_kernels=("5.18" "5.17" "5.16" "5.14" "5.13" "5.12" "5.11" "5.9" "5.8" "5.7")
_eol_kernels=("5.19" "5.18" "5.17" "5.16" "5.14" "5.13" "5.12" "5.11" "5.9" "5.8" "5.7")
typeset -Ag _kernel_git_remotes
_kernel_git_remotes=(
["kernel.org"]="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
["googlesource.com"]="https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable"
["github.com"]="https://github.com/gregkh/linux.git"
["torvalds"]="https://github.com/torvalds/linux.git"
)
_git_remote_names=( "${!_kernel_git_remotes[@]}" )
@@ -35,53 +36,35 @@ for _key in "${_current_kernels[@]}" "${_eol_kernels[@]}"; do
_kver_latest_tags_map[$_key]=$(echo "$_kernel_tags" | grep -F "v$_key" | tail -1 | cut -c1-)
done
# only used by workflow trigger script
typeset -Ag _kver_subver_map
_kver_subver_map=(
["5.4"]="214"
["5.7"]="19"
["5.8"]="18"
["5.9"]="16"
["5.10"]="144"
["5.11"]="22"
["5.12"]="19"
["5.13"]="19"
["5.14"]="21"
["5.15"]="69"
["5.16"]="20"
["5.17"]="15"
["5.18"]="19"
["5.19"]="10"
["6.0"]="rc6"
)
# PREEMPT_RT's supported kernel subversion
typeset -Ag _rt_subver_map
_rt_subver_map=(
["5.4"]="188"
["5.4"]="209"
["5.9"]="1"
["5.10"]="109"
["5.10"]="153"
["5.11"]="4"
["5.14"]="2"
["5.15"]="32"
["5.15"]="76"
["5.16"]="2"
["5.17"]="1"
["6.0"]="5"
["6.1"]="rc3"
)
# PREEMPT_RT's patch revision for the kernel
# We separated this to allow for forcing the application of the patch when _preempt_rt_force=1 on version mismatch
typeset -Ag _rt_rev_map
_rt_rev_map=(
["5.4"]="73"
["5.4"]="77"
["5.9"]="20"
["5.10"]="65"
["5.10"]="76"
["5.11"]="11"
["5.14"]="21"
["5.15"]="39"
["5.15"]="53"
["5.16"]="19"
["5.17"]="17"
["6.0"]="14"
["6.1"]="2"
)
_undefine() {
@@ -287,7 +270,7 @@ _set_cpu_scheduler() {
elif [ "$_kver" = "514" ]; then
_avail_cpu_scheds=("pds" "bmq" "cacule" "cfs")
elif [ "$_kver" = "515" ]; then
_avail_cpu_scheds=("pds" "bmq" "cacule" "tt" "cfs")
_avail_cpu_scheds=("pds" "bmq" "cacule" "tt" "bore" "cfs")
elif [ "$_kver" = "516" ]; then
_avail_cpu_scheds=("pds" "bmq" "cacule" "cfs")
elif [ "$_kver" = "517" ]; then
@@ -297,19 +280,31 @@ _set_cpu_scheduler() {
elif [ "$_kver" = "519" ]; then
_avail_cpu_scheds=("cfs" "pds" "bmq" "cacule" "tt" "bore")
elif [ "$_kver" = "600" ]; then
_avail_cpu_scheds=("cfs" "tt" "bore")
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
_projectc_unoff="1"
elif [ "$_kver" = "601" ]; then
_avail_cpu_scheds=("cfs" "bore")
else
_avail_cpu_scheds=("cfs")
fi
if [ "${_preempt_rt}" = "1" ]; then
warning "! Since you have enabled _preempt_rt, incompatible cpu schedulers will not be available !"
if [[ "${_avail_cpu_scheds[*]}" =~ "bore" ]]; then
_avail_cpu_scheds=("cfs" "bore")
else
_avail_cpu_scheds=("cfs")
fi
fi
# Populate descriptions of the available CPU schedulers
_avail_cpu_scheds_text=()
for _sched in "${_avail_cpu_scheds[@]}"; do
if [ "$_sched" = "pds" ] || [ "$_sched" = "bmq" ] && [ "$_projectc_unoff" = "1" ]; then
_avail_cpu_scheds_text+=("Project C / ${_sched^^} (unofficial port - ! possibly unstable !)")
else
_avail_cpu_scheds_text+=("${_sched_description_array[$_sched]}")
fi
done
if ! [[ ${_avail_cpu_scheds[*]} =~ "$_cpusched" ]]; then
@@ -432,6 +427,7 @@ _linux_git_branch_checkout() {
msg2 "master branch doesn't locally exist, shallow cloning..."
git remote set-branches --add kernel.org master
git remote set-branches --add googlesource.com master
git remote set-branches --add torvalds master
git fetch --depth=1 $_git_mirror master
git fetch --depth 1 $_git_mirror tag "$_kernel_git_tag"
git checkout -b master-${_git_mirror} ${_git_mirror}/master
@@ -449,6 +445,7 @@ _linux_git_branch_checkout() {
msg2 "${_basekernel}.y branch doesn't locally exist, shallow cloning..."
git remote set-branches --add kernel.org linux-${_basekernel}.y
git remote set-branches --add googlesource.com linux-${_basekernel}.y
git remote set-branches --add torvalds linux-${_basekernel}.y
git fetch --depth=1 $_git_mirror linux-${_basekernel}.y
git fetch --depth=1 $_git_mirror tag "$_kernel_git_tag"
git checkout -b linux-${_basekernel}-${_git_mirror} ${_git_mirror}/linux-${_basekernel}.y
@@ -650,8 +647,13 @@ _tkg_srcprep() {
if [ ${_rt_subver_map[$_basekernel]+_} = "_" ]; then
preempt_rt_ksubver="${_rt_subver_map[$_basekernel]}"
# Check if subversion is supported, skip check if forced
if [ "${_preempt_rt_force}" = "1" ] || [ "${preempt_rt_ksubver}" = "${_kver_subver_map[$_basekernel]}" ]; then
preempt_rt_file_gz="patch-${_basekernel}.${preempt_rt_ksubver}-rt${_rt_rev_map["$_basekernel"]}.patch.gz"
if [ "${_preempt_rt_force}" = "1" ] || [ "${preempt_rt_ksubver}" = "${_sub}" ]; then
if [[ "${_sub}" == *rc* ]]; then
_separator="-"
else
_separator="."
fi
preempt_rt_file_gz="patch-${_basekernel}${_separator}${preempt_rt_ksubver}-rt${_rt_rev_map["$_basekernel"]}.patch.gz"
preempt_rt_file=`basename ${preempt_rt_file_gz} .gz`
curl "https://cdn.kernel.org/pub/linux/kernel/projects/rt/${_basekernel}/${preempt_rt_file_gz}" > "$srcdir"/"${preempt_rt_file_gz}"
last_pwd=`pwd`
@@ -661,10 +663,10 @@ _tkg_srcprep() {
tkgpatch="$srcdir/${preempt_rt_file}"
_msg="Applying PREEMPT_RT patch" && _tkg_patcher
else
msg2 "Skipping PREEMPT_RT patch for ${_basekernel}.${_sub}"
warning "Skipping PREEMPT_RT patch for ${_basekernel}.${_sub} (last known good ${_basekernel}.${preempt_rt_ksubver})"
fi
else
msg2 "Skipping PREEMPT_RT patch on unsupported kernel version"
warning "Skipping PREEMPT_RT patch on unsupported kernel version"
fi
fi
@@ -677,6 +679,11 @@ _tkg_srcprep() {
tkgpatch="$srcdir/0003-glitched-base.patch"
_msg="Applying glitched base patch" && _tkg_patcher
if [ "${_preempt_rt}" != "1" ]; then
tkgpatch="$srcdir/0003-glitched-base-nonrt.patch"
_msg="Applying glitched base non-rt additions patch" && _tkg_patcher
fi
if [[ "$_distro" =~ ^(Fedora|Suse)$ ]]; then
tkgpatch="$srcdir/0013-fedora-rpm.patch"
_msg="RPM: fixing spec generator" && _tkg_patcher
@@ -705,7 +712,7 @@ _tkg_srcprep() {
elif [ "$_kver" = "509" ]; then
rev=3
elif [ "$_kver" = "510" ]; then
rev=3
rev=5
elif [ "$_kver" = "511" ]; then
rev=3
elif [ "$_kver" = "512" ]; then
@@ -941,10 +948,10 @@ _tkg_srcprep() {
# cpu opt
_cpu_marchs=("native_amd" "native_intel" "generic_cpu" "generic_cpu2" "generic_cpu3" "generic_cpu4")
_cpu_marchs+=("k8" "k8sse3" "k10" "barcelona" "bobcat" "jaguar" "bulldozer" "piledriver")
_cpu_marchs+=("steamroller" "excavator" "zen" "zen2" "zen3" "mpsc" "atom" "core2" "nehalem" "westmere")
_cpu_marchs+=("steamroller" "excavator" "zen" "zen2" "zen3" "zen4" "mpsc" "atom" "core2" "nehalem" "westmere")
_cpu_marchs+=("bonnell" "silvermont" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake")
_cpu_marchs+=("skylakex" "cannonlake" "icelake" "goldmont" "goldmontplus" "cascadelake")
_cpu_marchs+=("cooperlake" "tigerlake" "sapphirerapids" "rocketlake" "alderlake")
_cpu_marchs+=("cooperlake" "tigerlake" "sapphirerapids" "rocketlake" "alderlake" "meteorlake")
typeset -A _generic_march_map
_generic_march_map=(
@@ -1328,7 +1335,7 @@ _tkg_srcprep() {
plain "Use CattaRappa mode (Tickless/Dynticks) ?"
_tickless_array_text=(
"No, use periodic ticks."
"Yes, full tickless baby!\n Can give higher performances in many cases but lower consistency on some hardware."
"Yes, full tickless baby!\n Full tickless can give higher performances in case you use isolation of CPUs for task, in other cases it behaves as Idle."
"Just tickless idle plz.\n Just tickless idle can perform better with some platforms (mostly AMD) or CPU schedulers (mostly MuQSS)."
)
_default_index="2"

View File

@@ -0,0 +1,38 @@
From 28f32f59d9d55ac7ec3a20b79bdd02d2a0a5f7e1 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <admfrade@gmail.com>
Date: Mon, 29 Jan 2018 18:29:13 +0000
Subject: [PATCH 03/17] sched/core: nr_migrate = 128 increases number of tasks
to iterate in a single balance run.
Signed-off-by: Alexandre Frade <admfrade@gmail.com>
---
kernel/sched/core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index f788cd61df21..2bfbb4213707 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -59,7 +59,7 @@ const_debug unsigned int sysctl_sched_features =
* Number of tasks to iterate in a single balance run.
* Limited because this is done with IRQs disabled.
*/
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
/*
* period over which we measure -rt task CPU usage in us.
@@ -71,9 +71,9 @@ __read_mostly int scheduler_running;
/*
* part of the period that we allow rt tasks to run in us.
- * default: 0.95s
+ * XanMod default: 0.98s
*/
-int sysctl_sched_rt_runtime = 950000;
+int sysctl_sched_rt_runtime = 980000;
/*
* __task_rq_lock - lock the rq @p resides on.
--
2.28.0

View File

@@ -54,46 +54,6 @@ index 361ea7ab30ea..0c5cf69b241a 100644
2.28.0
From 28f32f59d9d55ac7ec3a20b79bdd02d2a0a5f7e1 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <admfrade@gmail.com>
Date: Mon, 29 Jan 2018 18:29:13 +0000
Subject: [PATCH 03/17] sched/core: nr_migrate = 128 increases number of tasks
to iterate in a single balance run.
Signed-off-by: Alexandre Frade <admfrade@gmail.com>
---
kernel/sched/core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index f788cd61df21..2bfbb4213707 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -59,7 +59,7 @@ const_debug unsigned int sysctl_sched_features =
* Number of tasks to iterate in a single balance run.
* Limited because this is done with IRQs disabled.
*/
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
/*
* period over which we measure -rt task CPU usage in us.
@@ -71,9 +71,9 @@ __read_mostly int scheduler_running;
/*
* part of the period that we allow rt tasks to run in us.
- * default: 0.95s
+ * XanMod default: 0.98s
*/
-int sysctl_sched_rt_runtime = 950000;
+int sysctl_sched_rt_runtime = 980000;
/*
* __task_rq_lock - lock the rq @p resides on.
--
2.28.0
From acc49f33a10f61dc66c423888cbb883ba46710e4 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <admfrade@gmail.com>
Date: Mon, 29 Jan 2018 17:41:29 +0000

View File

@@ -0,0 +1,38 @@
From 28f32f59d9d55ac7ec3a20b79bdd02d2a0a5f7e1 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <admfrade@gmail.com>
Date: Mon, 29 Jan 2018 18:29:13 +0000
Subject: [PATCH 03/17] sched/core: nr_migrate = 128 increases number of tasks
to iterate in a single balance run.
Signed-off-by: Alexandre Frade <admfrade@gmail.com>
---
kernel/sched/core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index f788cd61df21..2bfbb4213707 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -59,7 +59,7 @@ const_debug unsigned int sysctl_sched_features =
* Number of tasks to iterate in a single balance run.
* Limited because this is done with IRQs disabled.
*/
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
/*
* period over which we measure -rt task CPU usage in us.
@@ -71,9 +71,9 @@ __read_mostly int scheduler_running;
/*
* part of the period that we allow rt tasks to run in us.
- * default: 0.95s
+ * XanMod default: 0.98s
*/
-int sysctl_sched_rt_runtime = 950000;
+int sysctl_sched_rt_runtime = 980000;
/*
* __task_rq_lock - lock the rq @p resides on.
--
2.28.0

View File

@@ -54,46 +54,6 @@ index 361ea7ab30ea..0c5cf69b241a 100644
2.28.0
From 28f32f59d9d55ac7ec3a20b79bdd02d2a0a5f7e1 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <admfrade@gmail.com>
Date: Mon, 29 Jan 2018 18:29:13 +0000
Subject: [PATCH 03/17] sched/core: nr_migrate = 128 increases number of tasks
to iterate in a single balance run.
Signed-off-by: Alexandre Frade <admfrade@gmail.com>
---
kernel/sched/core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index f788cd61df21..2bfbb4213707 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -59,7 +59,7 @@ const_debug unsigned int sysctl_sched_features =
* Number of tasks to iterate in a single balance run.
* Limited because this is done with IRQs disabled.
*/
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
/*
* period over which we measure -rt task CPU usage in us.
@@ -71,9 +71,9 @@ __read_mostly int scheduler_running;
/*
* part of the period that we allow rt tasks to run in us.
- * default: 0.95s
+ * XanMod default: 0.98s
*/
-int sysctl_sched_rt_runtime = 950000;
+int sysctl_sched_rt_runtime = 980000;
/*
* __task_rq_lock - lock the rq @p resides on.
--
2.28.0
From acc49f33a10f61dc66c423888cbb883ba46710e4 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <admfrade@gmail.com>
Date: Mon, 29 Jan 2018 17:41:29 +0000

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
From 28f32f59d9d55ac7ec3a20b79bdd02d2a0a5f7e1 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <admfrade@gmail.com>
Date: Mon, 29 Jan 2018 18:29:13 +0000
Subject: [PATCH 03/17] sched/core: nr_migrate = 128 increases number of tasks
to iterate in a single balance run.
Signed-off-by: Alexandre Frade <admfrade@gmail.com>
---
kernel/sched/core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index f788cd61df21..2bfbb4213707 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -59,7 +59,7 @@ const_debug unsigned int sysctl_sched_features =
* Number of tasks to iterate in a single balance run.
* Limited because this is done with IRQs disabled.
*/
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
/*
* period over which we measure -rt task CPU usage in us.
@@ -71,9 +71,9 @@ __read_mostly int scheduler_running;
/*
* part of the period that we allow rt tasks to run in us.
- * default: 0.95s
+ * XanMod default: 0.98s
*/
-int sysctl_sched_rt_runtime = 950000;
+int sysctl_sched_rt_runtime = 980000;
/*
* __task_rq_lock - lock the rq @p resides on.
--
2.28.0

View File

@@ -31,31 +31,6 @@ index 2acfc69878f5..3f1131431e06 100644
EXPORT_SYMBOL_GPL(sysctl_vfs_cache_pressure);
__cacheline_aligned_in_smp DEFINE_SEQLOCK(rename_lock);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 211890edf37e..37121563407d 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -41,7 +41,7 @@ const_debug unsigned int sysctl_sched_features =
* Number of tasks to iterate in a single balance run.
* Limited because this is done with IRQs disabled.
*/
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
/*
* period over which we average the RT time consumption, measured
@@ -61,9 +61,9 @@ __read_mostly int scheduler_running;
/*
* part of the period that we allow rt tasks to run in us.
- * default: 0.95s
+ * XanMod default: 0.98s
*/
-int sysctl_sched_rt_runtime = 950000;
+int sysctl_sched_rt_runtime = 980000;
/*
* __task_rq_lock - lock the rq @p resides on.
diff --git a/lib/Kconfig b/lib/Kconfig
index 5fe577673b98..c44c27cd6e05 100644
--- a/lib/Kconfig

File diff suppressed because it is too large Load Diff

View File

@@ -522,3 +522,38 @@ index 1fd3cbca20a2..c7bf189d50de 100644
--
2.25.1
From fb23dad87a0bfb6fdfde3dc1d18104da631d050a Mon Sep 17 00:00:00 2001
From: Sjoerd Simons <sjoerd@collabora.com>
Date: Sat, 8 Oct 2022 21:57:51 +0200
Subject: [PATCH] soundwire: intel: Initialize clock stop timeout
The bus->clk_stop_timeout member is only initialized to a non-zero value
during the codec driver probe. This can lead to corner cases where this
value remains pegged at zero when the bus suspends, which results in an
endless loop in sdw_bus_wait_for_clk_prep_deprep().
Corner cases include configurations with no codecs described in the
firmware, or delays in probing codec drivers.
Initializing the default timeout to the smallest non-zero value avoid this
problem and allows for the existing logic to be preserved: the
bus->clk_stop_timeout is set as the maximum required by all codecs
connected on the bus.
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
---
drivers/soundwire/intel.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c
index af6c1a93372d90..002bc26b525e87 100644
--- a/drivers/soundwire/intel.c
+++ b/drivers/soundwire/intel.c
@@ -1307,6 +1307,7 @@ static int intel_link_probe(struct auxiliary_device *auxdev,
cdns->msg_count = 0;
bus->link_id = auxdev->id;
+ bus->clk_stop_timeout = 1;
sdw_cdns_probe(cdns);

View File

@@ -426,99 +426,3 @@ index 4bf4ea6cbb5eee..4850dafbaa05fb 100644
}
/* ---- Socket functions ---- */
From 50e6a66675f6c9835d4f1d4f8c947d1699ce8e24 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
Date: Fri, 7 Oct 2022 09:51:13 +0200
Subject: [PATCH 4/5] drm/sched: add DRM_SCHED_FENCE_DONT_PIPELINE flag
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Setting this flag on a scheduler fence prevents pipelining of jobs
depending on this fence. In other words we always insert a full CPU
round trip before dependen jobs are pushed to the pipeline.
Signed-off-by: Christian König <christian.koenig@amd.com>
---
drivers/gpu/drm/scheduler/sched_entity.c | 3 ++-
include/drm/gpu_scheduler.h | 9 +++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/scheduler/sched_entity.c b/drivers/gpu/drm/scheduler/sched_entity.c
index 6b25b2f4f5a3..6137537aaea4 100644
--- a/drivers/gpu/drm/scheduler/sched_entity.c
+++ b/drivers/gpu/drm/scheduler/sched_entity.c
@@ -385,7 +385,8 @@ static bool drm_sched_entity_add_dependency_cb(struct drm_sched_entity *entity)
}
s_fence = to_drm_sched_fence(fence);
- if (s_fence && s_fence->sched == sched) {
+ if (s_fence && s_fence->sched == sched &&
+ !test_bit(DRM_SCHED_FENCE_DONT_PIPELINE, &fence->flags)) {
/*
* Fence is from the same scheduler, only need to wait for
diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
index addb135eeea6..289a33e80639 100644
--- a/include/drm/gpu_scheduler.h
+++ b/include/drm/gpu_scheduler.h
@@ -32,6 +32,15 @@
#define MAX_WAIT_SCHED_ENTITY_Q_EMPTY msecs_to_jiffies(1000)
+/**
+ * DRM_SCHED_FENCE_DONT_PIPELINE - Prefent dependency pipelining
+ *
+ * Setting this flag on a scheduler fence prevents pipelining of jobs depending
+ * on this fence. In other words we always insert a full CPU round trip before
+ * dependen jobs are pushed to the hw queue.
+ */
+#define DRM_SCHED_FENCE_DONT_PIPELINE DMA_FENCE_FLAG_USER_BITS
+
struct drm_gem_object;
struct drm_gpu_scheduler;
--
2.25.1
From e15e1601fba660124acd7ad41b6f61d46a1c4835 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
Date: Fri, 7 Oct 2022 10:59:58 +0200
Subject: [PATCH 5/5] drm/amdgpu: use DRM_SCHED_FENCE_DONT_PIPELINE for VM
updates
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Make sure that we always have a CPU round trip to let the submission
code correctly decide if a TLB flush is necessary or not.
Signed-off-by: Christian König <christian.koenig@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
index 1fd3cbca20a2..c7bf189d50de 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
@@ -115,8 +115,15 @@ static int amdgpu_vm_sdma_commit(struct amdgpu_vm_update_params *p,
amdgpu_bo_fence(p->vm->root.bo, f, true);
}
- if (fence && !p->immediate)
+ if (fence && !p->immediate) {
+ /*
+ * Most hw generations now have a separate queue for page table
+ * updates, but when the queue is shared with userspace we need
+ * the extra CPU round trip to correctly flush the TLB.
+ */
+ set_bit(DRM_SCHED_FENCE_DONT_PIPELINE, &f->flags);
swap(*fence, f);
+ }
dma_fence_put(f);
return 0;
--
2.25.1