add 3rd party/custom patches
3rd patchs (in alphabetical order): - bbr3 - ntsync5 - openwrt - pf-kernel - xanmod - zen no configuration changes for now
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
From 2a949c896ea66e647d94254c28b1d4d6194ee14b Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Mon, 16 Sep 2024 00:55:35 +0000
|
||||
Subject: [PATCH 03/19] XANMOD: kbuild: Add GCC SMS-based modulo scheduling
|
||||
flags
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
Makefile | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -822,6 +822,11 @@ KBUILD_CFLAGS += -Os
|
||||
KBUILD_RUSTFLAGS += -Copt-level=s
|
||||
endif
|
||||
|
||||
+# Perform swing modulo scheduling immediately before the first scheduling pass.
|
||||
+# This pass looks at innermost loops and reorders their instructions by
|
||||
+# overlapping different iterations.
|
||||
+KBUILD_CFLAGS += $(call cc-option,-fmodulo-sched -fmodulo-sched-allow-regmoves)
|
||||
+
|
||||
# Always set `debug-assertions` and `overflow-checks` because their default
|
||||
# depends on `opt-level` and `debug-assertions`, respectively.
|
||||
KBUILD_RUSTFLAGS += -Cdebug-assertions=$(if $(CONFIG_RUST_DEBUG_ASSERTIONS),y,n)
|
76
debian/patches/patchset-xanmod/xanmod/0002-kbuild-Remove-GCC-minimal-function-alignment.patch
vendored
Normal file
76
debian/patches/patchset-xanmod/xanmod/0002-kbuild-Remove-GCC-minimal-function-alignment.patch
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
From 867a311f231e89b4c9194579e40718f751761ffc Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Sat, 31 Aug 2024 16:57:41 +0000
|
||||
Subject: [PATCH 04/19] kbuild: Remove GCC minimal function alignment
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
Makefile | 7 -------
|
||||
arch/Kconfig | 12 ------------
|
||||
include/linux/compiler_types.h | 10 +++++-----
|
||||
3 files changed, 5 insertions(+), 24 deletions(-)
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -981,15 +981,8 @@ export CC_FLAGS_FPU
|
||||
export CC_FLAGS_NO_FPU
|
||||
|
||||
ifneq ($(CONFIG_FUNCTION_ALIGNMENT),0)
|
||||
-# Set the minimal function alignment. Use the newer GCC option
|
||||
-# -fmin-function-alignment if it is available, or fall back to -falign-funtions.
|
||||
-# See also CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT.
|
||||
-ifdef CONFIG_CC_HAS_MIN_FUNCTION_ALIGNMENT
|
||||
-KBUILD_CFLAGS += -fmin-function-alignment=$(CONFIG_FUNCTION_ALIGNMENT)
|
||||
-else
|
||||
KBUILD_CFLAGS += -falign-functions=$(CONFIG_FUNCTION_ALIGNMENT)
|
||||
endif
|
||||
-endif
|
||||
|
||||
# arch Makefile may override CC so keep this after arch Makefile is included
|
||||
NOSTDINC_FLAGS += -nostdinc
|
||||
--- a/arch/Kconfig
|
||||
+++ b/arch/Kconfig
|
||||
@@ -1628,18 +1628,6 @@ config FUNCTION_ALIGNMENT
|
||||
default 4 if FUNCTION_ALIGNMENT_4B
|
||||
default 0
|
||||
|
||||
-config CC_HAS_MIN_FUNCTION_ALIGNMENT
|
||||
- # Detect availability of the GCC option -fmin-function-alignment which
|
||||
- # guarantees minimal alignment for all functions, unlike
|
||||
- # -falign-functions which the compiler ignores for cold functions.
|
||||
- def_bool $(cc-option, -fmin-function-alignment=8)
|
||||
-
|
||||
-config CC_HAS_SANE_FUNCTION_ALIGNMENT
|
||||
- # Set if the guaranteed alignment with -fmin-function-alignment is
|
||||
- # available or extra care is required in the kernel. Clang provides
|
||||
- # strict alignment always, even with -falign-functions.
|
||||
- def_bool CC_HAS_MIN_FUNCTION_ALIGNMENT || CC_IS_CLANG
|
||||
-
|
||||
config ARCH_NEED_CMPXCHG_1_EMU
|
||||
bool
|
||||
|
||||
--- a/include/linux/compiler_types.h
|
||||
+++ b/include/linux/compiler_types.h
|
||||
@@ -99,17 +99,17 @@ static inline void __chk_io_ptr(const vo
|
||||
* gcc: https://gcc.gnu.org/onlinedocs/gcc/Label-Attributes.html#index-cold-label-attribute
|
||||
*
|
||||
* When -falign-functions=N is in use, we must avoid the cold attribute as
|
||||
- * GCC drops the alignment for cold functions. Worse, GCC can implicitly mark
|
||||
- * callees of cold functions as cold themselves, so it's not sufficient to add
|
||||
- * __function_aligned here as that will not ensure that callees are correctly
|
||||
- * aligned.
|
||||
+ * contemporary versions of GCC drop the alignment for cold functions. Worse,
|
||||
+ * GCC can implicitly mark callees of cold functions as cold themselves, so
|
||||
+ * it's not sufficient to add __function_aligned here as that will not ensure
|
||||
+ * that callees are correctly aligned.
|
||||
*
|
||||
* See:
|
||||
*
|
||||
* https://lore.kernel.org/lkml/Y77%2FqVgvaJidFpYt@FVFF77S0Q05N
|
||||
* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88345#c9
|
||||
*/
|
||||
-#if defined(CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT) || (CONFIG_FUNCTION_ALIGNMENT == 0)
|
||||
+#if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0)
|
||||
#define __cold __attribute__((__cold__))
|
||||
#else
|
||||
#define __cold
|
@@ -0,0 +1,22 @@
|
||||
From e98005253085b5a00881c085fab388a4742e700b Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Thu, 11 May 2023 19:41:41 +0000
|
||||
Subject: [PATCH 05/19] XANMOD: fair: Set scheduler tunable latencies to
|
||||
unscaled
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
kernel/sched/fair.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/kernel/sched/fair.c
|
||||
+++ b/kernel/sched/fair.c
|
||||
@@ -66,7 +66,7 @@
|
||||
*
|
||||
* (default SCHED_TUNABLESCALING_LOG = *(1+ilog(ncpus))
|
||||
*/
|
||||
-unsigned int sysctl_sched_tunable_scaling = SCHED_TUNABLESCALING_LOG;
|
||||
+unsigned int sysctl_sched_tunable_scaling = SCHED_TUNABLESCALING_NONE;
|
||||
|
||||
/*
|
||||
* Minimal preemption granularity for CPU-bound tasks:
|
@@ -0,0 +1,71 @@
|
||||
From 07341955b471371f5414f94814c49289de9319cf Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Sun, 15 Sep 2024 23:03:38 +0000
|
||||
Subject: [PATCH 06/19] XANMOD: sched: Add yield_type sysctl to reduce or
|
||||
disable sched_yield
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
kernel/sched/syscalls.c | 16 +++++++++++++++-
|
||||
kernel/sysctl.c | 10 ++++++++++
|
||||
2 files changed, 25 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/kernel/sched/syscalls.c
|
||||
+++ b/kernel/sched/syscalls.c
|
||||
@@ -1457,15 +1457,29 @@ SYSCALL_DEFINE3(sched_getaffinity, pid_t
|
||||
return ret;
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * sysctl_sched_yield_type - choose the yield level that will perform.
|
||||
+ *
|
||||
+ * 0: No yield.
|
||||
+ * 1: Yield only to better priority/deadline tasks.
|
||||
+ * 2: Re-queue current tasks. (default CFS)
|
||||
+ */
|
||||
+__read_mostly int sysctl_sched_yield_type = 2;
|
||||
+
|
||||
static void do_sched_yield(void)
|
||||
{
|
||||
struct rq_flags rf;
|
||||
struct rq *rq;
|
||||
|
||||
+ if (!sysctl_sched_yield_type)
|
||||
+ return;
|
||||
+
|
||||
rq = this_rq_lock_irq(&rf);
|
||||
|
||||
schedstat_inc(rq->yld_count);
|
||||
- current->sched_class->yield_task(rq);
|
||||
+
|
||||
+ if (sysctl_sched_yield_type > 1)
|
||||
+ current->sched_class->yield_task(rq);
|
||||
|
||||
preempt_disable();
|
||||
rq_unlock_irq(rq, &rf);
|
||||
--- a/kernel/sysctl.c
|
||||
+++ b/kernel/sysctl.c
|
||||
@@ -97,6 +97,7 @@ static const int six_hundred_forty_kb =
|
||||
#endif
|
||||
|
||||
|
||||
+extern int sysctl_sched_yield_type;
|
||||
static const int ngroups_max = NGROUPS_MAX;
|
||||
static const int cap_last_cap = CAP_LAST_CAP;
|
||||
|
||||
@@ -1631,6 +1632,15 @@ static struct ctl_table kern_table[] = {
|
||||
.proc_handler = proc_dointvec,
|
||||
},
|
||||
#endif
|
||||
+ {
|
||||
+ .procname = "yield_type",
|
||||
+ .data = &sysctl_sched_yield_type,
|
||||
+ .maxlen = sizeof (int),
|
||||
+ .mode = 0644,
|
||||
+ .proc_handler = proc_dointvec,
|
||||
+ .extra1 = SYSCTL_ZERO,
|
||||
+ .extra2 = SYSCTL_TWO,
|
||||
+ },
|
||||
#ifdef CONFIG_PROC_SYSCTL
|
||||
{
|
||||
.procname = "tainted",
|
@@ -0,0 +1,39 @@
|
||||
From 9d6ba825d8c8635e217f7596fb4401c9ef9d408a Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Wed, 11 May 2022 18:56:51 +0000
|
||||
Subject: [PATCH 07/19] XANMOD: block/mq-deadline: Increase write priority to
|
||||
improve responsiveness
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
block/mq-deadline.c | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/block/mq-deadline.c
|
||||
+++ b/block/mq-deadline.c
|
||||
@@ -4,6 +4,9 @@
|
||||
* for the blk-mq scheduling framework
|
||||
*
|
||||
* Copyright (C) 2016 Jens Axboe <axboe@kernel.dk>
|
||||
+ *
|
||||
+ * Tunes for responsiveness by Alexandre Frade
|
||||
+ * (C) 2022 Alexandre Frade <kernel@xanmod.org>
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/fs.h>
|
||||
@@ -28,13 +31,13 @@
|
||||
* See Documentation/block/deadline-iosched.rst
|
||||
*/
|
||||
static const int read_expire = HZ / 2; /* max time before a read is submitted. */
|
||||
-static const int write_expire = 5 * HZ; /* ditto for writes, these limits are SOFT! */
|
||||
+static const int write_expire = HZ; /* ditto for writes, these limits are SOFT! */
|
||||
/*
|
||||
* Time after which to dispatch lower priority requests even if higher
|
||||
* priority requests are pending.
|
||||
*/
|
||||
static const int prio_aging_expire = 10 * HZ;
|
||||
-static const int writes_starved = 2; /* max times reads can starve a write */
|
||||
+static const int writes_starved = 1; /* max times reads can starve a write */
|
||||
static const int fifo_batch = 16; /* # of sequential requests treated as one
|
||||
by the above parameters. For throughput. */
|
||||
|
@@ -0,0 +1,22 @@
|
||||
From f4b45e0e5444254caf5992cde662236867ac388b Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Thu, 6 Jan 2022 16:59:01 +0000
|
||||
Subject: [PATCH 08/19] XANMOD: block/mq-deadline: Disable front_merges by
|
||||
default
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
block/mq-deadline.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/block/mq-deadline.c
|
||||
+++ b/block/mq-deadline.c
|
||||
@@ -600,7 +600,7 @@ static int dd_init_sched(struct request_
|
||||
dd->fifo_expire[DD_READ] = read_expire;
|
||||
dd->fifo_expire[DD_WRITE] = write_expire;
|
||||
dd->writes_starved = writes_starved;
|
||||
- dd->front_merges = 1;
|
||||
+ dd->front_merges = 0;
|
||||
dd->last_dir = DD_WRITE;
|
||||
dd->fifo_batch = fifo_batch;
|
||||
dd->prio_aging_expire = prio_aging_expire;
|
@@ -0,0 +1,23 @@
|
||||
From 08580ad4d8ffb10cb30a228361d2d914a1502e3c Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Mon, 16 Sep 2024 15:36:01 +0000
|
||||
Subject: [PATCH 09/19] XANMOD: block: Set rq_affinity to force complete I/O
|
||||
requests on same CPU
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
include/linux/blkdev.h | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/include/linux/blkdev.h
|
||||
+++ b/include/linux/blkdev.h
|
||||
@@ -605,7 +605,8 @@ enum {
|
||||
QUEUE_FLAG_MAX
|
||||
};
|
||||
|
||||
-#define QUEUE_FLAG_MQ_DEFAULT (1UL << QUEUE_FLAG_SAME_COMP)
|
||||
+#define QUEUE_FLAG_MQ_DEFAULT ((1UL << QUEUE_FLAG_SAME_COMP) | \
|
||||
+ (1UL << QUEUE_FLAG_SAME_FORCE))
|
||||
|
||||
void blk_queue_flag_set(unsigned int flag, struct request_queue *q);
|
||||
void blk_queue_flag_clear(unsigned int flag, struct request_queue *q);
|
@@ -0,0 +1,30 @@
|
||||
From 278088038e8259faf193e23ac16b48b0350da6fb Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Mon, 15 Jul 2024 04:50:34 +0000
|
||||
Subject: [PATCH 10/19] XANMOD: blk-wbt: Set wbt_default_latency_nsec() to
|
||||
2msec
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
block/blk-wbt.c | 10 ++--------
|
||||
1 file changed, 2 insertions(+), 8 deletions(-)
|
||||
|
||||
--- a/block/blk-wbt.c
|
||||
+++ b/block/blk-wbt.c
|
||||
@@ -730,14 +730,8 @@ EXPORT_SYMBOL_GPL(wbt_enable_default);
|
||||
|
||||
u64 wbt_default_latency_nsec(struct request_queue *q)
|
||||
{
|
||||
- /*
|
||||
- * We default to 2msec for non-rotational storage, and 75msec
|
||||
- * for rotational storage.
|
||||
- */
|
||||
- if (blk_queue_nonrot(q))
|
||||
- return 2000000ULL;
|
||||
- else
|
||||
- return 75000000ULL;
|
||||
+ /* XanMod defaults to 2msec for any type of storage */
|
||||
+ return 2000000ULL;
|
||||
}
|
||||
|
||||
static int wbt_data_dir(const struct request *rq)
|
@@ -0,0 +1,35 @@
|
||||
From 1637fbf551572f4578ed5644ae485b8da659b509 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Mon, 29 Jan 2018 17:26:15 +0000
|
||||
Subject: [PATCH 11/19] XANMOD: kconfig: add 500Hz timer interrupt kernel
|
||||
config option
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
kernel/Kconfig.hz | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
--- a/kernel/Kconfig.hz
|
||||
+++ b/kernel/Kconfig.hz
|
||||
@@ -40,6 +40,13 @@ choice
|
||||
on SMP and NUMA systems and exactly dividing by both PAL and
|
||||
NTSC frame rates for video and multimedia work.
|
||||
|
||||
+ config HZ_500
|
||||
+ bool "500 HZ"
|
||||
+ help
|
||||
+ 500 Hz is a balanced timer frequency. Provides fast interactivity
|
||||
+ on desktops with great smoothness without increasing CPU power
|
||||
+ consumption and sacrificing the battery life on laptops.
|
||||
+
|
||||
config HZ_1000
|
||||
bool "1000 HZ"
|
||||
help
|
||||
@@ -53,6 +60,7 @@ config HZ
|
||||
default 100 if HZ_100
|
||||
default 250 if HZ_250
|
||||
default 300 if HZ_300
|
||||
+ default 500 if HZ_500
|
||||
default 1000 if HZ_1000
|
||||
|
||||
config SCHED_HRTICK
|
@@ -0,0 +1,22 @@
|
||||
From 53a8dc8afb62674acc347ac7d9ebb46338ab7d64 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Mon, 29 Jan 2018 16:59:22 +0000
|
||||
Subject: [PATCH 12/19] XANMOD: dcache: cache_pressure = 50 decreases the rate
|
||||
at which VFS caches are reclaimed
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
fs/dcache.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/fs/dcache.c
|
||||
+++ b/fs/dcache.c
|
||||
@@ -73,7 +73,7 @@
|
||||
* If no ancestor relationship:
|
||||
* arbitrary, since it's serialized on rename_lock
|
||||
*/
|
||||
-int sysctl_vfs_cache_pressure __read_mostly = 100;
|
||||
+int sysctl_vfs_cache_pressure __read_mostly = 50;
|
||||
EXPORT_SYMBOL_GPL(sysctl_vfs_cache_pressure);
|
||||
|
||||
__cacheline_aligned_in_smp DEFINE_SEQLOCK(rename_lock);
|
21
debian/patches/patchset-xanmod/xanmod/0011-XANMOD-mm-vmscan-Set-minimum-amount-of-swapping.patch
vendored
Normal file
21
debian/patches/patchset-xanmod/xanmod/0011-XANMOD-mm-vmscan-Set-minimum-amount-of-swapping.patch
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
From 73df371934a8b28f57030858965f6869c3705836 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Wed, 14 Aug 2024 18:54:53 +0000
|
||||
Subject: [PATCH 14/19] XANMOD: mm/vmscan: Set minimum amount of swapping
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
mm/vmscan.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/mm/vmscan.c
|
||||
+++ b/mm/vmscan.c
|
||||
@@ -199,7 +199,7 @@ struct scan_control {
|
||||
/*
|
||||
* From 0 .. MAX_SWAPPINESS. Higher means more swappy.
|
||||
*/
|
||||
-int vm_swappiness = 60;
|
||||
+int vm_swappiness = 1;
|
||||
|
||||
#ifdef CONFIG_MEMCG
|
||||
|
@@ -0,0 +1,84 @@
|
||||
From 8b42012dc4aa0008ad10cf7575f684ebc3a587cf Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Wed, 15 Jun 2022 17:07:29 +0000
|
||||
Subject: [PATCH 15/19] XANMOD: sched/autogroup: Add kernel parameter and
|
||||
config option to enable/disable autogroup feature by default
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
Documentation/admin-guide/kernel-parameters.txt | 6 ++++--
|
||||
init/Kconfig | 12 ++++++++++++
|
||||
kernel/sched/autogroup.c | 9 ++++++---
|
||||
3 files changed, 22 insertions(+), 5 deletions(-)
|
||||
|
||||
--- a/Documentation/admin-guide/kernel-parameters.txt
|
||||
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
||||
@@ -493,6 +493,10 @@
|
||||
Format: <int> (must be >=0)
|
||||
Default: 64
|
||||
|
||||
+ autogroup= [KNL] Enable or disable scheduler automatic task group
|
||||
+ creation.
|
||||
+ Format: <bool>
|
||||
+
|
||||
bau= [X86_UV] Enable the BAU on SGI UV. The default
|
||||
behavior is to disable the BAU (i.e. bau=0).
|
||||
Format: { "0" | "1" }
|
||||
@@ -3835,8 +3839,6 @@
|
||||
noapic [SMP,APIC,EARLY] Tells the kernel to not make use of any
|
||||
IOAPICs that may be present in the system.
|
||||
|
||||
- noautogroup Disable scheduler automatic task group creation.
|
||||
-
|
||||
nocache [ARM,EARLY]
|
||||
|
||||
no_console_suspend
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1309,6 +1309,18 @@ config SCHED_AUTOGROUP
|
||||
desktop applications. Task group autogeneration is currently based
|
||||
upon task session.
|
||||
|
||||
+config SCHED_AUTOGROUP_DEFAULT_ENABLED
|
||||
+ bool "Enable automatic process group scheduling feature"
|
||||
+ default y
|
||||
+ depends on SCHED_AUTOGROUP
|
||||
+ help
|
||||
+ If set, automatic process group scheduling will be enabled per
|
||||
+ default but can be disabled through passing autogroup=0 on the
|
||||
+ kernel commandline during boot or a value of 0 via the file
|
||||
+ proc/sys/kernel/sched_autogroup_enabled.
|
||||
+
|
||||
+ If unsure say Y.
|
||||
+
|
||||
config RELAY
|
||||
bool "Kernel->user space relay support (formerly relayfs)"
|
||||
select IRQ_WORK
|
||||
--- a/kernel/sched/autogroup.c
|
||||
+++ b/kernel/sched/autogroup.c
|
||||
@@ -4,7 +4,8 @@
|
||||
* Auto-group scheduling implementation:
|
||||
*/
|
||||
|
||||
-unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1;
|
||||
+unsigned int __read_mostly sysctl_sched_autogroup_enabled =
|
||||
+ IS_ENABLED(CONFIG_SCHED_AUTOGROUP_DEFAULT_ENABLED) ? 1 : 0;
|
||||
static struct autogroup autogroup_default;
|
||||
static atomic_t autogroup_seq_nr;
|
||||
|
||||
@@ -219,11 +220,13 @@ void sched_autogroup_exit(struct signal_
|
||||
|
||||
static int __init setup_autogroup(char *str)
|
||||
{
|
||||
- sysctl_sched_autogroup_enabled = 0;
|
||||
+ unsigned long enabled;
|
||||
+ if (!kstrtoul(str, 0, &enabled))
|
||||
+ sysctl_sched_autogroup_enabled = enabled ? 1 : 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
-__setup("noautogroup", setup_autogroup);
|
||||
+__setup("autogroup=", setup_autogroup);
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
|
@@ -0,0 +1,62 @@
|
||||
From f41037c4ee33dd201c1750727daa390a3f652516 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Tue, 31 Mar 2020 13:32:08 -0300
|
||||
Subject: [PATCH 16/19] XANMOD: cpufreq: tunes ondemand and conservative
|
||||
governor for performance
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
drivers/cpufreq/cpufreq_conservative.c | 8 ++++----
|
||||
drivers/cpufreq/cpufreq_ondemand.c | 8 ++++----
|
||||
2 files changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
--- a/drivers/cpufreq/cpufreq_conservative.c
|
||||
+++ b/drivers/cpufreq/cpufreq_conservative.c
|
||||
@@ -28,8 +28,8 @@ struct cs_dbs_tuners {
|
||||
};
|
||||
|
||||
/* Conservative governor macros */
|
||||
-#define DEF_FREQUENCY_UP_THRESHOLD (80)
|
||||
-#define DEF_FREQUENCY_DOWN_THRESHOLD (20)
|
||||
+#define DEF_FREQUENCY_UP_THRESHOLD (63)
|
||||
+#define DEF_FREQUENCY_DOWN_THRESHOLD (26)
|
||||
#define DEF_FREQUENCY_STEP (5)
|
||||
#define DEF_SAMPLING_DOWN_FACTOR (1)
|
||||
#define MAX_SAMPLING_DOWN_FACTOR (10)
|
||||
@@ -47,9 +47,9 @@ static inline unsigned int get_freq_step
|
||||
}
|
||||
|
||||
/*
|
||||
- * Every sampling_rate, we check, if current idle time is less than 20%
|
||||
+ * Every sampling_rate, we check, if current idle time is less than 37%
|
||||
* (default), then we try to increase frequency. Every sampling_rate *
|
||||
- * sampling_down_factor, we check, if current idle time is more than 80%
|
||||
+ * sampling_down_factor, we check, if current idle time is more than 74%
|
||||
* (default), then we try to decrease frequency
|
||||
*
|
||||
* Frequency updates happen at minimum steps of 5% (default) of maximum
|
||||
--- a/drivers/cpufreq/cpufreq_ondemand.c
|
||||
+++ b/drivers/cpufreq/cpufreq_ondemand.c
|
||||
@@ -18,10 +18,10 @@
|
||||
#include "cpufreq_ondemand.h"
|
||||
|
||||
/* On-demand governor macros */
|
||||
-#define DEF_FREQUENCY_UP_THRESHOLD (80)
|
||||
-#define DEF_SAMPLING_DOWN_FACTOR (1)
|
||||
+#define DEF_FREQUENCY_UP_THRESHOLD (63)
|
||||
+#define DEF_SAMPLING_DOWN_FACTOR (100)
|
||||
#define MAX_SAMPLING_DOWN_FACTOR (100000)
|
||||
-#define MICRO_FREQUENCY_UP_THRESHOLD (95)
|
||||
+#define MICRO_FREQUENCY_UP_THRESHOLD (70)
|
||||
#define MIN_FREQUENCY_UP_THRESHOLD (1)
|
||||
#define MAX_FREQUENCY_UP_THRESHOLD (100)
|
||||
|
||||
@@ -128,7 +128,7 @@ static void dbs_freq_increase(struct cpu
|
||||
}
|
||||
|
||||
/*
|
||||
- * Every sampling_rate, we check, if current idle time is less than 20%
|
||||
+ * Every sampling_rate, we check, if current idle time is less than 37%
|
||||
* (default), then we try to increase frequency. Else, we adjust the frequency
|
||||
* proportional to load.
|
||||
*/
|
@@ -0,0 +1,42 @@
|
||||
From 000614733021b6723cfd78a4908b9b2e869ea001 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Mon, 16 Sep 2024 08:09:56 +0000
|
||||
Subject: [PATCH 17/19] XANMOD: lib/kconfig.debug: disable default
|
||||
SYMBOLIC_ERRNAME and DEBUG_BUGVERBOSE
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
fs/bcachefs/Kconfig | 1 -
|
||||
lib/Kconfig.debug | 4 ++--
|
||||
2 files changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/fs/bcachefs/Kconfig
|
||||
+++ b/fs/bcachefs/Kconfig
|
||||
@@ -23,7 +23,6 @@ config BCACHEFS_FS
|
||||
select XOR_BLOCKS
|
||||
select XXHASH
|
||||
select SRCU
|
||||
- select SYMBOLIC_ERRNAME
|
||||
help
|
||||
The bcachefs filesystem - a modern, copy on write filesystem, with
|
||||
support for multiple devices, compression, checksumming, etc.
|
||||
--- a/lib/Kconfig.debug
|
||||
+++ b/lib/Kconfig.debug
|
||||
@@ -190,7 +190,7 @@ config DYNAMIC_DEBUG_CORE
|
||||
|
||||
config SYMBOLIC_ERRNAME
|
||||
bool "Support symbolic error names in printf"
|
||||
- default y if PRINTK
|
||||
+ default n
|
||||
help
|
||||
If you say Y here, the kernel's printf implementation will
|
||||
be able to print symbolic error names such as ENOSPC instead
|
||||
@@ -200,7 +200,7 @@ config SYMBOLIC_ERRNAME
|
||||
config DEBUG_BUGVERBOSE
|
||||
bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EXPERT
|
||||
depends on BUG && (GENERIC_BUG || HAVE_DEBUG_BUGVERBOSE)
|
||||
- default y
|
||||
+ default n
|
||||
help
|
||||
Say Y here to make BUG() panics output the file name and line number
|
||||
of the BUG call as well as the EIP and oops trace. This aids
|
@@ -0,0 +1,21 @@
|
||||
From bea9f2e6b80582dc36b5693e08633546b14b2a4e Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Sun, 29 May 2022 00:57:40 +0000
|
||||
Subject: [PATCH 18/19] XANMOD: scripts/setlocalversion: remove "+" tag for git
|
||||
repo short version
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
scripts/setlocalversion | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
--- a/scripts/setlocalversion
|
||||
+++ b/scripts/setlocalversion
|
||||
@@ -92,7 +92,6 @@ scm_version()
|
||||
# If only the short version is requested, don't bother
|
||||
# running further git commands
|
||||
if $short; then
|
||||
- echo "+"
|
||||
return
|
||||
fi
|
||||
# If we are past the tagged commit, we pretty print it.
|
@@ -0,0 +1,19 @@
|
||||
From eb42d6c8411f9a70472e6f3632051e2e44910843 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Mon, 24 Apr 2023 04:50:34 +0000
|
||||
Subject: [PATCH 19/19] XANMOD: scripts/setlocalversion: Move localversion*
|
||||
files to the end
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
scripts/setlocalversion | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/scripts/setlocalversion
|
||||
+++ b/scripts/setlocalversion
|
||||
@@ -182,4 +182,4 @@ elif [ "${LOCALVERSION+set}" != "set" ];
|
||||
scm_version="$(scm_version --short)"
|
||||
fi
|
||||
|
||||
-echo "${KERNELVERSION}${file_localversion}${config_localversion}${LOCALVERSION}${scm_version}"
|
||||
+echo "${KERNELVERSION}${config_localversion}${LOCALVERSION}${scm_version}${file_localversion}"
|
Reference in New Issue
Block a user